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}">${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 AddOrBack(module_name, module_jumpback, do_jumpback)>
95 <a class="link-box" href="${config.actionRoot}?module=${module_name}&do=add">[+] ${lang("add")}</a>
96 <a class="link-box" href="${config.actionRoot}?module=${module_jumpback}&do=${do_jumpback}">[<] ${lang("back")} </a>
97 <a class="link-box" href="${config.actionRoot}">[<<<] ${lang("head.start")}</a>
101 <function showAddOrBack(anAllowAdd, anAddModule, aBackModule, aBackMethod, )>
103 <if anAllowAdd == "1">
104 <a class="link-box" href="${config.actionRoot}?module=${anAddModule}&do=add">[+] ${lang("add")}</a>
106 <a class="link-box" href="${config.actionRoot}?module=${aBackModule}&do=${aBackMethod}">[<] ${lang("back")} </a>
107 <comment> <a class="link-box" href="${config.actionRoot}">[<<<] ${lang("head.start")}</a></comment>
111 <function showBack(aBackUrl)>
112 <p><a class="link-box" href="${config.actionRoot}?${aBackUrl}">[<] ${lang("back")} </a> </p>
115 <function PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix)>
117 <td align="right" class="table-left">
120 <td class="listrow2">
121 <select name="${fieldname}">
122 <list entrieslist as a>
123 <option value="${a[keyfield]}" <if (a[keyfield] == value)>selected</if>><if langprefix>${lang(langprefix+a[valuefield])}<else>${a[valuefield]}</if></option>
138 <function TextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
140 <td align="right" class="table-left">
144 <td class="listrow2">
145 <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
150 <function ReadonlyTextTableRow (label, fieldcontent)>
152 <td align="right" class="table-left">
156 <td class="listrow2">
157 ${utility.encodeHTML(fieldcontent)}
162 <function PasswordTextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
164 <td align="right" class="table-left">
168 <td class="listrow2">
169 <input type="password" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
174 <function TextInputTableRowLight (label, size, maxlength, fieldname, fieldcontent)>
176 <td align="right" class="table-left-light">
180 <td class="listrow1">
181 <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
186 <function CheckboxTableRow (label, fieldname, fieldcontent )>
187 <call EditCheckboxNormal(label, fieldname, fieldcontent)>
190 <td align="right" valign="top" class="table-left">
194 <td class="listrow2">
195 <input type="checkbox" name="${fieldname}" value="1"<if fieldcontent=="1"> checked</if>>
201 <function TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent )>
203 <td align="right" valign="top" class="table-left">
207 <span class="small">${hint}</span>
211 <td class="listrow2">
212 <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
218 <function TextAreaTableRowLight (label, hint, cols, rows, fieldname, fieldcontent )>
220 <td align="right" valign="top" class="table-left-light">
224 <span class="small">${hint}</span>
228 <td class="listrow1">
229 <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
234 <comment>complete search-form for contenentries, not sure if it works from everywhere</comment>
235 <function ContentSearch (aLayout)>
237 <form method="GET" action="${config.actionRoot}">
238 <input type="hidden" name="module" value="Content">
239 <input type="hidden" name="do" value="search">
240 <if selectarticleurl>
241 <input type="hidden" name="selectarticleurl" value="${utility.encodeHTML(selectarticleurl)}">
244 <table border="0" cellpadding="2" cellspacing="3">
245 <tr <if !aLayout>class="bg-neutral"</if>>
246 <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.value")}</td>
247 <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.field")}</td>
248 <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.publishedstate")}</td>
249 <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.articletype")}</td>
250 <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.order")}</td>
251 <td <if aLayout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> </td>
254 <td <if aLayout>class="listrow2"</if>><input type="text" size="10" maxlength="20" name="searchvalue" value="${searchvalue}"></td>
255 <td <if aLayout>class="listrow2"</if>>
256 <select name="searchfield">
257 <option value="title"<if searchfield && searchfield=="title"> selected</if>>${lang("contentsearch.field.title")}</option>
258 <option value="creator"<if searchfield && searchfield=="creator"> selected</if>>${lang("contentsearch.field.creator")}</option>
259 <option value="contents"<if searchfield && searchfield=="content"> selected</if>>${lang("contentsearch.field.contents")}</option>
260 <option value="creator_main_url"<if searchfield && searchfield=="creator_main_url"> selected</if>>${lang("contentsearch.field.creator_main_url")}</option>
261 <option value="creator_email"<if searchfield && searchfield=="creator_email"> selected</if>>${lang("contentsearch.field.creator_email")}</option>
264 <td <if aLayout>class="listrow2"</if>>
265 <select name="searchispublished">
266 <option value="">--</option>
267 <option value="0" <if searchispublished && searchispublished=="0"> selected</if>>${lang("contentsearch.publishedstate.hidden")}</option>
268 <option value="1" <if searchispublished && searchispublished=="1"> selected</if>>${lang("contentsearch.publishedstate.published")}</option>
271 <td <if aLayout>class="listrow2"</if>>
272 <select name="searcharticletype">
273 <option value="">--</option>
274 <list articletypes as at>
275 <option value="${at.id}" <if searcharticletype && searcharticletype==at.id> selected</if>>${lang("articletypes."+at.name)}</option>
279 <td <if aLayout>class="listrow2"</if>>
280 <select name="searchorder">
281 <option value="datedesc" <if searchorder && searchorder=="datedesc"> selected</if>>${lang("contentsearch.order.datedesc")}</option>
282 <option value="dateasc" <if searchorder && searchorder=="dateasc"> selected</if>>${lang("contentsearch.order.dateasc")}</option>
283 <option value="title" <if searchorder && searchorder=="title"> selected</if>>${lang("contentsearch.order.title")}</option>
284 <option value="creator" <if searchorder && searchorder=="creator"> selected</if>>${lang("contentsearch.order.creator")}</option>
287 <td <if aLayout>class="listrow2"</if>>
288 <input class="majorbutton" type="submit" name="search" value="${lang("contentsearch.searchbutton")}">
296 <comment>browse function, only called if necessary</comment>
297 <function PrevNext (align)>
298 <if prevurl || nexturl>
301 <a class="link-box" href="${config.actionRoot}?${prevurl}"> [ < ] ${lang("list.previous")}</a>
304 <a class="link-box" href="${config.actionRoot}?${nexturl}"> ${lang("list.next")} [ > ]</a>
311 <comment>previous next links</comment>
312 <function showPrevNextLinks (aPreviousUrl, aNextUrl, anAlignment)>
313 <if aPreviousUrl || aNextUrl>
314 <p align="${anAlignment}">
316 <a class="link-box" href="${config.actionRoot}?${aPreviousUrl}"> [ < ] ${lang("list.previous")}</a>
318 <if aPreviousUrl && aNextUrl>
322 <a class="link-box" href="${config.actionRoot}?${aNextUrl}"> ${lang("list.next")} [ > ]</a>
329 <comment>multifunctional help - popup or not - big or small designs</comment>
330 <function Help (HelpUrl, popup, big )>
333 <Script Language="JavaScript">
335 function openwindowlink() {
336 newwin = window.open("${HelpUrl}","windowname","height=320,width=320,top=200,left=300, scrollbars,resizable")
341 <a href="JavaScript: openwindowlink()">
342 <if big><span class="link-help"><else><span class="link-help-small"></if>
343 <if big> [ ? ] ${lang("help")}<else>[?]</if>
350 <a href="${HelpUrl}" target="_blank"><span class="link-help"> [ ? ] ${lang("help")}</span></a>
352 <a href="${HelpUrl}" target="_blank"><span class="link-help-small">[?]</span></a>
359 <comment>functions to show media for an article/comment edit page</comment>
360 <function showArticleAttachments(anArticle)>
361 <call showAttachments(1, anArticle)>
364 <function showCommentAttachments(aComment)>
365 <call showAttachments(0, aComment)>
368 <function showAttachments(anIsArticle, anObject)>
369 <if anIsArticle=="1">
370 <assign objectKey="articleid">
371 <assign objectModule="Content">
373 <assign objectKey="commentid">
374 <assign objectModule="Comment">
377 <table cellspacing="2" cellpadding="2">
379 <td class="table-head" colspan="2">
380 ${lang("content.attachments")}
385 <td align=right valign=top class="table-left">
386 ${lang("content.images")}:
388 <td align="left" valign="top" class="listrow2">
389 <a href="${config.actionRoot}?module=Images&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addimage")}</a> |
390 <a href="${config.actionRoot}?module=Images&do=add&${objectKey}=${anObject.id}">${lang("content.uploadimage")}</a>
393 <list anObject.to_all_media_images as m>
395 <td align=right valign=top>
396 <a href="${config.actionRoot}?module=Images&do=edit&id=${m["id"]}"><img src="${config.actionRoot}?module=Images&do=getIcon&id=${m["id"]}" alt="edit" border="0"></a>
398 <td align="left" valign="top">
399 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
406 <td align=right valign=top class="table-left">
407 ${lang("content.audio")}:
409 <td align="left" valign="top" class="listrow2">
410 <a href="${config.actionRoot}?module=Audio&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addaudio")}</a> |
411 <a href="${config.actionRoot}?module=Audio&do=add&${objectKey}=${anObject.id}">${lang("content.uploadaudio")}</a>
414 <list anObject.to_all_media_audio as m>
416 <td align=right valign=top>
417 <a href="${config.actionRoot}?module=Audio&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
419 <td align="left" valign="top">
420 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
427 <td align=right valign=top class="table-left">
428 ${lang("content.video")}:
430 <td align="left" valign="top" class="listrow2">
431 <a href="${config.actionRoot}?module=Video&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addvideo")}</a> |
432 <a href="${config.actionRoot}?module=Video&do=add&${objectKey}=${anObject.id}">${lang("content.uploadvideo")}</a>
435 <list anObject.to_all_media_video as m>
437 <td align=right valign=top>
438 <a href="${config.actionRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
440 <td align="left" valign="top">
441 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
447 <td align=right valign=top class="table-left">
448 ${lang("content.other")}:
450 <td align="left" valign="top" class="listrow2">
451 <a href="${config.actionRoot}?module=OtherMedia&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addother")}</a> |
452 <a href="${config.actionRoot}?module=OtherMedia&do=add&${objectKey}=${anObject.id}">${lang("content.uploadother")}</a>
455 <list anObject.to_all_media_other as m>
457 <td align=right valign=top">
458 <a href="${config.actionRoot}?module=OtherMedia&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
460 <td align="left" valign="top">
461 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>