1 <comment>creates a full table incl. edit/delete entry.id</comment>
2 <function ListTable(contentlist, data_keys, column_head_texts, column_head_CSS, listrow1CSS, listrow2CSS, footer_css, module_name)>
4 <table cellspacing="2" border="0">
7 <list column_head_texts as indexVariable>
8 <td class="${column_head_CSS}">
9 <b>${indexVariable}</b>
12 <td class="${column_head_CSS}">
18 <list contentlist as entry>
21 <tr class="${listrow1CSS}">
24 <tr class="${listrow2CSS}">
27 <list data_keys as indexVariable>
29 ${entry[indexVariable]}
33 <a class="listcommand" href="${config.actionRoot}?module=${module_name}&do=delete&id=${entry.id}">${lang("delete")}</a>
34 | <a class="listcommand" href="${config.actionRoot}?module=${module_name}&do=edit&id=${entry.id}">${lang("edit")}</a>
41 <td colspan="${column_nr}" class="table-foot">
42 ${data.count} ${lang("records")} / ${lang("show_from_to", data.from, data.to)}
49 <comment>creates browse links, only called if necessary</comment>
50 <function PrevNextPage(module_name)>
52 <if (data.prev || data.next)>
53 <form method="post" action="${config.actionRoot}">
54 <input type="hidden" name="module" value="${module_name}">
55 <input type="hidden" name="where" value="${data.where}">
57 <input type="hidden" name="do" value="list">
58 <input type="hidden" name="prevoffset" value="${data.prev}">
59 <input type="submit" name="prev" value="${lang("list.previous")}">
62 <input type="hidden" name="do" value="list">
63 <input type="hidden" name="nextoffset" value="${data.next}">
64 <input type="submit" name="next" value="${lang("list.next")}">
71 <comment>extra navigation</comment>
72 <function AddOrBack(module_name, module_jumpback, do_jumpback)>
74 <a class="link-box" href="${config.actionRoot}?module=${module_name}&do=add">[+] ${lang("add")}</a>
75 <a class="link-box" href="${config.actionRoot}?module=${module_jumpback}&do=${do_jumpback}">[<] ${lang("back")} </a>
76 <a class="link-box" href="${config.actionRoot}">[<<<] ${lang("head.start")}</a>
83 <function PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix)>
85 <td align="right" class="table-left">
89 <select name="${fieldname}">
90 <list entrieslist as a>
91 <option value="${a[keyfield]}" <if (a[keyfield] == value)>selected</if>><if langprefix>${lang(langprefix+a[valuefield])}<else>${a[valuefield]}</if></option>
99 <comment>4 functions to create Table rows with input-fields</comment>
100 <function TextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
102 <td align="right" class="table-left">
106 <td class="listrow2">
107 <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
112 <function PasswordTextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
114 <td align="right" class="table-left">
118 <td class="listrow2">
119 <input type="password" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
124 <function TextInputTableRowLight (label, size, maxlength, fieldname, fieldcontent)>
126 <td align="right" class="table-left-light">
130 <td class="listrow1">
131 <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
136 <function CheckboxTableRow (label, fieldname, fieldcontent )>
138 <td align="right" valign="top" class="table-left">
142 <td class="listrow2">
143 <input type="checkbox" name="${fieldname}" value="1"<if fieldcontent=="1"> checked</if>>
148 <function TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent )>
150 <td align="right" valign="top" class="table-left">
154 <span class="small">${hint}</span>
158 <td class="listrow2">
159 <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
165 <function TextAreaTableRowLight (label, hint, cols, rows, fieldname, fieldcontent )>
167 <td align="right" valign="top" class="table-left-light">
171 <span class="small">${hint}</span>
175 <td class="listrow1">
176 <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
181 <comment>complete search-form for contenentries, not sure if it works from everywhere</comment>
182 <function ContentSearch (layout)>
184 <form method="POST" action="${config.actionRoot}">
185 <input type="hidden" name="module" value="Content">
186 <input type="hidden" name="do" value="search">
187 <input type="hidden" name="selectarticleurl" value="${utility.encodeHTML(selectarticleurl)}">
189 <table border="0" cellpadding="2" cellspacing="3">
190 <tr <if !layout>class="bg-neutral"</if>>
191 <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.value")}</td>
192 <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.field")}</td>
193 <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.publishedstate")}</td>
194 <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.articletype")}</td>
195 <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.order")}</td>
196 <td <if layout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> </td>
199 <td <if layout>class="listrow2"</if>><input type="text" size="10" maxlength="20" name="searchvalue" value="${searchvalue}"></td>
200 <td <if layout>class="listrow2"</if>>
201 <select name="searchfield">
202 <option value="title"<if searchfield=="title"> selected</if>>${lang("contentsearch.field.title")}</option>
203 <option value="creator"<if searchfield=="creator"> selected</if>>${lang("contentsearch.field.creator")}</option>
204 <option value="contents"<if searchfield=="content"> selected</if>>${lang("contentsearch.field.contents")}</option>
207 <td <if layout>class="listrow2"</if>>
208 <select name="searchispublished">
209 <option value="">--</option>
210 <option value="0" <if searchispublished=="0"> selected</if>>${lang("contentsearch.publishedstate.hidden")}</option>
211 <option value="1" <if searchispublished=="1"> selected</if>>${lang("contentsearch.publishedstate.published")}</option>
214 <td <if layout>class="listrow2"</if>>
215 <select name="searcharticletype">
216 <option value="">--</option>
217 <list articletypes as at>
218 <option value="${at.id}" <if searcharticletype==at.id> selected</if>>${lang("articletypes."+at.name)}</option>
222 <td <if layout>class="listrow2"</if>>
223 <select name="searchorder">
224 <option value="datedesc" <if searchorder=="datedesc"> selected</if>>${lang("contentsearch.order.datedesc")}</option>
225 <option value="dateasc" <if searchorder=="dateasc"> selected</if>>${lang("contentsearch.order.dateasc")}</option>
226 <option value="title" <if searchorder=="title"> selected</if>>${lang("contentsearch.order.title")}</option>
227 <option value="creator" <if searchorder=="creator"> selected</if>>${lang("contentsearch.order.creator")}</option>
230 <td <if layout>class="listrow2"</if>>
231 <input class="majorbutton" type="submit" name="search" value="${lang("contentsearch.searchbutton")}">
239 <comment>browse function, only called if necessary</comment>
240 <function PrevNext (align)>
241 <if prevurl || nexturl>
244 <a class="link-box" href="${config.actionRoot}?${prevurl}"> [ < ] ${lang("list.previous")}</a>
247 <a class="link-box" href="${config.actionRoot}?${nexturl}"> ${lang("list.next")} [ > ]</a>
254 <comment>previous next links</comment>
255 <function showPrevNextLinks (aPreviousUrl, aNextUrl, anAlignment)>
256 <if aPreviousUrl || aNextUrl>
257 <p align="${anAlignment}">
259 <a class="link-box" href="${config.actionRoot}?${aPreviousUrl}"> [ < ] ${lang("list.previous")}</a>
261 <if aPreviousUrl && aNextUrl>
265 <a class="link-box" href="${config.actionRoot}?${aNextUrl}"> ${lang("list.next")} [ > ]</a>
272 <comment>multifunctional help - popup or not - big or small designs</comment>
273 <function Help (HelpUrl, popup, big )>
276 <Script Language="JavaScript">
278 function openwindowlink() {
279 newwin = window.open("${HelpUrl}","windowname","height=320,width=320,top=200,left=300, scrollbars,resizable")
284 <a href="JavaScript: openwindowlink()">
285 <if big><span class="link-help"><else><span class="link-help-small"></if>
286 <if big> [ ? ] ${lang("help")}<else>[?]</if>
293 <a href="${HelpUrl}" target="_blank"><span class="link-help"> [ ? ] ${lang("help")}</span></a>
295 <a href="${HelpUrl}" target="_blank"><span class="link-help-small">[?]</span></a>
302 <comment>functions to show media for an article/comment edit page</comment>
303 <function showArticleAttachments(anArticle)>
304 <call showAttachments(1, anArticle)>
307 <function showCommentAttachments(aComment)>
308 <call showAttachments(0, aComment)>
311 <function showAttachments(anIsArticle, anObject)>
312 <if anIsArticle=="1">
313 <assign objectKey="articleid">
314 <assign objectModule="Content">
316 <assign objectKey="commentid">
317 <assign objectModule="Comment">
320 <table cellspacing="2" cellpadding="2">
322 <td class="table-head" colspan="2">
323 ${lang("content.attachments")}
328 <td align=right valign=top class="table-left">
329 ${lang("content.images")}:
331 <td align="left" valign="top" class="listrow2">
332 <a href="${config.actionRoot}?module=Images&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addimage")}</a> |
333 <a href="${config.actionRoot}?module=Images&do=add&${objectKey}=${anObject.id}">${lang("content.uploadimage")}</a>
336 <list anObject.to_all_media_images as m>
338 <td align=right valign=top>
339 <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>
341 <td align="left" valign="top">
342 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
349 <td align=right valign=top class="table-left">
350 ${lang("content.audio")}:
352 <td align="left" valign="top" class="listrow2">
353 <a href="${config.actionRoot}?module=Audio&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addaudio")}</a> |
354 <a href="${config.actionRoot}?module=Audio&do=add&${objectKey}=${anObject.id}">${lang("content.uploadaudio")}</a>
357 <list anObject.to_all_media_audio as m>
359 <td align=right valign=top>
360 <a href="${config.actionRoot}?module=Audio&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
362 <td align="left" valign="top">
363 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
370 <td align=right valign=top class="table-left">
371 ${lang("content.video")}:
373 <td align="left" valign="top" class="listrow2">
374 <a href="${config.actionRoot}?module=Video&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addvideo")}</a> |
375 <a href="${config.actionRoot}?module=Video&do=add&${objectKey}=${anObject.id}">${lang("content.uploadvideo")}</a>
378 <list anObject.to_all_media_video as m>
380 <td align=right valign=top>
381 <a href="${config.actionRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
383 <td align="left" valign="top">
384 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
390 <td align=right valign=top class="table-left">
391 ${lang("content.other")}:
393 <td align="left" valign="top" class="listrow2">
394 <a href="${config.actionRoot}?module=OtherMedia&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addother")}</a> |
395 <a href="${config.actionRoot}?module=OtherMedia&do=add&${objectKey}=${anObject.id}">${lang("content.uploadother")}</a>
398 <list anObject.to_all_media_other as m>
400 <td align=right valign=top">
401 <a href="${config.actionRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
403 <td align="left" valign="top">
404 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>