- experimental opensessions
[mir.git] / templates / admin / FUNCTIONS.template
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)>
3
4 <table cellspacing="2" border="0">
5         
6         <tr>
7                 <list column_head_texts as indexVariable>
8                         <td class="${column_head_CSS}">
9                                 <b>${indexVariable}</b> 
10                         </td>
11                 </list>
12                         <td class="${column_head_CSS}">
13                                 &nbsp;
14                         </td>   
15         </tr>
16
17         
18 <list contentlist as entry>
19         <if grey=="1">
20                 <assign grey="0">
21                 <tr class="${listrow1CSS}">
22         <else>
23                 <assign grey="1"> 
24                 <tr class="${listrow2CSS}">
25         </if>
26                 
27         <list data_keys as indexVariable>               
28                         <td>
29                                 ${entry[indexVariable]}
30                         </td>
31         </list>
32                 <td>
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>
35                 </td>
36         </tr>
37 </list>
38         
39         
40         <tr>            
41                 <td colspan="${column_nr}" class="table_foot">
42                         ${data.count} ${lang("records")} / ${lang("show_from_to", data.from, data.to)}
43                 </td>
44         </tr>
45
46 </table>
47 </function>
48
49 <comment>creates browse links, only called if necessary</comment>
50 <function PrevNextPage(module_name)>
51         <p>
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}">
56           <if data.prev>
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")}">
60           </if>
61           <if data.next>
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")}">
65           </if>
66         </form>
67       </if>
68         </p>
69 </function>
70
71 <comment>extra navigation</comment>
72 <function AddOrBack(module_name, module_jumpback, do_jumpback)>
73     <p>
74       <a class="link_box" href="${config.actionRoot}?module=${module_name}&do=add">[+] ${lang("add")}</a> &nbsp;
75       <a class="link_box" href="${config.actionRoot}?module=${module_jumpback}&do=${do_jumpback}">[&lt;] ${lang("back")} </a> &nbsp;
76       <a class="link_box" href="${config.actionRoot}">[&lt;&lt;&lt;] ${lang("head.start")}</a>
77         </p>
78 </function>
79
80
81
82
83 <function PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix)>
84   <tr>
85      <td align="right" class="table_left">
86        <b>${label}:</b>
87      </td>
88      <td class="listrow2">
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>
92          </list>
93        </select>
94      </td>
95    </tr>
96 </function>   
97
98
99 <comment>4 functions to create Table rows with input-fields</comment>
100 <function TextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
101         <tr>
102                 <td align="right" class="table_left">
103                         <b>${label}:</b>
104                 </td>
105                 
106                 <td class="listrow2">
107                         <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
108                 </td>
109         </tr>
110 </function>
111
112 <function TextInputTableRowLight (label, size, maxlength, fieldname, fieldcontent)>
113         <tr>
114                 <td align="right" class="table_left_light">
115                         <b>${label}:</b>
116                 </td>
117                 
118                 <td class="listrow1">
119                         <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
120                 </td>
121         </tr>
122 </function>
123
124 <function CheckboxTableRow (label, fieldname, fieldcontent )>
125         <tr>
126                 <td align="right" valign="top" class="table_left">
127                         <b>${label}:</b>
128                 </td>
129                 
130                 <td class="listrow2">
131                         <input type="checkbox" name="${fieldname}" value="1"<if fieldcontent=="1"> checked</if>>&nbsp;&nbsp;
132                 </td>
133         </tr>
134 </function>     
135
136 <function TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent )>
137         <tr>
138                 <td align="right" valign="top" class="table_left">
139                         <b>${label}:</b>
140                         <if hint>
141         <br>
142         <span class="small">${hint}</span>                      
143       </if>
144                 </td>
145                 
146                 <td class="listrow2">
147                         <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
148                 </td>
149         </tr>
150 </function>
151
152
153 <function TextAreaTableRowLight (label, hint, cols, rows, fieldname, fieldcontent )>
154         <tr>
155                 <td align="right" valign="top" class="table_left_light">
156                         <b>${label}:</b>
157                         <if hint>
158         <br>
159         <span class="small">${hint}</span>                      
160       </if>
161                 </td>
162                 
163                 <td class="listrow1">
164                         <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
165                 </td>
166         </tr>
167 </function>
168
169 <comment>complete search-form for contenentries, not sure if it works from everywhere</comment>
170 <function ContentSearch (layout)>
171
172       <form method="POST" action="${config.actionRoot}">
173         <input type="hidden" name="module" value="Content">
174         <input type="hidden" name="do" value="search">
175         <input type="hidden" name="selectarticleurl" value="${utility.encodeHTML(selectarticleurl)}">
176          
177         <table border="0" cellpadding="2" cellspacing="3">
178           <tr <if !layout>class="bg_neutral"</if>>
179             <td <if layout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> ${lang("contentsearch.value")}</td>
180             <td <if layout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> ${lang("contentsearch.field")}</td>
181             <td <if layout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> ${lang("contentsearch.publishedstate")}</td>
182             <td <if layout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> ${lang("contentsearch.articletype")}</td>
183             <td <if layout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> ${lang("contentsearch.order")}</td>
184                         <td <if layout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> &nbsp;</td>
185           </tr>
186           <tr>
187             <td <if layout>class="listrow2"</if>><input type="text" size="10" maxlength="20" name="searchvalue" value="${searchvalue}"></td>
188             <td <if layout>class="listrow2"</if>>
189                       <select name="searchfield">
190                   <option value="title"<if searchfield=="title"> selected</if>>${lang("contentsearch.field.title")}</option>
191                   <option value="creator"<if searchfield=="creator"> selected</if>>${lang("contentsearch.field.creator")}</option>
192                   <option value="contents"<if searchfield=="content"> selected</if>>${lang("contentsearch.field.contents")}</option>
193                 </select>
194             </td>
195             <td <if layout>class="listrow2"</if>>
196                 <select name="searchispublished">
197                   <option value="">--</option>
198                   <option value="0" <if searchispublished=="0"> selected</if>>${lang("contentsearch.publishedstate.hidden")}</option>
199                   <option value="1" <if searchispublished=="1"> selected</if>>${lang("contentsearch.publishedstate.published")}</option>
200                 </select>
201             </td>
202             <td <if layout>class="listrow2"</if>>
203                 <select name="searcharticletype">
204                   <option value="">--</option>
205                   <list articletypes as at>
206                     <option value="${at.id}" <if searcharticletype==at.id> selected</if>>${lang("articletypes."+at.name)}</option>
207                   </list>
208                 </select>
209             </td>
210             <td <if layout>class="listrow2"</if>>
211                 <select name="searchorder">
212                   <option value="datedesc" <if searchorder=="datedesc"> selected</if>>${lang("contentsearch.order.datedesc")}</option>
213                   <option value="dateasc" <if searchorder=="dateasc"> selected</if>>${lang("contentsearch.order.dateasc")}</option>
214                   <option value="title" <if searchorder=="title"> selected</if>>${lang("contentsearch.order.title")}</option>
215                   <option value="creator" <if searchorder=="creator"> selected</if>>${lang("contentsearch.order.creator")}</option>
216                 </select>
217             </td>
218             <td <if layout>class="listrow2"</if>>
219                 <input class="majorbutton" type="submit" name="search" value="${lang("contentsearch.searchbutton")}">
220             </td>
221           </tr>
222         </table>
223       </form>
224
225 </function>
226
227 <comment>browse function, only called if necessary</comment>
228 <function PrevNext (align)>
229         <if prevurl || nexturl>      
230                 <p align="${align}">
231                 <if prevurl>
232                         <a class="link_box" href="${config.actionRoot}?${prevurl}"> [ &lt; ] ${lang("list.previous")}</a>&nbsp;&nbsp; 
233                 </if>
234                 <if nexturl>
235                         <a  class="link_box" href="${config.actionRoot}?${nexturl}">   ${lang("list.next")} [ &gt; ]</a>
236                 </if>
237                 </p>
238         </if>
239 </function>
240
241 <comment>multifunctional help - popup or not - big or small designs</comment>
242 <function Help (HelpUrl, popup, big )>
243         <if popup>
244                 
245                 <Script Language="JavaScript">
246                         <!-- 
247                         function openwindowlink() {
248                         newwin = window.open("${HelpUrl}","windowname","height=320,width=320,top=200,left=300, scrollbars,resizable")
249                         }
250                         // end hiding -->
251                 </Script>
252                 
253                 <a href="JavaScript: openwindowlink()">
254                         <if big><span class="link_help"><else><span class="link_help_small"></if>
255                                 <if big> [ ? ] ${lang("help")}<else>[?]</if>
256                         </span>
257                 </a>            
258         
259         <else>
260                 
261                 <if big>
262                         <a href="${HelpUrl}" target="_blank"><span class="link_help"> [ ? ] ${lang("help")}</span></a>
263                 <else>
264                         <a href="${HelpUrl}" target="_blank"><span class="link_help_small">[?]</span></a>               
265                 </if>
266         </if>
267 </function>
268
269
270
271 <comment>functions to show media for an article/comment edit page</comment>
272 <function showArticleAttachments(anArticle)>
273   <call showAttachments(1, anArticle)>
274 </function>
275
276 <function showCommentAttachments(aComment)>
277   <call showAttachments(0, aComment)>
278 </function>
279
280 <function showAttachments(anIsArticle, anObject)>
281   <if anIsArticle=="1">
282     <assign objectKey="articleid">
283     <assign objectModule="Content">
284   <else>
285     <assign objectKey="commentid">
286     <assign objectModule="Comment">
287   </if>
288
289   <table cellspacing="2" cellpadding="2">
290                 <tr>
291                         <td class="table_head" colspan="2">
292                                 ${lang("content.attachments")}
293                         </td>
294                 </tr>
295
296                 <tr>
297                         <td align=right valign=top class="table_left">
298                                 ${lang("content.images")}: 
299                         </td>
300                         <td align="left" valign="top" class="listrow2">
301                                 <a href="${config.actionRoot}?module=Images&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addimage")}</a> |
302                                 <a href="${config.actionRoot}?module=Images&do=add&${objectKey}=${anObject.id}">${lang("content.uploadimage")}</a>
303                         </td>
304                 </tr>
305                 <list anObject.to_all_media_images as m>
306                         <tr>
307                         <td align=right valign=top>
308                                 <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>&nbsp;
309                         </td>
310                         <td align="left" valign="top">
311                                 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
312                         </td>
313                         </tr>
314                 </list>
315                 
316
317                 <tr>
318                         <td align=right valign=top class="table_left">
319                         ${lang("content.audio")}:
320                         </td>
321                         <td align="left" valign="top" class="listrow2">
322                                 <a href="${config.actionRoot}?module=Audio&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addaudio")}</a> |
323                                 <a href="${config.actionRoot}?module=Audio&do=add&${objectKey}=${anObject.id}">${lang("content.uploadaudio")}</a>
324                         </td>
325                 </tr>
326                 <list anObject.to_all_media_audio as m>
327                         <tr>
328                         <td align=right valign=top>
329                                 <a href="${config.actionRoot}?module=Audio&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;
330                         </td>
331                         <td align="left" valign="top">
332                                 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
333                         </td>
334                         </tr>
335                 </list>
336                 
337
338                 <tr>
339                         <td align=right valign=top class="table_left">
340                                 ${lang("content.video")}:
341                         </td>
342                         <td  align="left" valign="top" class="listrow2">
343                                 <a href="${config.actionRoot}?module=Video&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addvideo")}</a> |
344                                 <a href="${config.actionRoot}?module=Video&do=add&${objectKey}=${anObject.id}">${lang("content.uploadvideo")}</a>
345                         </td>
346                 </tr>
347                 <list anObject.to_all_media_video as m>
348                         <tr>
349                         <td align=right valign=top>
350                                 <a href="${config.actionRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;                            
351                         </td>
352                         <td align="left" valign="top">
353                                 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
354                         </td>
355                         </tr>
356                 </list>
357                 
358                 <tr>
359                         <td align=right valign=top class="table_left">
360                                 ${lang("content.other")}:
361                         </td>
362                         <td align="left" valign="top" class="listrow2">
363                         <a href="${config.actionRoot}?module=OtherMedia&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addother")}</a> |
364                         <a href="${config.actionRoot}?module=OtherMedia&do=add&${objectKey}=${anObject.id}">${lang("content.uploadother")}</a>
365                         </td>
366                 </tr>
367                 <list anObject.to_all_media_other as m>
368                         <tr>
369                         <td align=right valign=top">
370                         <a href="${config.actionRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;    
371                         </td>
372                         <td align="left" valign="top">
373                                 <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
374                         </td>
375                         </tr>
376                 </list>
377   </table>
378 </function>  
379
380