- icons in comment list
[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.order")}</td>
305       <td <if aLayout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> &nbsp;</td>
306           </tr>
307           <tr>
308             <td <if aLayout>class="listrow2"</if>><input type="text" size="10" maxlength="20" name="searchvalue" value="${searchvalue}"></td>
309             <td <if aLayout>class="listrow2"</if>>
310                 <select name="searchfield">
311                   <option value="title"<if searchfield && searchfield=="title"> selected</if>>${lang("contentsearch.field.title")}</option>
312                   <option value="creator"<if searchfield && searchfield=="creator"> selected</if>>${lang("contentsearch.field.creator")}</option>
313                   <option value="contents"<if searchfield && searchfield=="content"> selected</if>>${lang("contentsearch.field.contents")}</option>
314                   <option value="creator_main_url"<if searchfield && searchfield=="creator_main_url"> selected</if>>${lang("contentsearch.field.creator_main_url")}</option>
315                   <option value="creator_email"<if searchfield && searchfield=="creator_email"> selected</if>>${lang("contentsearch.field.creator_email")}</option>
316                   <option value="comment"<if searchfield && searchfield=="comment"> selected</if>>${lang("contentsearch.field.comment")}</option>
317                 </select>
318             </td>
319             <td <if aLayout>class="listrow2"</if>>
320                 <select name="searchispublished">
321                   <option value="">--</option>
322                   <option value="0" <if searchispublished && searchispublished=="0"> selected</if>>${lang("contentsearch.publishedstate.hidden")}</option>
323                   <option value="1" <if searchispublished && searchispublished=="1"> selected</if>>${lang("contentsearch.publishedstate.published")}</option>
324                 </select>
325             </td>
326             <td <if aLayout>class="listrow2"</if>>
327                 <select name="searcharticletype">
328                   <option value="">--</option>
329                   <list articletypes as at>
330                     <option value="${at.id}" <if searcharticletype && searcharticletype==at.id> selected</if>>${lang("articletypes."+at.name)}</option>
331                   </list>
332                 </select>
333             </td>
334             <td <if aLayout>class="listrow2"</if>>
335                 <select name="searchorder">
336                   <option value="datedesc" <if searchorder && searchorder=="datedesc"> selected</if>>${lang("contentsearch.order.datedesc")}</option>
337                   <option value="dateasc" <if searchorder && searchorder=="dateasc"> selected</if>>${lang("contentsearch.order.dateasc")}</option>
338                   <option value="title" <if searchorder && searchorder=="title"> selected</if>>${lang("contentsearch.order.title")}</option>
339                   <option value="creator" <if searchorder && searchorder=="creator"> selected</if>>${lang("contentsearch.order.creator")}</option>
340                 </select>
341             </td>
342             <td <if aLayout>class="listrow2"</if>>
343                 <input class="majorbutton" type="submit" name="search" value="${lang("contentsearch.searchbutton")}">
344             </td>
345           </tr>
346         </table>
347       </form>
348
349 </function>
350
351 <comment>browse function, only called if necessary</comment>
352 <function PrevNext (align)>
353   <if prevurl || nexturl>      
354     <p align="${align}">
355     <if prevurl>
356       <a class="link-box" href="${config.actionRoot}?${prevurl}"> [ &lt; ] ${lang("list.previous")}</a>&nbsp;&nbsp; 
357     </if>
358     <if nexturl>
359       <a  class="link-box" href="${config.actionRoot}?${nexturl}">   ${lang("list.next")} [ &gt; ]</a>
360     </if>
361     </p>
362   </if>
363 </function>
364
365
366 <comment>previous next links</comment>
367 <function showPrevNextLinks (aPreviousUrl, aNextUrl, anAlignment)>
368   <if aPreviousUrl || aNextUrl>      
369     <p align="${anAlignment}">
370     <if aPreviousUrl>
371       <a class="link-box" href="${config.actionRoot}?${aPreviousUrl}"> [ &lt; ] ${lang("list.previous")}</a>
372     </if>
373     <if aPreviousUrl && aNextUrl>      
374       &nbsp;&nbsp; 
375     </if>
376     <if aNextUrl>
377       <a class="link-box" href="${config.actionRoot}?${aNextUrl}">   ${lang("list.next")} [ &gt; ]</a>
378     </if>
379     </p>
380   </if>
381 </function>
382
383
384 <comment>multifunctional help - popup or not - big or small designs</comment>
385 <function Help (HelpUrl, popup, big )>
386   <if popup>
387     
388     <Script Language="JavaScript">
389       <!-- 
390       function openwindowlink() {
391       newwin = window.open("${HelpUrl}","windowname","height=320,width=320,top=200,left=300, scrollbars,resizable")
392       }
393       // end hiding -->
394     </Script>
395     
396     <a href="JavaScript: openwindowlink()">
397       <if big><span class="link-help"><else><span class="link-help-small"></if>
398         <if big> [ ? ] ${lang("help")}<else>[?]</if>
399       </span>
400     </a>    
401   
402   <else>
403     
404     <if big>
405       <a href="${HelpUrl}" target="_blank"><span class="link-help"> [ ? ] ${lang("help")}</span></a>
406     <else>
407       <a href="${HelpUrl}" target="_blank"><span class="link-help-small">[?]</span></a>   
408     </if>
409   </if>
410 </function>
411
412
413
414 <comment>functions to show media for an article/comment edit page</comment>
415 <function showArticleAttachments(anArticle, aCanEdit, aReturnUrl)>
416   <call showAttachments(1, anArticle, aCanEdit, aReturnUrl)>
417 </function>
418
419 <function showCommentAttachments(aComment, aReturnUrl)>
420   <call showAttachments(0, aComment, "1", aReturnUrl)>
421 </function>
422
423 <function showAttachments(anIsArticle, anObject, aCanEdit, aReturnUrl)>
424   <if anIsArticle=="1">
425     <assign objectKey="articleid">
426     <assign objectModule="Content">
427   <else>
428     <assign objectKey="commentid">
429     <assign objectModule="Comment">
430   </if>
431
432   <table cellspacing="2" cellpadding="2">
433     <tr>
434       <td class="table-head" colspan="2">
435         ${lang("content.attachments")}
436       </td>
437     </tr>
438
439     <tr>
440       <td align=right valign=top class="table-left">
441         ${lang("content.images")}: 
442       </td>
443       <if aCanEdit=="1">
444         <td align="left" valign="top" class="listrow2">
445           <a href="${config.actionRoot}?module=Images&amp;do=list&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addimage")}</a> |
446           <a href="${config.actionRoot}?module=Images&amp;do=add&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadimage")}</a> |
447                     <form method="post" action="${config.actionRoot}">
448                      id:
449              <input type="hidden" name="module" value="${objectModule}">
450              <input type="hidden" name="do" value="attach">
451                      <input type="text" size="5" maxlength="10" name="mid" value="">
452              <input type="hidden" name="${objectKey}" value="${anObject.id}">
453                      <input type="submit" class="minorbutton" value="${lang("content.addimage")}">
454                   </form>
455         </td>
456       </if>
457     </tr>
458     <list anObject.to_all_media_images as m>
459       <tr>
460       <td align=right valign=top>
461         <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;
462       </td>
463       <if aCanEdit=="1">
464         <td align="left" valign="top">
465           <a href="${config.actionRoot}?module=${objectModule}&do=dettach&amp;${objectKey}=${anObject.id}&amp;mid=${m["id"]}">[-] ${lang("deattach")}</a> |
466           <a href="${config.actionRoot}?module=Images&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
467         </td>
468       </if>
469       </tr>
470     </list>
471
472     <tr>
473       <td align=right valign=top class="table-left">
474       ${lang("content.audio")}:
475       </td>
476       <if aCanEdit=="1">
477         <td align="left" valign="top" class="listrow2">
478           <a href="${config.actionRoot}?module=Audio&do=list&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addaudio")}</a> |
479           <a href="${config.actionRoot}?module=Audio&do=add&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadaudio")}</a>
480         </td>
481       </if>
482     </tr>
483     <list anObject.to_all_media_audio as m>
484       <tr>
485       <td align=right valign=top>
486         <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;
487       </td>
488       <if aCanEdit=="1">
489         <td align="left" valign="top">
490           <a href="${config.actionRoot}?module=${objectModule}&amp;do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("deattach")}</a> |
491           <a href="${config.actionRoot}?module=Audio&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
492         </td>
493       </if>
494       </tr>
495     </list>
496     
497
498     <tr>
499       <td align=right valign=top class="table-left">
500         ${lang("content.video")}:
501       </td>
502       <if aCanEdit=="1">
503         <td  align="left" valign="top" class="listrow2">
504           <a href="${config.actionRoot}?module=Video&amp;do=list&${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addvideo")}</a> |
505           <a href="${config.actionRoot}?module=Video&amp;do=add&${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadvideo")}</a>
506         </td>
507       </if>
508     </tr>
509     <list anObject.to_all_media_video as m>
510       <tr>
511       <td align=right valign=top>
512         <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;        
513       </td>
514       <if aCanEdit=="1">
515         <td align="left" valign="top">
516           <a href="${config.actionRoot}?module=${objectModule}&amp;do=dettach&amp;${objectKey}=${anObject.id}&amp;mid=${m["id"]}">[-] ${lang("deattach")}</a> |
517           <a href="${config.actionRoot}?module=Video&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
518         </td>
519       </if>
520       </tr>
521     </list>
522
523     
524     <tr>
525       <td align=right valign=top class="table-left">
526         ${lang("content.other")}:
527       </td>
528       <if aCanEdit=="1">
529         <td align="left" valign="top" class="listrow2">
530           <a href="${config.actionRoot}?module=OtherMedia&do=list&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addother")}</a> |
531           <a href="${config.actionRoot}?module=OtherMedia&do=add&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadother")}</a>
532         </td>
533       </if>
534     </tr>
535     <list anObject.to_all_media_other as m>
536       <tr>
537       <td align=right valign=top">
538       <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;  
539       </td>
540       <if aCanEdit=="1">
541         <td align="left" valign="top">
542           <a href="${config.actionRoot}?module=${objectModule}&amp;do=dettach&amp;${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("deattach")}</a> |
543           <a href="${config.actionRoot}?module=OtherMedia&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
544         </td>
545       </if>
546       </tr>
547     </list>
548   </table>
549 </function>  
550
551 <function showCommentAttachment(aComment, aReturnUrl)>
552   <call showAttachment(0, aComment, "1", aReturnUrl)>
553 </function>
554
555 <function showAttachment(anIsArticle, anObject, aCanEdit, aReturnUrl)>
556     <assign objectKey="commentid">
557     <assign objectModule="Comment">
558     <list anObject.to_all_media_images as m>
559        <a href="${config.actionRoot}?module=Images&amp;do=getMedia&amp;id=${m["id"]}">
560          <img src="${config.actionRoot}?module=Images&amp;do=getIcon&amp;id=${m["id"]}"
561               alt="edit" border="0">
562        </a>
563     </list>
564     <list anObject.to_all_media_audio as m>
565        <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">
566     </list>
567     <list anObject.to_all_media_video as m>
568        <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">
569     </list>
570     <list anObject.to_all_media_other as m>
571        <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">
572     </list>
573 </function>
574
575