--- /dev/null
+<include "EDITFUNCTIONS.template">
+
+<function showAbsoluteLinkButton(anUrl, aLabel)>
+ <span class="link-box-div">
+ <a class="link-box" href="${utility.encodeHTML(anUrl)}">${aLabel}</a>
+ </span>
+</function>
+<function showButton(anUrl, aLabel)>
+ <call showAbsoluteLinkButton(config.docRoot+"?"+anUrl, aLabel)>
+</function>
+
+
+<assign TABLE_HEAD_CLASS "table-head">
+<assign TABLE_FOOT_CLASS "table-foot">
+<assign LIST_ROW_CLASS "listrow1">
+<assign LIST_ROW_CLASS_ALTERNATIVE "listrow2">
+
+<function EntityTable(anEntityList, aDataKeys, aHeaders, aFrom, aTo, aCount, aDeleteUri, aEditUri, aModuleName)>
+ <assign nrColumns="0">
+ <list aHeaders as h>
+ <assign nrColumns=utility.increment(nrColumns)>
+ </list>
+ <if aDeleteUri || aEditUri >
+ <assign nrColumns=utility.increment(nrColumns)>
+ </if>
+
+ <table cellspacing="2" border="0">
+ <tr>
+ <list aHeaders as i>
+ <td class="${TABLE_HEAD_CLASS}">
+ <b>${i}</b>
+ </td>
+ </list>
+ <if aShowDelete || aShowEdit>
+ <td class="${TABLE_HEAD_CLASS}">
+
+ </td>
+ </if>
+ </tr>
+ <assign alternative="0">
+
+ <list anEntityList as entry>
+ <if alternative=="0">
+ <assign alternative="1">
+ <tr class="${LIST_ROW_CLASS}">
+ <else>
+ <assign alternative="0">
+ <tr class="${LIST_ROW_CLASS_ALTERNATIVE}">
+ </if>
+
+ <list aDataKeys as i>
+ <td>
+ ${entry[i]}
+ </td>
+ </list>
+ <if aDeleteUri || aEditUri>
+ <td>
+ <if aDeleteUri>
+ <a class="listcommand" href="${config.docRoot}/admin/${aDeleteUri}?id=${entry.id}">${lang("delete")}</a>
+ </if>
+ <if aShowDelete && aShowEdit>
+ |
+ </if>
+ <if aEditUri>
+ <a class="listcommand" href="${config.docRoot}/admin/${aEditUri}&id=${entry.id}">${lang("edit")}</a>
+ </if>
+ </td>
+ </if>
+ </tr>
+ </list>
+
+
+ <tr>
+ <td colspan="${nrColumns}" class="${TABLE_FOOT_CLASS}">
+ ${aCount} ${lang("records")} / ${lang("show_from_to", aFrom, aTo)}
+ </td>
+ </tr>
+
+ </table>
+</function>
+
+
+<comment>extra navigation</comment>
+<function AddOrBack(module_name, module_jumpback, do_jumpback)>
+ <p>
+ <a class="link-box" href="${config.docRoot}?module=${module_name}&do=add">[+] ${lang("add")}</a>
+ <a class="link-box" href="${config.docRoot}?module=${module_jumpback}&do=${do_jumpback}">[<] ${lang("back")} </a>
+ <a class="link-box" href="${config.docRoot}">[<<<] ${lang("head.start")}</a>
+ </p>
+</function>
+
+<function showAddOrBack(anAllowAdd, anAddModule, aBackModule, aBackParams, )>
+ <p>
+ <if anAllowAdd == "1">
+ <a class="link-box" href="${config.docRoot}/admin/${anAddModule}">[+] ${lang("add")}</a>
+ </if>
+ <a class="link-box" href="${config.docRoot}/admin/${aBackModule}?${aBackParams}">[<] ${lang("back")} </a>
+<comment> <a class="link-box" href="${config.docRoot}">[<<<] ${lang("head.start")}</a></comment>
+ </p>
+</function>
+
+<function showBack(aBackUrl)>
+ <p><a class="link-box" href="${config.docRoot}?${aBackUrl}">[<] ${lang("back")} </a> </p>
+</function>
+
+<function PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix)>
+ <tr>
+ <td align="right" class="table-left">
+ <b>${label}:</b>
+ </td>
+ <td class="listrow2">
+ <select name="${fieldname}">
+ <list entrieslist as a>
+ <option value="${a[keyfield]}" <if (a[keyfield] == value)>selected</if>><if langprefix>${lang(langprefix+a[valuefield])}<else>${a[valuefield]}</if></option>
+ </list>
+ </select>
+ </td>
+ </tr>
+</function>
+
+
+
+
+
+
+
+
+
+<function TextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
+ <tr>
+ <td align="right" class="table-left">
+ <b>${label}:</b>
+ </td>
+
+ <td class="listrow2">
+ <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
+ </td>
+ </tr>
+</function>
+
+<function ReadonlyTextTableRow (label, fieldcontent)>
+ <tr>
+ <td align="right" class="table-left">
+ <b>${label}:</b>
+ </td>
+
+ <td class="listrow2">
+ ${utility.encodeHTML(fieldcontent)}
+ </td>
+ </tr>
+</function>
+
+<function PasswordTextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
+ <tr>
+ <td align="right" class="table-left">
+ <b>${label}:</b>
+ </td>
+
+ <td class="listrow2">
+ <input type="password" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
+ </td>
+ </tr>
+</function>
+
+<function TextInputTableRowLight (label, size, maxlength, fieldname, fieldcontent)>
+ <tr>
+ <td align="right" class="table-left-light">
+ <b>${label}:</b>
+ </td>
+
+ <td class="listrow1">
+ <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
+ </td>
+ </tr>
+</function>
+
+<function CheckboxTableRow (label, fieldname, fieldcontent )>
+ <call EditCheckboxNormal(label, fieldname, fieldcontent)>
+<comment>
+ <tr>
+ <td align="right" valign="top" class="table-left">
+ <b>${label}:</b>
+ </td>
+
+ <td class="listrow2">
+ <input type="checkbox" name="${fieldname}" value="1"<if fieldcontent=="1"> checked</if>>
+ </td>
+ </tr>
+</comment>
+</function>
+
+<function TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent )>
+ <tr>
+ <td align="right" valign="top" class="table-left">
+ <b>${label}:</b>
+ <if hint>
+ <br>
+ <span class="small">${hint}</span>
+ </if>
+ </td>
+
+ <td class="listrow2">
+ <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
+ </td>
+ </tr>
+</function>
+
+
+<function TextAreaTableRowLight (label, hint, cols, rows, fieldname, fieldcontent )>
+ <tr>
+ <td align="right" valign="top" class="table-left-light">
+ <b>${label}:</b>
+ <if hint>
+ <br>
+ <span class="small">${hint}</span>
+ </if>
+ </td>
+
+ <td class="listrow1">
+ <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
+ </td>
+ </tr>
+</function>
+
+<comment>complete search-form for contenentries, not sure if it works from everywhere</comment>
+<function ContentSearch (layout)>
+
+ <form method="POST" action="${config.docRoot}">
+ <input type="hidden" name="module" value="Content">
+ <input type="hidden" name="do" value="search">
+ <input type="hidden" name="selectarticleurl" value="${utility.encodeHTML(selectarticleurl)}">
+
+ <table border="0" cellpadding="2" cellspacing="3">
+ <tr <if !layout>class="bg-neutral"</if>>
+ <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.value")}</td>
+ <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.field")}</td>
+ <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.publishedstate")}</td>
+ <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.articletype")}</td>
+ <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.order")}</td>
+ <td <if layout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> </td>
+ </tr>
+ <tr>
+ <td <if layout>class="listrow2"</if>><input type="text" size="10" maxlength="20" name="searchvalue" value="${searchvalue}"></td>
+ <td <if layout>class="listrow2"</if>>
+ <select name="searchfield">
+ <option value="title"<if searchfield=="title"> selected</if>>${lang("contentsearch.field.title")}</option>
+ <option value="creator"<if searchfield=="creator"> selected</if>>${lang("contentsearch.field.creator")}</option>
+ <option value="contents"<if searchfield=="content"> selected</if>>${lang("contentsearch.field.contents")}</option>
+ <option value="creator_main_url"<if searchfield=="creator_main_url"> selected</if>>${lang("contentsearch.field.creator_main_url")}</option>
+ <option value="creator_email"<if searchfield=="creator_email"> selected</if>>${lang("contentsearch.field.creator_email")}</option>
+ </select>
+ </td>
+ <td <if layout>class="listrow2"</if>>
+ <select name="searchispublished">
+ <option value="">--</option>
+ <option value="0" <if searchispublished=="0"> selected</if>>${lang("contentsearch.publishedstate.hidden")}</option>
+ <option value="1" <if searchispublished=="1"> selected</if>>${lang("contentsearch.publishedstate.published")}</option>
+ </select>
+ </td>
+ <td <if layout>class="listrow2"</if>>
+ <select name="searcharticletype">
+ <option value="">--</option>
+ <list articletypes as at>
+ <option value="${at.id}" <if searcharticletype==at.id> selected</if>>${lang("articletypes."+at.name)}</option>
+ </list>
+ </select>
+ </td>
+ <td <if layout>class="listrow2"</if>>
+ <select name="searchorder">
+ <option value="datedesc" <if searchorder=="datedesc"> selected</if>>${lang("contentsearch.order.datedesc")}</option>
+ <option value="dateasc" <if searchorder=="dateasc"> selected</if>>${lang("contentsearch.order.dateasc")}</option>
+ <option value="title" <if searchorder=="title"> selected</if>>${lang("contentsearch.order.title")}</option>
+ <option value="creator" <if searchorder=="creator"> selected</if>>${lang("contentsearch.order.creator")}</option>
+ </select>
+ </td>
+ <td <if layout>class="listrow2"</if>>
+ <input class="majorbutton" type="submit" name="search" value="${lang("contentsearch.searchbutton")}">
+ </td>
+ </tr>
+ </table>
+ </form>
+
+</function>
+
+<comment>browse function, only called if necessary</comment>
+<function PrevNext (align)>
+ <if prevurl || nexturl>
+ <p align="${align}">
+ <if prevurl>
+ <a class="link-box" href="${config.docRoot}?${prevurl}"> [ < ] ${lang("list.previous")}</a>
+ </if>
+ <if nexturl>
+ <a class="link-box" href="${config.docRoot}?${nexturl}"> ${lang("list.next")} [ > ]</a>
+ </if>
+ </p>
+ </if>
+</function>
+
+
+<comment>previous next links</comment>
+<function showPrevNextLinks (aPreviousUrl, aNextUrl, anAlignment)>
+ <if aPreviousUrl || aNextUrl>
+ <p align="${anAlignment}">
+ <if aPreviousUrl>
+ <a class="link-box" href="${config.docRoot}${aPreviousUrl}"> [ < ] ${lang("list.previous")}</a>
+ </if>
+ <if aPreviousUrl && aNextUrl>
+
+ </if>
+ <if aNextUrl>
+ <a class="link-box" href="${config.docRoot}${aNextUrl}"> ${lang("list.next")} [ > ]</a>
+ </if>
+ </p>
+ </if>
+</function>
+
+
+<comment>multifunctional help - popup or not - big or small designs</comment>
+<function Help (HelpUrl, popup, big )>
+ <if popup>
+
+ <Script Language="JavaScript">
+ <!--
+ function openwindowlink() {
+ newwin = window.open("${HelpUrl}","windowname","height=320,width=320,top=200,left=300, scrollbars,resizable")
+ }
+ // end hiding -->
+ </Script>
+
+ <a href="JavaScript: openwindowlink()">
+ <if big><span class="link-help"><else><span class="link-help-small"></if>
+ <if big> [ ? ] ${lang("help")}<else>[?]</if>
+ </span>
+ </a>
+
+ <else>
+
+ <if big>
+ <a href="${HelpUrl}" target="_blank"><span class="link-help"> [ ? ] ${lang("help")}</span></a>
+ <else>
+ <a href="${HelpUrl}" target="_blank"><span class="link-help-small">[?]</span></a>
+ </if>
+ </if>
+</function>
+
+
+
+<comment>functions to show media for an article/comment edit page</comment>
+<function showArticleAttachments(anArticle)>
+ <call showAttachments(1, anArticle)>
+</function>
+
+<function showCommentAttachments(aComment)>
+ <call showAttachments(0, aComment)>
+</function>
+
+<function showAttachments(anIsArticle, anObject)>
+ <if anIsArticle=="1">
+ <assign objectKey="articleid">
+ <assign objectModule="Content">
+ <else>
+ <assign objectKey="commentid">
+ <assign objectModule="Comment">
+ </if>
+
+ <table cellspacing="2" cellpadding="2">
+ <tr>
+ <td class="table-head" colspan="2">
+ ${lang("content.attachments")}
+ </td>
+ </tr>
+
+ <tr>
+ <td align=right valign=top class="table-left">
+ ${lang("content.images")}:
+ </td>
+ <td align="left" valign="top" class="listrow2">
+ <a href="${config.docRoot}?module=Images&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addimage")}</a> |
+ <a href="${config.docRoot}?module=Images&do=add&${objectKey}=${anObject.id}">${lang("content.uploadimage")}</a>
+ </td>
+ </tr>
+ <list anObject.to_all_media_images as m>
+ <tr>
+ <td align=right valign=top>
+ <a href="${config.docRoot}?module=Images&do=edit&id=${m["id"]}"><img src="${config.docRoot}?module=Images&do=getIcon&id=${m["id"]}" alt="edit" border="0"></a>
+ </td>
+ <td align="left" valign="top">
+ <a href="${config.docRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+ </td>
+ </tr>
+ </list>
+
+
+ <tr>
+ <td align=right valign=top class="table-left">
+ ${lang("content.audio")}:
+ </td>
+ <td align="left" valign="top" class="listrow2">
+ <a href="${config.docRoot}?module=Audio&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addaudio")}</a> |
+ <a href="${config.docRoot}?module=Audio&do=add&${objectKey}=${anObject.id}">${lang("content.uploadaudio")}</a>
+ </td>
+ </tr>
+ <list anObject.to_all_media_audio as m>
+ <tr>
+ <td align=right valign=top>
+ <a href="${config.docRoot}?module=Audio&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
+ </td>
+ <td align="left" valign="top">
+ <a href="${config.docRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+ </td>
+ </tr>
+ </list>
+
+
+ <tr>
+ <td align=right valign=top class="table-left">
+ ${lang("content.video")}:
+ </td>
+ <td align="left" valign="top" class="listrow2">
+ <a href="${config.docRoot}?module=Video&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addvideo")}</a> |
+ <a href="${config.docRoot}?module=Video&do=add&${objectKey}=${anObject.id}">${lang("content.uploadvideo")}</a>
+ </td>
+ </tr>
+ <list anObject.to_all_media_video as m>
+ <tr>
+ <td align=right valign=top>
+ <a href="${config.docRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
+ </td>
+ <td align="left" valign="top">
+ <a href="${config.docRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+ </td>
+ </tr>
+ </list>
+
+ <tr>
+ <td align=right valign=top class="table-left">
+ ${lang("content.other")}:
+ </td>
+ <td align="left" valign="top" class="listrow2">
+ <a href="${config.docRoot}?module=OtherMedia&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addother")}</a> |
+ <a href="${config.docRoot}?module=OtherMedia&do=add&${objectKey}=${anObject.id}">${lang("content.uploadother")}</a>
+ </td>
+ </tr>
+ <list anObject.to_all_media_other as m>
+ <tr>
+ <td align=right valign=top">
+ <a href="${config.docRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>
+ </td>
+ <td align="left" valign="top">
+ <a href="${config.docRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+ </td>
+ </tr>
+ </list>
+ </table>
+</function>
+
+