scripts/mir-setup/README: update with link to new doc on wiki
[mir.git] / templates / admin / FUNCTIONS.template
1 <include "EDITFUNCTIONS.template">
2
3 <function showAbsoluteLinkButton(anUrl, aLabel)>
4     <span class="link-box-div">
5   <a class="link-box" href="${utility.encodeHTML(anUrl)}">${aLabel}</a>
6     </span>
7 </function>
8 <function showButton(anUrl, aLabel)>
9   <call showAbsoluteLinkButton(config.actionRoot+"?"+anUrl, aLabel)>
10 </function>
11 <function showGETButton(anUrl, aLabel)>
12   <call showAbsoluteLinkButton(config.actionRoot+"?"+anUrl, aLabel)>
13 </function>
14 <function showPOSTButton(anUrl, aLabel)>
15   <call showGETButton(anUrl, aLabel)>
16 <comment>
17   <form method="POST" action="${utility.encodeHTML(config.actionRoot+"?"+anUrl)}"><input type="submit" class="majorbutton" value="${aLabel}"></form>
18 </comment>
19 </function>
20
21
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">
26
27 <function EntityTable(anEntityList, aDataKeys, aHeaders, aFrom, aTo, aCount, aShowDelete, aShowEdit, aModuleName)>
28   <assign nrColumns="0">
29   <list aHeaders as h>
30     <assign nrColumns=utility.increment(nrColumns)>
31   </list>
32   <if aShowDelete == "1" || aShowEdit == "1" >
33     <assign nrColumns=utility.increment(nrColumns)>
34   </if>
35
36   <table cellspacing="2" border="0">
37     <tr>
38       <list aHeaders as i>
39         <td class="${TABLE_HEAD_CLASS}">
40           <b>${i}</b>
41         </td>
42       </list>
43       <if aShowDelete == "1" || aShowEdit == "1">
44         <td class="${TABLE_HEAD_CLASS}">
45           &nbsp;
46         </td>
47       </if>
48     </tr>
49     <assign alternative="0">
50
51     <list anEntityList as entry>
52       <if alternative=="0">
53         <assign alternative="1">
54         <tr class="${LIST_ROW_CLASS}">
55       <else>
56         <assign alternative="0">
57         <tr class="${LIST_ROW_CLASS_ALTERNATIVE}">
58       </if>
59
60         <list aDataKeys as i>
61             <td>
62               ${utility.prettyEncodeHTML(entry[i])}
63             </td>
64         </list>
65         <if aShowDelete == "1" || aShowEdit == "1" >
66           <td>
67             <if aShowDelete>
68             <a class="listcommand" href="${config.actionRoot}?module=${aModuleName}&amp;do=delete&amp;id=${entry.id}&amp;okurl=${utility.encodeURI(thisurl)}&amp;cancelurl=${utility.encodeURI(thisurl)}">${lang("delete")}</a>
69             </if>
70             <if aShowDelete == "1" && aShowEdit == "1">
71             |
72             </if>
73             <if aShowEdit == "1">
74               <a class="listcommand" href="${config.actionRoot}?module=${aModuleName}&do=edit&id=${entry.id}">${lang("edit")}</a>
75             </if>
76           </td>
77         </if>
78       </tr>
79     </list>
80
81
82     <tr>
83       <td colspan="${nrColumns}" class="${TABLE_FOOT_CLASS}">
84         ${aCount} ${lang("records")} / ${lang("show_from_to", aFrom, aTo)}
85       </td>
86     </tr>
87
88   </table>
89 </function>
90
91
92 <comment>extra navigation</comment>
93 <function showAddOrBack(anAllowAdd, anAddModule, aBackModule, aBackMethod)>
94     <p>
95       <if anAllowAdd == "1">
96         <a class="link-box" href="${config.actionRoot}?module=${anAddModule}&do=add">[+] ${lang("add")}</a> &nbsp;
97       </if>
98       <a class="link-box" href="${config.actionRoot}?module=${aBackModule}&do=${aBackMethod}">[&lt;] ${lang("back")} </a> &nbsp;
99 <comment>      <a class="link-box" href="${config.actionRoot}">[&lt;&lt;&lt;] ${lang("head.start")}</a></comment>
100   </p>
101 </function>
102
103 <function showAddOrBack2(anAllowAdd, anAddModule, aBackUrl)>
104     <p>
105       <if anAllowAdd == "1">
106         <a class="link-box" href="${config.actionRoot}?module=${anAddModule}&do=add">[+] ${lang("add")}</a> &nbsp;
107       </if>
108       <a class="link-box" href="${config.actionRoot}?${aBackUrl}">[&lt;] ${lang("back")} </a> &nbsp;
109   </p>
110 </function>
111
112 <function showBack(aBackUrl)>
113   <p><a class="link-box" href="${config.actionRoot}?${aBackUrl}">[&lt;] ${lang("back")} </a> &nbsp;</p>
114 </function>
115
116 <function _PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix, aCanEdit)>
117   <if aCanEdit=="1">
118     <call PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix)>
119   <else>
120     <call ReadOnlyPulldownTableRow (label, entrieslist, keyfield, valuefield, value, langprefix)>
121   </if>
122 </function>
123
124 <function ReadOnlyPulldownTableRow (label, entrieslist, keyfield, valuefield, value, langprefix)>
125   <tr>
126      <td align="right" class="table-left">
127        <b>${label}:</b>
128      </td>
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>
132         </list>
133      </td>
134    </tr>
135 </function>
136
137 <function PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix)>
138   <tr>
139      <td align="right" class="table-left">
140        <b>${label}:</b>
141      </td>
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>
146          </list>
147        </select>
148      </td>
149    </tr>
150 </function>
151
152 <function ReadonlyTextTableRowNormal (label, fieldcontent)>
153   <call ReadonlyTextTableRow(label, fieldcontent, "listrow2")>
154 </function>
155
156
157 <function _TextInputTableRow(label, size, maxlength, fieldname, fieldcontent, aCanEdit)>
158   <if aCanEdit=="1">
159     <call TextInputTableRow(label, size, maxlength, fieldname, fieldcontent)>
160   <else>
161     <call ReadonlyTextTableRow(label, fieldcontent, "listrow2")>
162   </if>
163 </function>
164
165 <function _TextInputTableRowLight(label, size, maxlength, fieldname, fieldcontent, aCanEdit)>
166   <if aCanEdit=="1">
167     <call TextInputTableRowLight(label, size, maxlength, fieldname, fieldcontent)>
168   <else>
169     <call ReadonlyTextTableRow(label, fieldcontent, "listrow1")>
170   </if>
171 </function>
172
173 <function TextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
174   <tr>
175     <td align="right" class="table-left">
176       <b>${label}:</b>
177     </td>
178
179     <td class="listrow2">
180       <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
181     </td>
182   </tr>
183 </function>
184
185 <function ReadonlyTextTableRow (label, fieldcontent, class)>
186   <tr>
187     <td align="right" class="table-left">
188       <b>${label}:</b>
189     </td>
190
191     <td class="${class}">
192       ${utility.encodeHTML(fieldcontent)}
193     </td>
194   </tr>
195 </function>
196
197 <function PasswordTextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
198   <tr>
199     <td align="right" class="table-left">
200       <b>${label}:</b>
201     </td>
202
203     <td class="listrow2">
204       <input type="password" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
205     </td>
206   </tr>
207 </function>
208
209 <function TextInputTableRowLight (label, size, maxlength, fieldname, fieldcontent)>
210   <tr>
211     <td align="right" class="table-left-light">
212       <b>${label}:</b>
213     </td>
214
215     <td class="listrow1">
216       <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
217     </td>
218   </tr>
219 </function>
220
221 <function CheckboxTableRow (label, fieldname, fieldcontent )>
222   <call EditCheckboxNormal(label, fieldname, fieldcontent)>
223 </function>
224
225 <function _CheckboxTableRow (label, fieldname, fieldcontent, aCanEdit)>
226   <if aCanEdit=="1">
227     <call EditCheckboxNormal(label, fieldname, fieldcontent)>
228   <else>
229     <call ReadOnlyCheckboxNormal(label, fieldcontent)>
230   </if>
231 </function>
232
233 <function _TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent, aCanEdit)>
234   <if aCanEdit=="1">
235     <call TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent)>
236   <else>
237     <call ReadOnlyTextAreaTableRow (label, hint, fieldcontent)>
238   </if>
239 </function>
240 <function ReadOnlyTextAreaTableRow (label, hint, fieldcontent )>
241   <tr>
242     <td align="right" valign="top" class="table-left">
243       <b>${label}:</b>
244       <if hint>
245         <br>
246         <span class="small">${hint}</span>
247       </if>
248     </td>
249
250     <td class="listrow2">
251       ${utility.prettyEncodeHTML(fieldcontent)}
252     </td>
253   </tr>
254 </function>
255 <function TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent )>
256   <tr>
257     <td align="right" valign="top" class="table-left">
258       <b>${label}:</b>
259       <if hint>
260         <br>
261         <span class="small">${hint}</span>
262       </if>
263     </td>
264
265     <td class="listrow2">
266       <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
267     </td>
268   </tr>
269 </function>
270
271
272 <function TextAreaTableRowLight (label, hint, cols, rows, fieldname, fieldcontent )>
273   <tr>
274     <td align="right" valign="top" class="table-left-light">
275       <b>${label}:</b>
276       <if hint>
277         <br>
278         <span class="small">${hint}</span>
279       </if>
280     </td>
281
282     <td class="listrow1">
283       <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
284     </td>
285   </tr>
286 </function>
287
288 <comment>complete search-form for contenentries, not sure if it works from everywhere</comment>
289 <function ContentSearch (aLayout)>
290
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)}">
296         </if>
297
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"> &nbsp;</td>
307           </tr>
308           <tr>
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>
318                 </select>
319             </td>
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>
325                 </select>
326             </td>
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>
332                   </list>
333                 </select>
334             </td>
335             <td <if aLayout>class="listrow2"</if>>
336                 <select name="searchtopic">
337                   <option value="">--</option>
338                   <list topics as t>
339                     <option value="${t.id}" <if searchtopic && searchtopic==t.id> selected</if>>${t.title}</option>
340                   </list>
341                 </select>
342             </td>
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>
349                 </select>
350             </td>
351             <td <if aLayout>class="listrow2"</if>>
352                 <input class="majorbutton" type="submit" name="search" value="${lang("contentsearch.searchbutton")}">
353             </td>
354           </tr>
355         </table>
356       </form>
357
358 </function>
359
360 <comment>browse function, only called if necessary</comment>
361 <function PrevNext (align)>
362   <if prevurl || nexturl>
363     <p align="${align}">
364     <if prevurl>
365       <a class="link-box" href="${config.actionRoot}?${prevurl}"> [ &lt; ] ${lang("list.previous")}</a>&nbsp;&nbsp;
366     </if>
367     <if nexturl>
368       <a  class="link-box" href="${config.actionRoot}?${nexturl}">   ${lang("list.next")} [ &gt; ]</a>
369     </if>
370     </p>
371   </if>
372 </function>
373
374
375 <comment>previous next links</comment>
376 <function showPrevNextLinks (aPreviousUrl, aNextUrl, anAlignment)>
377   <if aPreviousUrl || aNextUrl>
378     <p align="${anAlignment}">
379     <if aPreviousUrl>
380       <a class="link-box" href="${config.actionRoot}?${aPreviousUrl}"> [ &lt; ] ${lang("list.previous")}</a>
381     </if>
382     <if aPreviousUrl && aNextUrl>
383       &nbsp;&nbsp;
384     </if>
385     <if aNextUrl>
386       <a class="link-box" href="${config.actionRoot}?${aNextUrl}">   ${lang("list.next")} [ &gt; ]</a>
387     </if>
388     </p>
389   </if>
390 </function>
391
392
393 <comment>multifunctional help - popup or not - big or small designs</comment>
394 <function Help (HelpUrl, popup, big )>
395   <if popup>
396
397     <Script Language="JavaScript">
398       <!--
399       function openwindowlink() {
400       newwin = window.open("${HelpUrl}","windowname","height=320,width=320,top=200,left=300, scrollbars,resizable")
401       }
402       // end hiding -->
403     </Script>
404
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>
408       </span>
409     </a>
410
411   <else>
412
413     <if big>
414       <a href="${HelpUrl}" target="_blank"><span class="link-help"> [ ? ] ${lang("help")}</span></a>
415     <else>
416       <a href="${HelpUrl}" target="_blank"><span class="link-help-small">[?]</span></a>
417     </if>
418   </if>
419 </function>
420
421
422
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)>
426 </function>
427
428 <function showCommentAttachments(aComment, aReturnUrl)>
429   <call showAttachments(0, aComment, "1", aReturnUrl)>
430 </function>
431
432 <function showAttachments(anIsArticle, anObject, aCanEdit, aReturnUrl)>
433   <if anIsArticle=="1">
434     <assign objectKey="articleid">
435     <assign objectModule="Content">
436   <else>
437     <assign objectKey="commentid">
438     <assign objectModule="Comment">
439   </if>
440
441   <table cellspacing="2" cellpadding="2">
442     <tr>
443       <td class="table-head" colspan="2">
444         ${lang("content.attachments")}
445       </td>
446     </tr>
447
448     <tr>
449       <td align=right valign=top class="table-left">
450         ${lang("content.images")}:
451       </td>
452       <if aCanEdit=="1">
453         <td align="left" valign="top" class="listrow2">
454           <a href="${config.actionRoot}?module=Images&amp;do=list&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addimage")}</a> |
455           <a href="${config.actionRoot}?module=Images&amp;do=add&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadimage")}</a> |
456                     <form method="post" action="${config.actionRoot}">
457                      id:
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")}">
463                   </form>
464         </td>
465       </if>
466     </tr>
467     <list anObject.to_all_media_images as m>
468       <tr>
469       <td align=right valign=top>
470         <a href="${config.actionRoot}?module=Images&amp;do=getMedia&amp;id=${m["id"]}&amp;returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.actionRoot}?module=Images&amp;do=getIcon&amp;id=${m["id"]}" alt="edit" border="0"></a>&nbsp;
471       </td>
472       <if aCanEdit=="1">
473         <td align="left" valign="top">
474           <a href="${config.actionRoot}?module=${objectModule}&do=dettach&amp;${objectKey}=${anObject.id}&amp;mid=${m["id"]}">[-] ${lang("deattach")}</a> |
475           <a href="${config.actionRoot}?module=Images&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
476         </td>
477       </if>
478       </tr>
479     </list>
480
481     <tr>
482       <td align=right valign=top class="table-left">
483       ${lang("content.audio")}:
484       </td>
485       <if aCanEdit=="1">
486         <td align="left" valign="top" class="listrow2">
487           <a href="${config.actionRoot}?module=Audio&do=list&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addaudio")}</a> |
488           <a href="${config.actionRoot}?module=Audio&do=add&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadaudio")}</a>
489         </td>
490       </if>
491     </tr>
492     <list anObject.to_all_media_audio as m>
493       <tr>
494       <td align=right valign=top>
495         <a href="${config.actionRoot}?module=Audio&amp;do=getMedia&amp;id=${m["id"]}&amp;returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;
496       </td>
497       <if aCanEdit=="1">
498         <td align="left" valign="top">
499           <a href="${config.actionRoot}?module=${objectModule}&amp;do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("deattach")}</a> |
500           <a href="${config.actionRoot}?module=Audio&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
501         </td>
502       </if>
503       </tr>
504     </list>
505
506
507     <tr>
508       <td align=right valign=top class="table-left">
509         ${lang("content.video")}:
510       </td>
511       <if aCanEdit=="1">
512         <td  align="left" valign="top" class="listrow2">
513           <a href="${config.actionRoot}?module=Video&amp;do=list&${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addvideo")}</a> |
514           <a href="${config.actionRoot}?module=Video&amp;do=add&${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadvideo")}</a>
515         </td>
516       </if>
517     </tr>
518     <list anObject.to_all_media_video as m>
519       <tr>
520       <td align=right valign=top>
521         <a href="${config.actionRoot}?module=Video&amp;do=getMedia&amp;id=${m["id"]}&amp;returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;
522       </td>
523       <if aCanEdit=="1">
524         <td align="left" valign="top">
525           <a href="${config.actionRoot}?module=${objectModule}&amp;do=dettach&amp;${objectKey}=${anObject.id}&amp;mid=${m["id"]}">[-] ${lang("deattach")}</a> |
526           <a href="${config.actionRoot}?module=Video&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
527         </td>
528       </if>
529       </tr>
530     </list>
531
532
533     <tr>
534       <td align=right valign=top class="table-left">
535         ${lang("content.other")}:
536       </td>
537       <if aCanEdit=="1">
538         <td align="left" valign="top" class="listrow2">
539           <a href="${config.actionRoot}?module=OtherMedia&do=list&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addother")}</a> |
540           <a href="${config.actionRoot}?module=OtherMedia&do=add&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadother")}</a>
541         </td>
542       </if>
543     </tr>
544     <list anObject.to_all_media_other as m>
545       <tr>
546       <td align=right valign=top">
547       <a href="${config.actionRoot}?module=OtherMedia&amp;do=getMedia&amp;id=${m["id"]}&amp;returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;
548       </td>
549       <if aCanEdit=="1">
550         <td align="left" valign="top">
551           <a href="${config.actionRoot}?module=${objectModule}&amp;do=dettach&amp;${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("deattach")}</a> |
552           <a href="${config.actionRoot}?module=OtherMedia&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
553         </td>
554       </if>
555       </tr>
556     </list>
557   </table>
558 </function>
559
560 <function showCommentAttachment(aComment, aReturnUrl)>
561   <call showAttachment(0, aComment, "1", aReturnUrl)>
562 </function>
563
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&amp;do=getMedia&amp;id=${m["id"]}">
569          <img src="${config.actionRoot}?module=Images&amp;do=getIcon&amp;id=${m["id"]}"
570               alt="edit" border="0">
571        </a>
572     </list>
573     <list anObject.to_all_media_audio as m>
574        <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">
575     </list>
576     <list anObject.to_all_media_video as m>
577        <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">
578     </list>
579     <list anObject.to_all_media_other as m>
580        <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">
581     </list>
582 </function>
583
584