1 <include "EDITFUNCTIONS.template">
3 <function showAbsoluteLinkButton(anUrl, aLabel)>
4 <span class="link-box-div">
5 <a class="link-box" href="${utility.encodeHTML(anUrl)}">${aLabel}</a>
8 <function showButton(anUrl, aLabel)>
9 <call showAbsoluteLinkButton(config.actionRoot+"?"+anUrl, aLabel)>
11 <function showGETButton(anUrl, aLabel)>
12 <call showAbsoluteLinkButton(config.actionRoot+"?"+anUrl, aLabel)>
14 <function showPOSTButton(anUrl, aLabel)>
15 <call showGETButton(anUrl, aLabel)>
17 <form method="POST" action="${utility.encodeHTML(config.actionRoot+"?"+anUrl)}"><input type="submit" class="majorbutton" value="${aLabel}"></form>
22 <assign TABLE_HEAD_CLASS "table-head">
23 <assign TABLE_FOOT_CLASS "table-foot">
24 <assign LIST_ROW_CLASS "listrow1">
25 <assign LIST_ROW_CLASS_ALTERNATIVE "listrow2">
27 <function EntityTable(anEntityList, aDataKeys, aHeaders, aFrom, aTo, aCount, aShowDelete, aShowEdit, aModuleName)>
28 <assign nrColumns="0">
30 <assign nrColumns=utility.increment(nrColumns)>
32 <if aShowDelete == "1" || aShowEdit == "1" >
33 <assign nrColumns=utility.increment(nrColumns)>
36 <table cellspacing="2" border="0">
39 <td class="${TABLE_HEAD_CLASS}">
43 <if aShowDelete == "1" || aShowEdit == "1">
44 <td class="${TABLE_HEAD_CLASS}">
49 <assign alternative="0">
51 <list anEntityList as entry>
53 <assign alternative="1">
54 <tr class="${LIST_ROW_CLASS}">
56 <assign alternative="0">
57 <tr class="${LIST_ROW_CLASS_ALTERNATIVE}">
62 ${utility.prettyEncodeHTML(entry[i])}
65 <if aShowDelete == "1" || aShowEdit == "1" >
68 <a class="listcommand" href="${config.actionRoot}?module=${aModuleName}&do=delete&id=${entry.id}&okurl=${utility.encodeURI(thisurl)}&cancelurl=${utility.encodeURI(thisurl)}">${lang("delete")}</a>
70 <if aShowDelete == "1" && aShowEdit == "1">
74 <a class="listcommand" href="${config.actionRoot}?module=${aModuleName}&do=edit&id=${entry.id}">${lang("edit")}</a>
83 <td colspan="${nrColumns}" class="${TABLE_FOOT_CLASS}">
84 ${aCount} ${lang("records")} / ${lang("show_from_to", aFrom, aTo)}
92 <comment>extra navigation</comment>
93 <function showAddOrBack(anAllowAdd, anAddModule, aBackModule, aBackMethod)>
95 <if anAllowAdd == "1">
96 <a class="link-box" href="${config.actionRoot}?module=${anAddModule}&do=add">[+] ${lang("add")}</a>
98 <a class="link-box" href="${config.actionRoot}?module=${aBackModule}&do=${aBackMethod}">[<] ${lang("back")} </a>
99 <comment> <a class="link-box" href="${config.actionRoot}">[<<<] ${lang("head.start")}</a></comment>
103 <function showAddOrBack2(anAllowAdd, anAddModule, aBackUrl)>
105 <if anAllowAdd == "1">
106 <a class="link-box" href="${config.actionRoot}?module=${anAddModule}&do=add">[+] ${lang("add")}</a>
108 <a class="link-box" href="${config.actionRoot}?${aBackUrl}">[<] ${lang("back")} </a>
112 <function showBack(aBackUrl)>
113 <p><a class="link-box" href="${config.actionRoot}?${aBackUrl}">[<] ${lang("back")} </a> </p>
116 <function _PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix, aCanEdit)>
118 <call PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix)>
120 <call ReadOnlyPulldownTableRow (label, entrieslist, keyfield, valuefield, value, langprefix)>
124 <function ReadOnlyPulldownTableRow (label, entrieslist, keyfield, valuefield, value, langprefix)>
126 <td align="right" class="table-left">
129 <td class="listrow2">
130 <list entrieslist as a>
131 <if (a[keyfield] == value)><if langprefix>${lang(langprefix+a[valuefield])}<else>${a[valuefield]}</if></if>
137 <function PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix)>
139 <td align="right" class="table-left">
142 <td class="listrow2">
143 <select name="${fieldname}">
144 <list entrieslist as a>
145 <option value="${a[keyfield]}" <if (a[keyfield] == value)>selected</if>><if langprefix>${lang(langprefix+a[valuefield])}<else>${a[valuefield]}</if></option>
152 <function ReadonlyTextTableRowNormal (label, fieldcontent)>
153 <call ReadonlyTextTableRow(label, fieldcontent, "listrow2")>
157 <function _TextInputTableRow(label, size, maxlength, fieldname, fieldcontent, aCanEdit)>
159 <call TextInputTableRow(label, size, maxlength, fieldname, fieldcontent)>
161 <call ReadonlyTextTableRow(label, fieldcontent, "listrow2")>
165 <function _TextInputTableRowLight(label, size, maxlength, fieldname, fieldcontent, aCanEdit)>
167 <call TextInputTableRowLight(label, size, maxlength, fieldname, fieldcontent)>
169 <call ReadonlyTextTableRow(label, fieldcontent, "listrow1")>
173 <function TextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
175 <td align="right" class="table-left">
179 <td class="listrow2">
180 <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
185 <function ReadonlyTextTableRow (label, fieldcontent, class)>
187 <td align="right" class="table-left">
191 <td class="${class}">
192 ${utility.encodeHTML(fieldcontent)}
197 <function PasswordTextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
199 <td align="right" class="table-left">
203 <td class="listrow2">
204 <input type="password" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
209 <function TextInputTableRowLight (label, size, maxlength, fieldname, fieldcontent)>
211 <td align="right" class="table-left-light">
215 <td class="listrow1">
216 <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
221 <function CheckboxTableRow (label, fieldname, fieldcontent )>
222 <call EditCheckboxNormal(label, fieldname, fieldcontent)>
225 <function _CheckboxTableRow (label, fieldname, fieldcontent, aCanEdit)>
227 <call EditCheckboxNormal(label, fieldname, fieldcontent)>
229 <call ReadOnlyCheckboxNormal(label, fieldcontent)>
233 <function _TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent, aCanEdit)>
235 <call TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent)>
237 <call ReadOnlyTextAreaTableRow (label, hint, fieldcontent)>
240 <function ReadOnlyTextAreaTableRow (label, hint, fieldcontent )>
242 <td align="right" valign="top" class="table-left">
246 <span class="small">${hint}</span>
250 <td class="listrow2">
251 ${utility.prettyEncodeHTML(fieldcontent)}
255 <function TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent )>
257 <td align="right" valign="top" class="table-left">
261 <span class="small">${hint}</span>
265 <td class="listrow2">
266 <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
272 <function TextAreaTableRowLight (label, hint, cols, rows, fieldname, fieldcontent )>
274 <td align="right" valign="top" class="table-left-light">
278 <span class="small">${hint}</span>
282 <td class="listrow1">
283 <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
288 <comment>complete search-form for contenentries, not sure if it works from everywhere</comment>
289 <function ContentSearch (aLayout)>
291 <form method="GET" action="${config.actionRoot}">
292 <input type="hidden" name="module" value="Content">
293 <input type="hidden" name="do" value="search">
294 <if selectarticleurl>
295 <input type="hidden" name="selectarticleurl" value="${utility.encodeHTML(selectarticleurl)}">
298 <table border="0" cellpadding="2" cellspacing="3">
299 <tr <if !aLayout>class="bg-neutral"</if>>
300 <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.value")}</td>
301 <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.field")}</td>
302 <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.publishedstate")}</td>
303 <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.articletype")}</td>
304 <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.topic")}</td>
305 <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.order")}</td>
306 <td <if aLayout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> </td>
309 <td <if aLayout>class="listrow2"</if>><input type="text" size="10" maxlength="20" name="searchvalue" value="${searchvalue}"></td>
310 <td <if aLayout>class="listrow2"</if>>
311 <select name="searchfield">
312 <option value="title"<if searchfield && searchfield=="title"> selected</if>>${lang("contentsearch.field.title")}</option>
313 <option value="creator"<if searchfield && searchfield=="creator"> selected</if>>${lang("contentsearch.field.creator")}</option>
314 <option value="contents"<if searchfield && searchfield=="content"> selected</if>>${lang("contentsearch.field.contents")}</option>
315 <option value="creator_main_url"<if searchfield && searchfield=="creator_main_url"> selected</if>>${lang("contentsearch.field.creator_main_url")}</option>
316 <option value="creator_email"<if searchfield && searchfield=="creator_email"> selected</if>>${lang("contentsearch.field.creator_email")}</option>
317 <option value="comment"<if searchfield && searchfield=="comment"> selected</if>>${lang("contentsearch.field.comment")}</option>
320 <td <if aLayout>class="listrow2"</if>>
321 <select name="searchispublished">
322 <option value="">--</option>
323 <option value="0" <if searchispublished && searchispublished=="0"> selected</if>>${lang("contentsearch.publishedstate.hidden")}</option>
324 <option value="1" <if searchispublished && searchispublished=="1"> selected</if>>${lang("contentsearch.publishedstate.published")}</option>
327 <td <if aLayout>class="listrow2"</if>>
328 <select name="searcharticletype">
329 <option value="">--</option>
330 <list articletypes as at>
331 <option value="${at.id}" <if searcharticletype && searcharticletype==at.id> selected</if>>${lang("articletypes."+at.name)}</option>
335 <td <if aLayout>class="listrow2"</if>>
336 <select name="searchtopic">
337 <option value="">--</option>
339 <option value="${t.id}" <if searchtopic && searchtopic==t.id> selected</if>>${t.title}</option>
343 <td <if aLayout>class="listrow2"</if>>
344 <select name="searchorder">
345 <option value="datedesc" <if searchorder && searchorder=="datedesc"> selected</if>>${lang("contentsearch.order.datedesc")}</option>
346 <option value="dateasc" <if searchorder && searchorder=="dateasc"> selected</if>>${lang("contentsearch.order.dateasc")}</option>
347 <option value="title" <if searchorder && searchorder=="title"> selected</if>>${lang("contentsearch.order.title")}</option>
348 <option value="creator" <if searchorder && searchorder=="creator"> selected</if>>${lang("contentsearch.order.creator")}</option>
351 <td <if aLayout>class="listrow2"</if>>
352 <input class="majorbutton" type="submit" name="search" value="${lang("contentsearch.searchbutton")}">
360 <comment>browse function, only called if necessary</comment>
361 <function PrevNext (align)>
362 <if prevurl || nexturl>
365 <a class="link-box" href="${config.actionRoot}?${prevurl}"> [ < ] ${lang("list.previous")}</a>
368 <a class="link-box" href="${config.actionRoot}?${nexturl}"> ${lang("list.next")} [ > ]</a>
375 <comment>previous next links</comment>
376 <function showPrevNextLinks (aPreviousUrl, aNextUrl, anAlignment)>
377 <if aPreviousUrl || aNextUrl>
378 <p align="${anAlignment}">
380 <a class="link-box" href="${config.actionRoot}?${aPreviousUrl}"> [ < ] ${lang("list.previous")}</a>
382 <if aPreviousUrl && aNextUrl>
386 <a class="link-box" href="${config.actionRoot}?${aNextUrl}"> ${lang("list.next")} [ > ]</a>
393 <comment>multifunctional help - popup or not - big or small designs</comment>
394 <function Help (HelpUrl, popup, big )>
397 <Script Language="JavaScript">
399 function openwindowlink() {
400 newwin = window.open("${HelpUrl}","windowname","height=320,width=320,top=200,left=300, scrollbars,resizable")
405 <a href="JavaScript: openwindowlink()">
406 <if big><span class="link-help"><else><span class="link-help-small"></if>
407 <if big> [ ? ] ${lang("help")}<else>[?]</if>
414 <a href="${HelpUrl}" target="_blank"><span class="link-help"> [ ? ] ${lang("help")}</span></a>
416 <a href="${HelpUrl}" target="_blank"><span class="link-help-small">[?]</span></a>
423 <comment>functions to show media for an article/comment edit page</comment>
424 <function showArticleAttachments(anArticle, aCanEdit, aReturnUrl)>
425 <call showAttachments(1, anArticle, aCanEdit, aReturnUrl)>
428 <function showCommentAttachments(aComment, aReturnUrl)>
429 <call showAttachments(0, aComment, "1", aReturnUrl)>
432 <function showAttachments(anIsArticle, anObject, aCanEdit, aReturnUrl)>
433 <if anIsArticle=="1">
434 <assign objectKey="articleid">
435 <assign objectModule="Content">
437 <assign objectKey="commentid">
438 <assign objectModule="Comment">
441 <table cellspacing="2" cellpadding="2">
443 <td class="table-head" colspan="2">
444 ${lang("content.attachments")}
449 <td align=right valign=top class="table-left">
450 ${lang("content.images")}:
453 <td align="left" valign="top" class="listrow2">
454 <a href="${config.actionRoot}?module=Images&do=list&${objectKey}=${anObject.id}&returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addimage")}</a> |
455 <a href="${config.actionRoot}?module=Images&do=add&${objectKey}=${anObject.id}&returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadimage")}</a> |
456 <form method="post" action="${config.actionRoot}">
458 <input type="hidden" name="module" value="${objectModule}">
459 <input type="hidden" name="do" value="attach">
460 <input type="text" size="5" maxlength="10" name="mid" value="">
461 <input type="hidden" name="${objectKey}" value="${anObject.id}">
462 <input type="submit" class="minorbutton" value="${lang("content.addimage")}">
467 <list anObject.to_all_media_images as m>
469 <td align=right valign=top>
470 <a href="${config.actionRoot}?module=Images&do=getMedia&id=${m["id"]}&returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.actionRoot}?module=Images&do=getIcon&id=${m["id"]}" alt="edit" border="0"></a>
473 <td align="left" valign="top">
474 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("deattach")}</a> |
475 <a href="${config.actionRoot}?module=Images&do=edit&id=${m.id}&returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
482 <td align=right valign=top class="table-left">
483 ${lang("content.audio")}:
486 <td align="left" valign="top" class="listrow2">
487 <a href="${config.actionRoot}?module=Audio&do=list&${objectKey}=${anObject.id}&returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addaudio")}</a> |
488 <a href="${config.actionRoot}?module=Audio&do=add&${objectKey}=${anObject.id}&returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadaudio")}</a>
492 <list anObject.to_all_media_audio as m>
494 <td align=right valign=top>
495 <a href="${config.actionRoot}?module=Audio&do=getMedia&id=${m["id"]}&returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
498 <td align="left" valign="top">
499 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("deattach")}</a> |
500 <a href="${config.actionRoot}?module=Audio&do=edit&id=${m.id}&returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
508 <td align=right valign=top class="table-left">
509 ${lang("content.video")}:
512 <td align="left" valign="top" class="listrow2">
513 <a href="${config.actionRoot}?module=Video&do=list&${objectKey}=${anObject.id}&returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addvideo")}</a> |
514 <a href="${config.actionRoot}?module=Video&do=add&${objectKey}=${anObject.id}&returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadvideo")}</a>
518 <list anObject.to_all_media_video as m>
520 <td align=right valign=top>
521 <a href="${config.actionRoot}?module=Video&do=getMedia&id=${m["id"]}&returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
524 <td align="left" valign="top">
525 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("deattach")}</a> |
526 <a href="${config.actionRoot}?module=Video&do=edit&id=${m.id}&returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
534 <td align=right valign=top class="table-left">
535 ${lang("content.other")}:
538 <td align="left" valign="top" class="listrow2">
539 <a href="${config.actionRoot}?module=OtherMedia&do=list&${objectKey}=${anObject.id}&returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addother")}</a> |
540 <a href="${config.actionRoot}?module=OtherMedia&do=add&${objectKey}=${anObject.id}&returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadother")}</a>
544 <list anObject.to_all_media_other as m>
546 <td align=right valign=top">
547 <a href="${config.actionRoot}?module=OtherMedia&do=getMedia&id=${m["id"]}&returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
550 <td align="left" valign="top">
551 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("deattach")}</a> |
552 <a href="${config.actionRoot}?module=OtherMedia&do=edit&id=${m.id}&returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
560 <function showCommentAttachment(aComment, aReturnUrl)>
561 <call showAttachment(0, aComment, "1", aReturnUrl)>
564 <function showAttachment(anIsArticle, anObject, aCanEdit, aReturnUrl)>
565 <assign objectKey="commentid">
566 <assign objectModule="Comment">
567 <list anObject.to_all_media_images as m>
568 <a href="${config.actionRoot}?module=Images&do=getMedia&id=${m["id"]}">
569 <img src="${config.actionRoot}?module=Images&do=getIcon&id=${m["id"]}"
570 alt="edit" border="0">
573 <list anObject.to_all_media_audio as m>
574 <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">
576 <list anObject.to_all_media_video as m>
577 <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">
579 <list anObject.to_all_media_other as m>
580 <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">