OSDN Git Service

FIX: warningの修正。適用されてない翻訳メッセージの修正。admintemplateoverview。
[nucleus-jp/nucleus-next.git] / nucleus / libs / showlist.php
1 <?php\r
2 /*\r
3  * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)\r
4  * Copyright (C) 2002-2012 The Nucleus Group\r
5  *\r
6  * This program is free software; you can redistribute it and/or\r
7  * modify it under the terms of the GNU General Public License\r
8  * as published by the Free Software Foundation; either version 2\r
9  * of the License, or (at your option) any later version.\r
10  * (see nucleus/documentation/index.html#license for more info)\r
11  */\r
12 /**\r
13  * Functions to create lists of things inside the admin are\r
14  *\r
15  * @license http://nucleuscms.org/license.txt GNU General Public License\r
16  * @copyright Copyright (C) 2002-2012 The Nucleus Group\r
17  * @version $Id: showlist.php 1662 2012-02-12 12:18:37Z sakamocchi $\r
18  */\r
19 \r
20 \r
21 // can take either an array of objects, or an SQL query\r
22 function showlist($query, $type, $vars, $templateName = '')\r
23 {\r
24         if ( is_array($query) )\r
25         {\r
26                 if ( sizeof($query) == 0 )\r
27                 {\r
28                         return 0;\r
29                 }\r
30                 \r
31                 call_user_func("listplug_{$type}", $vars, 'HEAD', $templateName);\r
32                 \r
33                 foreach ( $query as $currentObj )\r
34                 {\r
35                         $vars['current'] = $currentObj;\r
36                         call_user_func("listplug_{$type}", $vars, 'BODY', $templateName);\r
37                 }\r
38                 \r
39                 call_user_func("listplug_{$type}", $vars, 'FOOT', $templateName);\r
40                 \r
41                 return sizeof($query);\r
42         }\r
43         else\r
44         {\r
45                 $res = sql_query($query);\r
46                 \r
47                 // don't do anything if there are no results\r
48                 $numrows = sql_num_rows($res);\r
49                 if ( $numrows == 0 )\r
50                 {\r
51                         return 0;\r
52                 }\r
53                 call_user_func("listplug_{$type}", $vars, 'HEAD', $templateName);\r
54                 \r
55                 while( $vars['current'] = sql_fetch_object($res) )\r
56                 {\r
57                         call_user_func("listplug_{$type}", $vars, 'BODY', $templateName);\r
58                 }\r
59                 \r
60                 call_user_func("listplug_{$type}", $vars, 'FOOT', $templateName);\r
61                 \r
62                 sql_free_result($res);\r
63                 \r
64                 // return amount of results\r
65                 return $numrows;\r
66         }\r
67 }\r
68 \r
69 function listplug_select($vars, $type, $templateName = '')\r
70 {\r
71         $templates = array();\r
72         if ( !empty($templateName) )\r
73         {\r
74                 $templates = Template::read($templateName);\r
75         }\r
76         switch( $type )\r
77         {\r
78                 case 'HEAD':\r
79                         if ( isset($templates['SHOWLIST_LISTPLUG_SELECT_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_SELECT_HEAD']) )\r
80                         {\r
81                                 $template = $templates['SHOWLIST_LISTPLUG_SELECT_HEAD'];\r
82                         }\r
83                         else\r
84                         {\r
85                                 $template = "<select<%name%><%tabindex%><%javascript%>>\n<%extraoption%>\n";\r
86                         }\r
87                         $data = array(\r
88                                                 'name'        => isset($vars['name'])        ? ' name="' . $vars['name'] . '"'         : '',\r
89                                                 'tabindex'    => isset($vars['tabindex'])    ? ' tabindex="' . $vars['tabindex'] . '"' : '',\r
90                                                 'javascript'  => isset($vars['javascript'])  ? ' ' . $vars['javascript']               : '',\r
91                                         );\r
92                         $data ['extraoption'] = isset($vars['extra']) ?\r
93                                 '<option value="' . $vars['extra'] . '">' . $vars['extra'] . "</option>" :\r
94                                 '';\r
95                         break;\r
96                 case 'BODY':\r
97                         $current = $vars['current'];\r
98                         if ( isset($templates['SHOWLIST_LISTPLUG_SELECT_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_SELECT_BODY']) )\r
99                         {\r
100                                 $template = $templates['SHOWLIST_LISTPLUG_SELECT_BODY'];\r
101                         }\r
102                         else\r
103                         {\r
104                                 $template = '<option value="<%value%>"<%selected%><%title%>><%option%></option>' . "\n";\r
105                         }\r
106                         $data = array(\r
107                                                 'value'    => Entity::hsc($current->value),\r
108                                                 'selected' => ($vars['selected'] == $current->value) ? ' selected="selected"' : '',\r
109                                         );\r
110                         if ( isset($vars['shorten']) && $vars['shorten'] > 0 )\r
111                         {\r
112                                 $data['title'] = ' title="' . Entity::hsc($current->text) . '"';\r
113                                 $current->text = Entity::hsc(Entity::shorten($current->text, $vars['shorten'], $vars['shortenel']));\r
114                         }\r
115                         else\r
116                         {\r
117                                 $data['title'] = '';\r
118                         }\r
119                         $data['option'] = Entity::hsc($current->text);\r
120                         break;\r
121                 case 'FOOT':\r
122                         if ( isset($templates['SHOWLIST_LISTPLUG_SELECT_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_SELECT_FOOT']) )\r
123                         {\r
124                                 $template = $templates['SHOWLIST_LISTPLUG_SELECT_FOOT'];\r
125                         }\r
126                         else\r
127                         {\r
128                                 $template = "</select>\n";\r
129                         }\r
130                         $data = array();\r
131                         break;\r
132         }\r
133         if ( !class_exists('Actions') )\r
134         {\r
135                 global $DIR_LIBS;\r
136                 include $DIR_LIBS . 'ACTIONS.php';\r
137         }\r
138         $template = Template::fill($template, $data);\r
139         $handler = new Actions('template', $template, $data);\r
140         \r
141         $parser = new Parser($handler);\r
142         $parser->parse($template);\r
143         \r
144         return;\r
145 }\r
146 \r
147 function listplug_table($vars, $type, $templateName = '')\r
148 {\r
149         $templates = array();\r
150         if ( !empty($templateName) )\r
151         {\r
152                 $templates = Template::read($templateName);\r
153         }\r
154         switch( $type )\r
155         {\r
156                 case 'HEAD':\r
157                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_HEAD']) )\r
158                         {\r
159                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_HEAD'];\r
160                         }\r
161                         else\r
162                         {\r
163                                 $template = "<table><thead><tr>\n<%typehead%>\n</tr></thead><tbody>\n";\r
164                         }\r
165                         $data = array(\r
166                                                 'typehead' => call_user_func("listplug_table_" . $vars['content'] , $vars, 'HEAD', $templateName)\r
167                                         );\r
168                         break;\r
169                 case 'BODY':\r
170                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_BODY']) )\r
171                         {\r
172                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_BODY'];\r
173                         }\r
174                         else\r
175                         {\r
176                                 $template = "<tr onmouseover=\"focusRow(this);\" onmouseout=\"blurRow(this);\"><%typebody%>\n</tr>\n";\r
177                         }\r
178                         // tabletype specific thingies\r
179                         $data = array(\r
180                                 'typebody' => call_user_func("listplug_table_" . $vars['content'] , $vars, 'BODY', $templateName)\r
181                         );\r
182                         break;\r
183                 case 'FOOT':\r
184                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_FOOT']) )\r
185                         {\r
186                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_FOOT'];\r
187                         }\r
188                         else\r
189                         {\r
190                                 $template = "<%typefoot%>\n</tbody></table>\n";\r
191                         }\r
192                         // tabletype specific thingies\r
193                         $data = array(\r
194                                 'typefoot' => call_user_func("listplug_table_" . $vars['content'] , $vars, 'FOOT', $templateName)\r
195                         );\r
196                         break;\r
197         }\r
198         $template = Template::fill($template, $data);\r
199         if ( !class_exists('Actions') )\r
200         {\r
201                 global $DIR_LIBS;\r
202                 include $DIR_LIBS . 'ACTIONS.php';\r
203         }\r
204         \r
205         $handler = new Actions('template', $template, $data);\r
206         \r
207         $parser = new PARSER($handler);\r
208         $parser->parse($template);\r
209         \r
210         return;\r
211 }\r
212 \r
213 function listplug_table_memberlist($vars, $type, $templateName = '')\r
214 {\r
215         $templates = array();\r
216         if ( !empty($templateName) )\r
217         {\r
218                 $templates = Template::read($templateName);\r
219         }\r
220         switch( $type )\r
221         {\r
222                 case 'HEAD':\r
223                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_MEMBLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_MEMBLIST_HEAD']) )\r
224                         {\r
225                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_MEMBLIST_HEAD'];\r
226                         }\r
227                         else\r
228                         {\r
229                                 $template = "<th><%colmembername%></th>\n"\r
230                                                   . "<th><%colmemberrname%></th>\n"\r
231                                                   . "<th><%colmemberurl%></th>\n"\r
232                                                   . "<th><%colmemberadmin%><%helplink(superadmin)%></th>\n"\r
233                                                   . "<th><%colmemberlogin%><%helplink(canlogin)%></th>\n"\r
234                                                   . "<th colspan=\"2\"><%colactions%></th>\n";\r
235                         }\r
236                         $data = array(\r
237                                                 'colmembername'  => _LIST_MEMBER_NAME,\r
238                                                 'colmemberrname' => _LIST_MEMBER_RNAME,\r
239                                                 'colmemberurl'   => _LIST_MEMBER_URL,\r
240                                                 'colmemberadmin' => _LIST_MEMBER_ADMIN,\r
241                                                 'colmemberlogin' => _LIST_MEMBER_LOGIN,\r
242                                                 'colactions'     => _LISTS_ACTIONS,\r
243                                         );\r
244                         break;\r
245                 case 'BODY':\r
246                         $current = $vars['current'];\r
247                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_MEMBLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_MEMBLIST_BODY']) )\r
248                         {\r
249                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_MEMBLIST_BODY'];\r
250                         }\r
251                         else\r
252                         {\r
253                                 $template = "<td>\n"\r
254                                                   . "<input type=\"checkbox\" id=\"batch<%id%>\" name=\"batch[<%id%>]\" value=\"<%memberid%>\" />\n"\r
255                                                   . "<label for=\"batch<%id%>\">\n"\r
256                                                   . "<a href=\"mailto:<%mailaddress%>\" tabindex=\"<%tabindex%>\"><%name%></a>\n"\r
257                                                   . "</label>\n</td>\n"\r
258                                                   . "<td><%realname%></td>\n"\r
259                                                   . "<td><a href=\"<%url%>\" tabindex=\"<%tabindex%>\"><%url%></a></td>\n"\r
260                                                   . "<td><%admin%></td>\n"\r
261                                                   . "<td><%login%></td>\n"\r
262                                                   . "<td><a href=\"index.php?action=memberedit&amp;memberid=<%memberid%>\" tabindex=\"<%tabindex%>\"><%editbtn%></a></td>\n"\r
263                                                   . "<td><a href=\"index.php?action=memberdelete&amp;memberid=<%memberid%>\" tabindex=\"<%tabindex%>\"><%deletebtn%></a></td>\n";\r
264                         }\r
265                         $data = array(\r
266                                                 'id'          => listplug_nextBatchId(),\r
267                                                 'memberid'    => $current->mnumber,\r
268                                                 'mailaddress' => Entity::hsc($current->memail),\r
269                                                 'tabindex'    => $vars['tabindex'],\r
270                                                 'name'        => Entity::hsc($current->mname),\r
271                                                 'realname'    => Entity::hsc($current->mrealname),\r
272                                                 'url'         => Entity::hsc($current->murl),\r
273                                                 'admin'       => ($current->madmin ? _YES : _NO),\r
274                                                 'login'       => ($current->mcanlogin ? _YES : _NO),\r
275                                                 'editbtn'     => _LISTS_EDIT,\r
276                                                 'deletebtn'   => _LISTS_DELETE,\r
277                                         );\r
278                         break;\r
279                 case 'FOOT':\r
280                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_MEMBLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_MEMBLIST_FOOT']) )\r
281                         {\r
282                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_MEMBLIST_FOOT'];\r
283                         }\r
284                         else\r
285                         {\r
286                                 $template = "";\r
287                         }\r
288                         $data = array();\r
289                         break;\r
290         }\r
291         return Template::fill($template, $data);\r
292 }\r
293 \r
294 function listplug_table_teamlist($vars, $type, $templateName = '')\r
295 {\r
296         global $manager;\r
297         $templates = array();\r
298         if ( !empty($templateName) )\r
299         {\r
300                 $templates = Template::read($templateName);\r
301         }\r
302         switch( $type )\r
303         {\r
304                 case 'HEAD':\r
305                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_TEAMLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_TEAMLIST_HEAD']) )\r
306                         {\r
307                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TEAMLIST_HEAD'];\r
308                         }\r
309                         else\r
310                         {\r
311                                 $template = "<th><%colmembername%></th>\n"\r
312                                                   . "<th><%colmemberrname%></th>\n"\r
313                                                   . "<th><%colteamadmin%><%helplink(teamadmin)%></th>\n"\r
314                                                   . "<th colspan=\"2\"><%colactions%></th>\n";\r
315                         }\r
316                         $data = array(\r
317                                                 'colmembername'  => _LIST_MEMBER_NAME,\r
318                                                 'colmemberrname' => _LIST_MEMBER_RNAME,\r
319                                                 'colteamadmin'   => _LIST_TEAM_ADMIN,\r
320                                                 'colactions'     => _LISTS_ACTIONS,\r
321                                         );\r
322                         break;\r
323                 case 'BODY':\r
324                         $current = $vars['current'];\r
325                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_TEAMLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_TEAMLIST_BODY']) )\r
326                         {\r
327                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TEAMLIST_BODY'];\r
328                         }\r
329                         else\r
330                         {\r
331                                 $template = "<td>\n"\r
332                                                   . "<input type=\"checkbox\" id=\"batch<%id%>\" name=\"batch[<%id%>]\" value=\"<%memberid%>\" />\n"\r
333                                                   . "<label for=\"batch<%id%>\">\n"\r
334                                                   . "<a href=\"mailto:<%mailaddress%>\" tabindex=\"<%tabindex%>\"><%name%></a>\n"\r
335                                                   . "</label>\n</td>\n"\r
336                                                   . "<td><%realname%></td>\n"\r
337                                                   . "<td><%admin%></td>\n"\r
338                                                   . "<td><a href=\"index.php?action=teamdelete&amp;memberid=<%memberid%>&amp;blogid=<%blogid%>\" tabindex=\"<%tabindex%>\"><%deletebtn%></a></td>\n"\r
339                                                   . "<td><a href=\"<%chadminurl%>\" tabindex=\"<%tabindex%>\"><%chadminbtn%></a></td>\n";\r
340                         }\r
341                         $url  = 'index.php?action=teamchangeadmin&memberid=' . intval($current->tmember) . '&blogid=' . intval($current->tblog);\r
342                         $url  = $manager->addTicketToUrl($url);\r
343                         $data = array(\r
344                                         'id'          => listplug_nextBatchId(),\r
345                                         'memberid'    => $current->tmember,\r
346                                         'mailaddress' => Entity::hsc($current->memail),\r
347                                         'tabindex'    => $vars['tabindex'],\r
348                                         'name'        => Entity::hsc($current->mname),\r
349                                         'realname'    => Entity::hsc($current->mrealname),\r
350                                         'admin'       => ($current->tadmin ? _YES : _NO),\r
351                                         'blogid'      => $current->tblog,\r
352                                         'deletebtn'   => _LISTS_DELETE,\r
353                                         'chadminurl'  => Entity::hsc($url),\r
354                         );\r
355                         break;\r
356                 case 'FOOT':\r
357                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_TEAMLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_TEAMLIST_FOOT']) )\r
358                         {\r
359                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TEAMLIST_FOOT'];\r
360                         }\r
361                         else\r
362                         {\r
363                                 $template = "";\r
364                         }\r
365                         break;\r
366         }\r
367         return Template::fill($template, $data);\r
368 }\r
369 \r
370 function listplug_table_pluginlist($vars, $type, $templateName = '')\r
371 {\r
372         global $manager;\r
373         $templates = array();\r
374         if ( !empty($templateName) )\r
375         {\r
376                 $templates = Template::read($templateName);\r
377         }\r
378         switch( $type )\r
379         {\r
380                 case 'HEAD':\r
381                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_HEAD']) )\r
382                         {\r
383                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_HEAD'];\r
384                         }\r
385                         else\r
386                         {\r
387                                 $template = "<th><%colinfo%></th>\n"\r
388                                                   . "<th><%coldesc%></th>\n"\r
389                                                   . "<th colspan=\"2\"><%colactions%></th>\n";\r
390                         }\r
391                         $data = array(\r
392                                                 'colinfo'    => _LISTS_INFO,\r
393                                                 'coldesc'    => _LISTS_DESC,\r
394                                                 'colactions' => _LISTS_ACTIONS,\r
395                                         );\r
396                         break;\r
397                 case 'BODY':\r
398                         $current = $vars['current'];\r
399 \r
400                         $plug =& $manager->getPlugin($current->pfile);\r
401                         if ( $plug )\r
402                         {\r
403                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_BODY']) )\r
404                                 {\r
405                                         $template = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_BODY'];\r
406                                 }\r
407                                 else\r
408                                 {\r
409                                         $template = "<td>\n"\r
410                                                           . "<strong><%plugname%></strong><br />\n"\r
411                                                           . "<%autherlabel%> <%plugauther%><br />\n"\r
412                                                           . "<%versionlabel%> <%plugversion%><br />\n"\r
413                                                           . "<%pluggeturl%><br />\n"\r
414                                                           . "</td>\n"\r
415                                                           . "<td>\n"\r
416                                                           . "<%desclabel%><br /><%plugdesc%>\n"\r
417                                                           . "<%eventlist%>\n"\r
418                                                           . "<%needupdate%>\n"\r
419                                                           . "<%dependlist%>\n"\r
420                                                           . "<%depreqlist%>\n"\r
421                                                           . "</td>\n";\r
422                                 }\r
423                                 $data = array(\r
424                                                         'plugname'     => Entity::hsc($plug->getName()),\r
425                                                         'autherlabel'  => _LIST_PLUGS_AUTHOR,\r
426                                                         'plugauther'   => Entity::hsc($plug->getAuthor()),\r
427                                                         'versionlabel' => _LIST_PLUGS_VER,\r
428                                                         'plugversion'  => Entity::hsc($plug->getVersion()),\r
429                                                         'tabindex'     => $vars['tabindex'],\r
430                                                         'desclabel'    => _LIST_PLUGS_DESC,\r
431                                                         'plugdesc'     => Entity::hen($plug->getDescription()),\r
432                                                 );\r
433                                 if ( $plug->getURL() )\r
434                                 {\r
435                                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_GURL']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_GURL']) )\r
436                                         {\r
437                                                 $subTpl = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_GURL'];\r
438                                         }\r
439                                         else\r
440                                         {\r
441                                                 $subTpl = "<a href=\"<%plugurl%>\" tabindex=\"<%tabindex%>\"><%plugsite%></a>";\r
442                                         }\r
443                                         $subData = array(\r
444                                                                                 'plugurl'  => Entity::hsc($plug->getURL()),\r
445                                                                                 'tabindex' => $vars['tabindex'],\r
446                                                                                 'plugsite' => _LIST_PLUGS_SITE,\r
447                                                                 );\r
448                                         $data['pluggeturl'] = Template::fill($subTpl, $subData);\r
449                                 }\r
450                                 else\r
451                                 {\r
452                                         $data['pluggeturl'] = '';\r
453                                 }\r
454                                 if ( count($plug->getEventList()) > 0 )\r
455                                 {\r
456                                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGEVENTLIST']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGEVENTLIST']) )\r
457                                         {\r
458                                                 $subTpl = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGEVENTLIST'];\r
459                                         }\r
460                                         else\r
461                                         {\r
462                                                 $subTpl = "<br /><br /><%evntlstlbl%><br /><%eventlist%>";\r
463                                         }\r
464                                         $subData = array(\r
465                                                         'evntlstlbl' => _LIST_PLUGS_SUBS,\r
466                                                         'eventlist'  => Entity::hsc(implode(', ', $plug->getEventList())),\r
467                                         );\r
468                                         $data['eventlist'] = Template::fill($subTpl, $subData);\r
469                                 }\r
470                                 else\r
471                                 {\r
472                                         $data['eventlist'] = '';\r
473                                 }\r
474                                 if ( !$plug->subscribtionListIsUptodate() )\r
475                                 {\r
476                                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGNEDUPDATE']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGNEDUPDATE']) )\r
477                                         {\r
478                                                 $subTpl = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGNEDUPDATE'];\r
479                                         }\r
480                                         else\r
481                                         {\r
482                                                 $subTpl = "<br /><br /><strong><%updatealert%></strong>";\r
483                                         }\r
484                                         $subData = array(\r
485                                                         'updatealert' => _LIST_PLUG_SUBS_NEEDUPDATE,\r
486                                         );\r
487                                         $data['needupdate'] = Template::fill($subTpl, $subData);\r
488                                 }\r
489                                 else\r
490                                 {\r
491                                         $data['needupdate'] = '';\r
492                                 }\r
493                                 if ( count($plug->getPluginDep() ) > 0)\r
494                                 {\r
495                                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGIN_DEPEND']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGIN_DEPEND']) )\r
496                                         {\r
497                                                 $subTpl = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGIN_DEPEND'];\r
498                                         }\r
499                                         else\r
500                                         {\r
501                                                 $subTpl = "<br /><br /><%deplistlbl%><br /><%dependlist%>";\r
502                                         }\r
503                                         $subData = array(\r
504                                                         'deplistlbl' => _LIST_PLUGS_DEP,\r
505                                                         'dependlist' => Entity::hsc(implode(', ', $plug->getPluginDep())),\r
506                                         );\r
507                                         $data['dependlist'] = Template::fill($subTpl, $subData);\r
508                                 }\r
509                                 else\r
510                                 {\r
511                                         $data['dependlist'] = '';\r
512                                 }\r
513                                 /* check dependency */\r
514                                 $req = array();\r
515                                 $res = sql_query('SELECT pfile FROM ' . sql_table('plugin'));\r
516                                 while( $o = sql_fetch_object($res) )\r
517                                 {\r
518                                         $preq =& $manager->getPlugin($o->pfile);\r
519                                         if ( $preq )\r
520                                         {\r
521                                                 $depList = $preq->getPluginDep();\r
522                                                 foreach ( $depList as $depName )\r
523                                                 {\r
524                                                         if ( $current->pfile == $depName )\r
525                                                         {\r
526                                                                 $req[] = $o->pfile;\r
527                                                         }\r
528                                                 }\r
529                                         }\r
530                                 }\r
531                                 \r
532                                 if ( count($req) > 0 )\r
533                                 {\r
534                                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGIN_DEPREQ']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGIN_DEPREQ']) )\r
535                                         {\r
536                                                 $subTpl = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGIN_DEPREQ'];\r
537                                         }\r
538                                         else\r
539                                         {\r
540                                                 $subTpl = "<br /><br /><%deprlstlbl%><br /><%depreqlist%>";\r
541                                         }\r
542                                         $subData = array(\r
543                                                         'deprlstlbl' => _LIST_PLUGS_DEPREQ,\r
544                                                         'depreqlist' => Entity::hsc(implode(', ', $req)),\r
545                                         );\r
546                                         $data['depreqlist'] = Template::fill($subTpl, $subData);\r
547                                 }\r
548                                 else\r
549                                 {\r
550                                         $data['depreqlist'] = '';\r
551                                 }\r
552                         }\r
553                         else\r
554                         {\r
555                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLISTFALSE']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLISTFALSE']) )\r
556                                 {\r
557                                         $template = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGLISTFALSE'];\r
558                                 }\r
559                                 else\r
560                                 {\r
561                                         $template = "<td colspan=\"2\"><%noplugalert%></td>\n";\r
562                                 }\r
563                                 $data = array(\r
564                                                         'noplugalert' => sprintf(_PLUGINFILE_COULDNT_BELOADED, Entity::hsc($current->pfile)),\r
565                                                 );\r
566                         }\r
567                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_ACTN']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_ACTN']) )\r
568                         {\r
569                                 $template .= $templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_ACTN'];\r
570                         }\r
571                         else\r
572                         {\r
573                                 $template .= "<td>\n"\r
574                                                    . "<a href=\"<%actionupurl%>\" tabindex=\"<%tabindex%>\"><%actionuptxt%></a><br />\n"\r
575                                                    . "<a href=\"<%actiondownurl%>\" tabindex=\"<%tabindex%>\"><%actiondowntxt%></a><br />\n"\r
576                                                    . "<a href=\"<%actuninsturl%>\" tabindex=\"<%tabindex%>\"><%actuninsttxt%></a><br />"\r
577                                                    . "<%plugadminurl%>\n"\r
578                                                    . "<%plughelpurl%>\n"\r
579                                                    . "<%plugoptsetting%>\n"\r
580                                                    . "</td>\n";\r
581                         }\r
582                         $baseUrl = 'index.php?plugid=' . $current->pid . '&action=';\r
583                         $upUrl   = $manager->addTicketToUrl($baseUrl . 'pluginup');\r
584                         $downUrl = $manager->addTicketToUrl($baseUrl . 'plugindown');\r
585                         $data['actionuptxt']   = _LIST_PLUGS_UP;\r
586                         $data['actionupurl']   = Entity::hsc($upUrl);\r
587                         $data['actiondowntxt'] = _LIST_PLUGS_DOWN;\r
588                         $data['actiondownurl'] = Entity::hsc($downUrl);\r
589                         $data['actuninsttxt']  = _LIST_PLUGS_UNINSTALL;\r
590                         $data['actuninsturl']  = 'index.php?action=plugindelete&amp;plugid=' . $current->pid;\r
591                         if ( $plug && ($plug->hasAdminArea() > 0) )\r
592                         {\r
593                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_ADMN']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_ADMN']) )\r
594                                 {\r
595                                         $subTpl = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_ADMN'];\r
596                                 }\r
597                                 else\r
598                                 {\r
599                                         $subTpl = "<a href=\"<%actadminurl%>\" tabindex=\"<%tabindex%>\"><%actadmintxt%></a><br />\n";\r
600                                 }\r
601                                 $subData = array(\r
602                                                                 'actadminurl' => Entity::hsc($plug->getAdminURL()),\r
603                                                                 'tabindex'    => $vars['tabindex'],\r
604                                                                 'actadmintxt' => _LIST_PLUGS_ADMIN,\r
605                                                         );\r
606                                 $data['plugadminurl'] = Template::fill($subTpl, $subData);\r
607                         }\r
608                         else\r
609                         {\r
610                                 $data['plugadminurl'] = '';\r
611                         }\r
612                         if ( $plug && ($plug->supportsFeature('HelpPage') > 0) )\r
613                         {\r
614                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_HELP']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_HELP']) )\r
615                                 {\r
616                                         $subTpl = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_HELP'];\r
617                                 }\r
618                                 else\r
619                                 {\r
620                                         $subTpl = "<a href=\"<%acthelpurl%>\" tabindex=\"<%tabindex%>\"><%acthelptxt%></a><br />\n";\r
621                                 }\r
622                                 $subData = array(\r
623                                                 'acthelpurl' => 'index.php?action=pluginhelp&amp;plugid=' . $current->pid,\r
624                                                 'tabindex'   => $vars['tabindex'],\r
625                                                 'acthelptxt' => _LIST_PLUGS_HELP,\r
626                                 );\r
627                                 $data['plughelpurl'] = Template::fill($subTpl, $subData);\r
628                         }\r
629                         else\r
630                         {\r
631                                 $data['plughelpurl'] = '';\r
632                         }\r
633                         $optQuery = 'SELECT '\r
634                                           . '    COUNT(*) AS result '\r
635                                           . 'FROM '\r
636                                           .      sql_table('plugin_option_desc') . ' '\r
637                                           . 'WHERE '\r
638                                           . '    ocontext = "global" '\r
639                                           . 'AND opid     = %d';\r
640                         $pOptions = quickQuery(sprintf($optQuery, $current->pid));\r
641                         if ( $pOptions > 0 )\r
642                         {\r
643                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGOPTSETURL']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGOPTSETURL']) )\r
644                                 {\r
645                                         $subTpl = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGOPTSETURL'];\r
646                                 }\r
647                                 else\r
648                                 {\r
649                                         $subTpl = "<a href=\"<%actoptionurl%>\" tabindex=\"<%tabindex%>\"><%actoptiontxt%></a>\n";\r
650                                 }\r
651                                 $subData = array(\r
652                                                 'actoptionurl' => 'index.php?action=pluginoptions&amp;plugid=' . $current->pid,\r
653                                                 'tabindex'     => $vars['tabindex'],\r
654                                                 'actoptiontxt' => _LIST_PLUGS_OPTIONS,\r
655                                 );\r
656                                 $data['plugoptsetting'] = Template::fill($subTpl, $subData);\r
657                         }\r
658                         else\r
659                         {\r
660                                 $data['plugoptsetting'] = '';\r
661                         }\r
662                         break;\r
663                 case 'FOOT':\r
664                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_FOOT']) )\r
665                         {\r
666                                 $subTpl = $templates['SHOWLIST_LISTPLUG_TABLE_PLUGLIST_FOOT'];\r
667                         }\r
668                         else\r
669                         {\r
670                                 $subTpl = "";\r
671                         }\r
672                         $data = array();\r
673                         break;\r
674         }\r
675         return Template::fill($template, $data);\r
676 }\r
677 \r
678 function listplug_table_plugoptionlist($vars, $type, $templateName = '')\r
679 {\r
680         global $manager;\r
681         $templates = array();\r
682         if ( !empty($templateName) )\r
683         {\r
684                 $templates = Template::read($templateName);\r
685         }\r
686         switch( $type )\r
687         {\r
688                 case 'HEAD':\r
689                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_POPTLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_POPTLIST_HEAD']) )\r
690                         {\r
691                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_POPTLIST_HEAD'];\r
692                         }\r
693                         else\r
694                         {\r
695                                 $template = "<th><%colinfo%></th><th><%colvalue%></th>\n";\r
696                         }\r
697                         $data = array(\r
698                                                 'colinfo'  => _LISTS_INFO,\r
699                                                 'colvalue' => _LISTS_VALUE,\r
700                                         );\r
701                         break;\r
702                 case 'BODY':\r
703                         $current  = $vars['current'];\r
704                         $template = listplug_plugOptionRow($current, $templateName);\r
705                         $data     = array();\r
706                         break;\r
707                 case 'FOOT':\r
708                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_POPTLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_POPTLIST_FOOT']) )\r
709                         {\r
710                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_POPTLIST_FOOT'];\r
711                         }\r
712                         else\r
713                         {\r
714                                 $template = "<tr>\n"\r
715                                                   . "<th colspan=\"2\"><%savetext%></th>"\r
716                                                   . "<th colspan=\"2\"><%savetext%></th>"\r
717                                                   . "<td><input type=\"submit\" value=\"<%savetext%>\" /></td>"\r
718                                                   . "</tr>\n";\r
719                         }\r
720                         $data = array(\r
721                                                 'savetext' => _PLUGS_SAVE,\r
722                                         );\r
723                         break;\r
724         }\r
725         return Template::fill($template, $data);\r
726 }\r
727 \r
728 function listplug_plugOptionRow($current, $templateName = '')\r
729 {\r
730         $templates = array();\r
731         if ( !empty($templateName) )\r
732         {\r
733                 $templates = Template::read($templateName);\r
734         }\r
735         $varname = "plugoption[{$current['oid']}][{$current['contextid']}]";\r
736         \r
737         // retreive the optionmeta\r
738         $meta = NucleusPlugin::getOptionMeta($current['typeinfo']);\r
739         \r
740         // only if it is not a hidden option write the controls to the page\r
741         if ( in_array('access', $meta) && $meta['access'] == 'hidden' )\r
742         {\r
743                 return false;\r
744         }\r
745         else\r
746         {\r
747                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_POPTLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_POPTLIST_BODY']) )\r
748                 {\r
749                         $template = $templates['SHOWLIST_LISTPLUG_TABLE_POPTLIST_BODY'];\r
750                 }\r
751                 else\r
752                 {\r
753                         $template = "<td><%description%></td>\n<td>\n";\r
754                 }\r
755                 $data = array();\r
756                 switch($current['type'])\r
757                 {\r
758                         case 'yesno':\r
759                                 $template .= AdminActions::input_yesno($varname, $current['value'], 0, 'yes', 'no', _YES, _NO, 0, $templateName, 1);\r
760                                 break;\r
761                         case 'password':\r
762                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OPWORD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OPWORD']) )\r
763                                 {\r
764                                         $template .= $templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OPWORD'];\r
765                                 }\r
766                                 else\r
767                                 {\r
768                                         $template .= "<input type=\"password\" size=\"40\" maxlength=\"128\" name=\"<%varname%>\" value=\"<%value%>\" />\n";\r
769                                 }\r
770                                 $data = array(\r
771                                                         'varname' => Entity::hsc($varname),\r
772                                                         'value'   => Entity::hsc($current['value']),\r
773                                                 );\r
774                                 break;\r
775                         case 'select':\r
776                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OSELEP']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OSELEP']) )\r
777                                 {\r
778                                         $template .= $templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OSELEP'];\r
779                                 }\r
780                                 else\r
781                                 {\r
782                                         $template .= "<select name=\"<%varname%>\">\n";\r
783                                 }\r
784                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OSELEO']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OSELEO']) )\r
785                                 {\r
786                                         $subTpl = $templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OSELEO'];\r
787                                 }\r
788                                 else\r
789                                 {\r
790                                         $subTpl = "<option value=\"<%value%>\"<%selected%>><%optname%></option>\n";\r
791                                 }\r
792                                 $options = NucleusPlugin::getOptionSelectValues($current['typeinfo']);\r
793                                 $options = i18n::explode('|', $options);\r
794 \r
795                                 for ( $i=0; $i<(count($options)-1); $i+=2 )\r
796                                 {\r
797                                         $subData = array(\r
798                                                                         'optname' => Entity::hsc($options[$i]),\r
799                                                                         'value'   => Entity::hsc($options[$i+1])\r
800                                                                 );\r
801                                         if ($options[$i+1] == $current['value'])\r
802                                         {\r
803                                                 $subData['selected'] = ' selected="selected"';\r
804                                         }\r
805                                         else\r
806                                         {\r
807                                                 $subData['selected'] = '';\r
808                                         }\r
809                                         $template .= Template::fill($subTpl, $subData);\r
810                                 }\r
811                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OSELEC']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OSELEC']) )\r
812                                 {\r
813                                         $template .= $templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OSELEC'];\r
814                                 }\r
815                                 else\r
816                                 {\r
817                                         $template .= "</select>\n";\r
818                                 }\r
819                                 $data['varname'] = Entity::hsc($varname);\r
820                                 break;\r
821                         case 'textarea':\r
822                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OTAREA']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OTAREA']) )\r
823                                 {\r
824                                         $template .= $templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OTAREA'];\r
825                                 }\r
826                                 else\r
827                                 {\r
828                                         $template .= "<textarea class=\"pluginoption\" cols=\"30\" rows=\"5\" name=\"<%varname%>\"<%readonly%>><%value%></textarea>";\r
829                                 }\r
830                                 $data = array(\r
831                                                         'varname' => Entity::hsc($varname),\r
832                                                         'value'   => Entity::hsc($current['value'])\r
833                                                 );\r
834                                 if ( array_key_exists('access', $current) && $current['access'] == 'readonly')\r
835                                 {\r
836                                         $data['readonly'] = ' readonly="readonly"';\r
837                                 }\r
838                                 else\r
839                                 {\r
840                                         $data['readonly'] = '';\r
841                                 }\r
842                                 break;\r
843                         case 'text':\r
844                         default:\r
845                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OITEXT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OITEXT']) )\r
846                                 {\r
847                                         $template .= $templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OITEXT'];\r
848                                 }\r
849                                 else\r
850                                 {\r
851                                         $template .= "<input type=\"text\" size=\"40\" maxlength=\"128\" name=\"<%varname%>\" value=\"<%value%>\"<%datatype%><%readonly%> />\n";\r
852                                 }\r
853                                 $data = array(\r
854                                                         'varname' => Entity::hsc($varname),\r
855                                                         'value'   => Entity::hsc($current['value'])\r
856                                                 );\r
857                                 if ( array_key_exists('datatype', $current) && $current['datatype'] == 'numerical')\r
858                                 {\r
859                                         $data['datatype'] = ' onkeyup="checkNumeric(this)" onblur="checkNumeric(this)"';\r
860                                 }\r
861                                 else\r
862                                 {\r
863                                         $data['datatype'] = '';\r
864                                 }\r
865                                 if ( array_key_exists('access', $current) && $current['access'] == 'readonly')\r
866                                 {\r
867                                         $data['readonly'] = ' readonly="readonly"';\r
868                                 }\r
869                                 else\r
870                                 {\r
871                                         $data['readonly'] = '';\r
872                                 }\r
873                 }\r
874                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_PLUGOPTN_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLUGOPTN_FOOT']) )\r
875                 {\r
876                         $template .= $templates['SHOWLIST_LISTPLUG_TABLE_PLUGOPTN_FOOT'];\r
877                 }\r
878                 else\r
879                 {\r
880                         $template .= "<%extra%></td>\n";\r
881                 }\r
882                 $data['extra']       = isset($current['extra']) ? $current['extra'] : '';\r
883                 $data['description'] = $current['description'] ? Entity::hsc($current['description']) : Entity::hsc($current['name']);\r
884         }\r
885         return Template::fill($template, $data, 1);\r
886 }\r
887 \r
888 function listplug_table_itemlist($vars, $type, $templateName = '')\r
889 {\r
890         $cssclass  = '';\r
891         $templates = array();\r
892         if ( !empty($templateName) )\r
893         {\r
894                 $templates = Template::read($templateName);\r
895         }\r
896         \r
897         switch( $type )\r
898         {\r
899                 case 'HEAD':\r
900                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_ITEMLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_ITEMLIST_HEAD']) )\r
901                         {\r
902                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ITEMLIST_HEAD'];\r
903                         }\r
904                         else\r
905                         {\r
906                                 $template = "<th><%colinfo%></th><th><%colcontent%></th><th style=\"white-space:nowrap\"><%colaction%></th>\n";\r
907                         }\r
908                         $data = array(\r
909                                                 'colinfo'    => _LIST_ITEM_INFO,\r
910                                                 'colcontent' => _LIST_ITEM_CONTENT,\r
911                                                 'colaction'  => _LISTS_ACTIONS\r
912                                         );\r
913                         break;\r
914                 case 'BODY':\r
915                         $current = $vars['current'];\r
916                         // string -> unix timestamp\r
917                         $current->itime = strtotime($current->itime);\r
918                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_ITEMLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_ITEMLIST_BODY']) )\r
919                         {\r
920                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ITEMLIST_BODY'];\r
921                         }\r
922                         else\r
923                         {\r
924                                 $template = "<td<%cssclass%>>\n"\r
925                                                   . "<%bshortlabel%> <%bshortnameval%><br />\n"\r
926                                                   . "<%categorylabel%> <%categorynameval%><br />\n"\r
927                                                   . "<%authorlabel%> <%authornameval%><br />\n"\r
928                                                   . "<%itemdatelabel%> <%itemdateval%><br />\n"\r
929                                                   . "<%itemtimelabel%> <%itemtimeval%>\n"\r
930                                                   . "</td>\n"\r
931                                                   . "<td><input type=\"checkbox\" id=\"batch<%batchid%>\" name=\"batch<%batchid%>\" value=\"<%itemid%>\" />\n"\r
932                                                   . "<label for=\"batch<%batchid%>\"><b><%itemtitle%></b></label><br />\n"\r
933                                                   . "<%itembody%>\n"\r
934                                                   . "</td><td>"\r
935                                                   . "<a href=\"index.php?action=itemedit&amp;itemid=<%itemid%>\"><%editbtn%></a><br />\n"\r
936                                                   . "<%camount%>\n"\r
937                                                   . "<a href=\"index.php?action=itemmove&amp;itemid=<%itemid%>\"><%movebtn%></a><br />\n"\r
938                                                   . "<a href=\"index.php?action=itemdelete&amp;itemid=<%itemid%>\"><%delbtn%></a><br />\n"\r
939                                                   . "</td>\n";\r
940                         }\r
941                         $cssclass  = '';\r
942         \r
943                         if ( $current->idraft == 1 )\r
944                         {\r
945                                 $cssclass = ' class="draft"';\r
946                         }\r
947                         \r
948                         // (can't use offset time since offsets might vary between blogs)\r
949                         if ( $current->itime > $vars['now'] )\r
950                         {\r
951                                 $cssclass = ' class="future"';\r
952                         }\r
953                         $body = strip_tags($current->ibody);\r
954                         $data = array(\r
955                                         'cssclass'        => $cssclass,\r
956                                         'bshortlabel'     => _LIST_ITEM_BLOG,\r
957                                         'bshortnameval'   => Entity::hsc($current->bshortname),\r
958                                         'categorylabel'   => _LIST_ITEM_CAT,\r
959                                         'categorynameval' => Entity::hsc($current->cname),\r
960                                         'authorlabel'     => _LIST_ITEM_AUTHOR,\r
961                                         'authornameval'   => Entity::hsc($current->mname),\r
962                                         'itemdatelabel'   => _LIST_ITEM_DATE,\r
963                                         'itemdateval'     => date("Y-m-d",$current->itime),\r
964                                         'itemdatelabel'   => _LIST_ITEM_TIME,\r
965                                         'itemdateval'     => date("H:i",$current->itime),\r
966                                         'batchid'         => listplug_nextBatchId(),\r
967                                         'itemid'          => $current->inumber,\r
968                                         'itemtitle'       => Entity::hsc(strip_tags($current->ititle)),\r
969                                         'itembody'        => Entity::hsc(Entity::shorten($body, 300, '...')),\r
970                                         'editbtn'         => _LISTS_EDIT,\r
971                                         'movebtn'         => _LISTS_MOVE,\r
972                                         'delbtn'          => _LISTS_DELETE,\r
973                         );\r
974                         // evaluate amount of comments for the item\r
975                         $comment = new Comments($current->inumber);\r
976                         $camount = $comment->amountComments();\r
977                         if ( $camount > 0 )\r
978                         {\r
979                                 $data['camount'] = "<a href=\"index.php?action=itemcommentlist&amp;itemid=\"{$current->inumber}\">(" . sprintf(_LIST_ITEM_COMMENTS, $comment->amountComments()) . ")</a><br />\n";\r
980                         }\r
981                         else\r
982                         {\r
983                                 $data['camount'] = "<li>" . _LIST_ITEM_NOCONTENT . "</li>\n";\r
984                         }\r
985                         break;\r
986                 case 'FOOT':\r
987                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_ITEMLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_ITEMLIST_FOOT']) )\r
988                         {\r
989                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ITEMLIST_FOOT'];\r
990                         }\r
991                         else\r
992                         {\r
993                                 $template = "\n";\r
994                         }\r
995                         $data = array();\r
996                         break;\r
997         }\r
998         return Template::fill($template, $data);\r
999 }\r
1000 \r
1001 // for batch operations: generates the index numbers for checkboxes\r
1002 function listplug_nextBatchId()\r
1003 {\r
1004         static $id = 0;\r
1005         return $id++;\r
1006 }\r
1007 \r
1008 function listplug_table_commentlist($vars, $type, $templateName = '')\r
1009 {\r
1010         $templates = array();\r
1011         if ( !empty($templateName) )\r
1012         {\r
1013                 $templates = Template::read($templateName);\r
1014         }\r
1015         switch( $type )\r
1016         {\r
1017                 case 'HEAD':\r
1018                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_HEAD']) )\r
1019                         {\r
1020                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_HEAD'];\r
1021                         }\r
1022                         else\r
1023                         {\r
1024                                 $template = "<th><%colinfo%></th>\n<th><%colcontent%></th>\n<th colspan=\"3\"><%colaction%></th>\n";\r
1025                         }\r
1026                         $data = array(\r
1027                                                 'colinfo'    => _LISTS_INFO,\r
1028                                                 'colcontent' => _LIST_COMMENT,\r
1029                                                 'colaction'  => _LISTS_ACTIONS\r
1030                                         );\r
1031                         break;\r
1032                 case 'BODY':\r
1033                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_BODY']) )\r
1034                         {\r
1035                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_BODY'];\r
1036                         }\r
1037                         else\r
1038                         {\r
1039                                 $template = "<td><%commentdate%><br /><%commentator%><br /><%commentsite%><br /><%commentmail%><br /></td>\n"\r
1040                                                   . "<td><input type=\"checkbox\" id=\"batch<%batchid%>\" name=\"batch[<%batchid%>]\" value=\"<%commentid%>\" />"\r
1041                                                   . "<label for=\"batch<%batchid%>\"><%commentbody%></label></td>\n"\r
1042                                                   . "<td style=\"white-space:nowrap\">"\r
1043                                                   . "<a href=\"index.php?action=commentedit&amp;commentid=<%commentid%>\"><%editbtn%></a></td>\n"\r
1044                                                   . "<td style=\"white-space:nowrap\">"\r
1045                                                   . "<a href=\"index.php?action=commentdelete&amp;commentid=<%commentid%>\"><%delbtn%></a></td>\n"\r
1046                                                   . "<%addbanlist%>";\r
1047                         }\r
1048                         $current = $vars['current'];\r
1049                         $body    = strip_tags($current->cbody);\r
1050                         $data    = array(\r
1051                                                         'commentdate' => date("Y-m-d@H:i", strtotime($current->ctime)),\r
1052                                                         'batchid'     => listplug_nextBatchId(),\r
1053                                                         'commentid'   => $current->cnumber,\r
1054                                                         'commentbody' => Entity::hsc(Entity::shorten($current->cbody, 300, '...')),\r
1055                                                         'editbtn'     => _LISTS_EDIT,\r
1056                                                         'delbtn'      => _LISTS_DELETE,\r
1057                                            );\r
1058                         if ( isset($current->mname) )\r
1059                         {\r
1060                                 $data['commentator'] = Entity::hsc($current->mname) . ' ' . _LIST_COMMENTS_MEMBER;\r
1061                         }\r
1062                         else\r
1063                         {\r
1064                                 $data['commentator'] = Entity::hsc($current->cuser);\r
1065                         }\r
1066                         if ( isset($current->cmail) && $current->cmail )\r
1067                         {\r
1068                                 $data['commentsite'] = Entity::hsc($current->cmail);\r
1069                         }\r
1070                                 else\r
1071                         {\r
1072                                 $data['commentsite'] = '';\r
1073                         }\r
1074                         if ( isset($current->cemail) && $current->cemail )\r
1075                         {\r
1076                                 $data['commentmail'] = Entity::hsc($current->cemail);\r
1077                         }\r
1078                                 else\r
1079                         {\r
1080                                 $data['commentmail'] = '';\r
1081                         }\r
1082                         if ( $vars['canAddBan'] )\r
1083                         {\r
1084                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_ABAN']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_ABAN']) )\r
1085                                 {\r
1086                                         $subTpl = $templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_ABAN'];\r
1087                                 }\r
1088                                 else\r
1089                                 {\r
1090                                         $subTpl = "<td style=\"white-space:nowrap\"><a href=\"index.php?action=banlistnewfromitem&amp;itemid=<%itemid%>&amp;ip=<%banip%>\" title=\"<%banhost%>\"><%banbtn%></a></td>\n";\r
1091                                 }\r
1092                                 $subData = array(\r
1093                                                                 'itemid'  => $current->citem,\r
1094                                                                 'banip'   => Entity::hsc($current->cip),\r
1095                                                                 'banbtn'  => _LIST_COMMENT_BANIP,\r
1096                                                         );\r
1097                                 $data['addbanlist'] = Template::fill($subTpl, $subData);\r
1098                         }\r
1099                         break;\r
1100                 case 'FOOT':\r
1101                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_FOOT']) )\r
1102                         {\r
1103                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_CMNTLIST_FOOT'];\r
1104                         }\r
1105                         else\r
1106                         {\r
1107                                 $template = "";\r
1108                         }\r
1109                         $subData = array();\r
1110                         break;\r
1111         }\r
1112         return Template::fill($template, $data);\r
1113 }\r
1114 \r
1115 function listplug_table_bloglist($vars, $type, $templateName = '')\r
1116 {\r
1117         $templates = array();\r
1118         if ( !empty($templateName) )\r
1119         {\r
1120                 $templates = Template::read($templateName);\r
1121         }\r
1122         switch( $type )\r
1123         {\r
1124                 case 'HEAD':\r
1125                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_BLOGLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_BLOGLIST_HEAD']) )\r
1126                         {\r
1127                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_BLOGLIST_HEAD'];\r
1128                         }\r
1129                         else\r
1130                         {\r
1131                                 $template = "<th><%blognames%></th>\n<th colspan=\"7\"><%actionshead%></th>\n";\r
1132                         }\r
1133                         $data = array(\r
1134                                                 'blognames'   => _NAME,\r
1135                                                 'actionshead' => _LISTS_ACTIONS,\r
1136                                         );\r
1137                         break;\r
1138                 case 'BODY':\r
1139                         $current = $vars['current'];\r
1140                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_BLOGLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_BLOGLIST_BODY']) )\r
1141                         {\r
1142                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_BLOGLIST_BODY'];\r
1143                         }\r
1144                         else\r
1145                         {\r
1146                                 $template = "<td title=\"blogid:<%blogid%> shortname:<%shortname%>\">\n"\r
1147                                                   . "<a href=\"<%blogurl%>\"><img src=\"images/globe.gif\" width=\"13\" height=\"13\" alt=\"<%iconalt%>\" /></a><%blogname%></td>\n"\r
1148                                                   . "<td><a href=\"index.php?action=createitem&amp;blogid=<%blogid%>\" title=\"<%ttaddtext%>\"><%addtext%></a></td>\n"\r
1149                                                   . "<td><a href=\"index.php?action=itemlist&amp;blogid=<%blogid%>\" title=\"<%ttedittext%>\"><%edittext%></a></td>\n"\r
1150                                                   . "<td><a href=\"index.php?action=blogcommentlist&amp;blogid=<%blogid%>\" title=\"<%ttcommenttext%>\"><%commenttext%></a></td>\n"\r
1151                                                   . "<td><a href=\"index.php?action=bookmarklet&amp;blogid=<%blogid%>\" title=\"<%ttbmlettext%>\"><%bmlettext%></a></td>\n";\r
1152                         }\r
1153                         $data = array(\r
1154                                                 'blogid'        => $current->bnumber,\r
1155                                                 'shortname'     => Entity::hsc($current->bshortname),\r
1156                                                 'blogurl'       => $current->burl,\r
1157                                                 'blogname'      => Entity::hsc($current->bname),\r
1158                                                 'ttaddtext'     => _BLOGLIST_TT_ADD,\r
1159                                                 'addtext'       => _BLOGLIST_ADD,\r
1160                                                 'ttedittext'    => _BLOGLIST_TT_EDIT,\r
1161                                                 'edittext'      => _BLOGLIST_EDIT,\r
1162                                                 'ttcommenttext' => _BLOGLIST_TT_COMMENTS,\r
1163                                                 'commenttext'   => _BLOGLIST_COMMENTS,\r
1164                                                 'ttbmlettext'   => _BLOGLIST_TT_BMLET,\r
1165                                                 'bmlettext'     => _BLOGLIST_BMLET,\r
1166                         );\r
1167                         if ( $current->tadmin == 1 )\r
1168                         {\r
1169                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_BLIST_BD_TADM']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_BLIST_BD_TADM']) )\r
1170                                 {\r
1171                                         $template .= $templates['SHOWLIST_LISTPLUG_TABLE_BLIST_BD_TADM'];\r
1172                                 }\r
1173                                 else\r
1174                                 {\r
1175                                         $template .= "<td><a href=\"index.php?action=blogsettings&amp;blogid=<%blogid%>\" title=\"<%ttsettingtext%>\"><%settingtext%></a></td>\n"\r
1176                                                            . "<td><a href=\"index.php?action=banlist&amp;blogid=<%blogid%>\" title=\"<%ttbanstext%>\"><%banstext%></a></td>\n";\r
1177                                 }\r
1178                                 $data['ttsettingtext'] = _BLOGLIST_TT_SETTINGS;\r
1179                                 $data['settingtext']   = _BLOGLIST_SETTINGS;\r
1180                                 $data['ttbanstext']    = _BLOGLIST_TT_BANS;\r
1181                                 $data['banstext']      = _BLOGLIST_BANS;\r
1182                         }\r
1183                         \r
1184                         if ( $vars['superadmin'] )\r
1185                         {\r
1186                                 if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_BLIST_BD_TADM']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_BLIST_BD_TADM']) )\r
1187                                 {\r
1188                                         $template .= $templates['SHOWLIST_LISTPLUG_TABLE_BLIST_BD_TADM'];\r
1189                                 }\r
1190                                 else\r
1191                                 {\r
1192                                         $template .= "<td><a href=\"index.php?action=deleteblog&amp;blogid=<%blogid%>\" title=\"<%ttdeletetext%>\"></a><%deletetext%></td>\n";\r
1193                                 }\r
1194                                 $data['ttdeletetext'] = _BLOGLIST_TT_DELETE;\r
1195                                 $data['deletetext']   = _BLOGLIST_DELETE;\r
1196                         }\r
1197                         break;\r
1198                 case 'FOOT':\r
1199                         $current = $vars['current'];\r
1200                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_BLOGLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_BLOGLIST_FOOT']) )\r
1201                         {\r
1202                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_BLOGLIST_FOOT'];\r
1203                         }\r
1204                         else\r
1205                         {\r
1206                                 $template = "\n";\r
1207                         }\r
1208                         $data = array();\r
1209                         break;\r
1210         }\r
1211         return Template::fill($template, $data);\r
1212 }\r
1213 \r
1214 function listplug_table_shortblognames($vars, $type, $templateName = '')\r
1215 {\r
1216         $templates = array();\r
1217         if ( !empty($templateName) )\r
1218         {\r
1219                 $templates = Template::read($templateName);\r
1220         }\r
1221         switch( $type )\r
1222         {\r
1223                 case 'HEAD':\r
1224                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_BLOGSNAM_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_BLOGSNAM_HEAD']) )\r
1225                         {\r
1226                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_BLOGSNAM_HEAD'];\r
1227                         }\r
1228                         else\r
1229                         {\r
1230                                 $template = "<th><%colshortname%></th>\n<th><%colblogname%></th>\n";\r
1231                         }\r
1232                         $data = array(\r
1233                                                 'colshortname' => _EBLOG_SHORTNAME,\r
1234                                                 'colblogname'  => _EBLOG_NAME,\r
1235                                         );\r
1236                         break;\r
1237                 case 'BODY':\r
1238                         $current = $vars['current'];\r
1239                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_BLOGSNAM_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_BLOGSNAM_BODY']) )\r
1240                         {\r
1241                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_BLOGSNAM_BODY'];\r
1242                         }\r
1243                         else\r
1244                         {\r
1245                                 $template = "<td><%bshortname%></td>\n<td><%blogname%></td>\n";\r
1246                         }\r
1247                         $data = array(\r
1248                                                 'bshortname' => Entity::hsc($current->bshortname),\r
1249                                                 'blogname'   => Entity::hsc($current->bname),\r
1250                                         );\r
1251                         break;\r
1252                 case 'FOOT':\r
1253                         $current = $vars['current'];\r
1254                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_BLOGSNAM_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_BLOGSNAM_FOOT']) )\r
1255                         {\r
1256                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_BLOGSNAM_FOOT'];\r
1257                         }\r
1258                         else\r
1259                         {\r
1260                                 $template = "\n";\r
1261                         }\r
1262                         $data = array();\r
1263                         break;\r
1264         }\r
1265         return Template::fill($template, $data);\r
1266 }\r
1267 \r
1268 function listplug_table_shortnames($vars, $type, $templateName = '')\r
1269 {\r
1270         $templates = array();\r
1271         if ( !empty($templateName) )\r
1272         {\r
1273                 $templates = Template::read($templateName);\r
1274         }\r
1275         switch( $type )\r
1276         {\r
1277                 case 'HEAD':\r
1278                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_SHORTNAM_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_SHORTNAM_HEAD']) )\r
1279                         {\r
1280                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SHORTNAM_HEAD'];\r
1281                         }\r
1282                         else\r
1283                         {\r
1284                                 $template = "<th><%colname%></th><th><%coldesc%></th>\n";\r
1285                         }\r
1286                         $data = array(\r
1287                                                 'colname' => _NAME,\r
1288                                                 'coldesc' => _LISTS_DESC,\r
1289                                         );\r
1290                         break;\r
1291                 case 'BODY':\r
1292                         $current = $vars['current'];\r
1293                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_SHORTNAM_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_SHORTNAM_BODY']) )\r
1294                         {\r
1295                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SHORTNAM_BODY'];\r
1296                         }\r
1297                         else\r
1298                         {\r
1299                                 $template = "<td><%name%></td><td><%desc%></td>\n";\r
1300                         }\r
1301                         $data = array(\r
1302                                                 'name' => Entity::hsc($current->name),\r
1303                                                 'desc' => Entity::hsc($current->description),\r
1304                                         );\r
1305                         break;\r
1306                 case 'FOOT':\r
1307                         $current = $vars['current'];\r
1308                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_SHORTNAM_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_SHORTNAM_FOOT']) )\r
1309                         {\r
1310                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SHORTNAM_FOOT'];\r
1311                         }\r
1312                         else\r
1313                         {\r
1314                                 $template = "\n";\r
1315                         }\r
1316                         $data = array();\r
1317                         break;\r
1318         }\r
1319         return Template::fill($template, $data);\r
1320 }\r
1321 \r
1322 function listplug_table_categorylist($vars, $type, $templateName = '')\r
1323 {\r
1324         $templates = array();\r
1325         if ( !empty($templateName) )\r
1326         {\r
1327                 $templates = Template::read($templateName);\r
1328         }\r
1329         switch( $type )\r
1330         {\r
1331                 case 'HEAD':\r
1332                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_CATELIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_CATELIST_HEAD']) )\r
1333                         {\r
1334                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_CATELIST_HEAD'];\r
1335                         }\r
1336                         else\r
1337                         {\r
1338                                 $template = "<th><%colname%></th><th><%coldesc%></th><th colspan=\"2\"><%colact%></th>\n";\r
1339                         }\r
1340                         $data = array(\r
1341                                                 'colname' => _LISTS_NAME,\r
1342                                                 'coldesc' => _LISTS_DESC,\r
1343                                                 'colact'  => _LISTS_ACTIONS,\r
1344                                         );\r
1345                         break;\r
1346                 case 'BODY':\r
1347                         $current = $vars['current'];\r
1348                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_CATELIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_CATELIST_BODY']) )\r
1349                         {\r
1350                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_CATELIST_BODY'];\r
1351                         }\r
1352                         else\r
1353                         {\r
1354                                 $template = "<td>\n"\r
1355                                                   . "<input type=\"checkbox\" id=\"batch<%batchid%>\" name=\"batch[<%batchid%>]\" value=\"<%catid%>\" />\n"\r
1356                                                   . "<label for=\"batch<%batchid%>\"><%catname%></label>\n"\r
1357                                                   . "</td>\n"\r
1358                                                   . "<td><%catdesc%></td>\n"\r
1359                                                   . "<td><a href=\"index.php?action=categoryedit&amp;blogid=<%blogid%>&amp;catid=<%catid%>\" tabindex=\"<%tabindex%>\"><%editbtn%></a></td>\n"\r
1360                                                   . "<td><a href=\"index.php?action=categorydelete&amp;blogid=<%blogid%>&amp;catid=<%catid%>\" tabindex=\"<%tabindex%>\"><%delbtn%></a></td>\n";\r
1361                         }\r
1362                         $data = array(\r
1363                                                 'batchid'  => listplug_nextBatchId(),\r
1364                                                 'catid'    => intval($current->catid),\r
1365                                                 'catname'  => Entity::hsc($current->cname),\r
1366                                                 'catdesc'  => Entity::hsc($current->cdesc),\r
1367                                                 'blogid'   => intval($current->catcblogid),\r
1368                                                 'tabindex' => intval($vars['tabindex']),\r
1369                                                 'editbtn'  => _LISTS_EDIT,\r
1370                                                 'delbtn'   => _LISTS_DELETE,\r
1371                                         );\r
1372                         break;\r
1373                 case 'FOOT':\r
1374                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_CATELIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_CATELIST_FOOT']) )\r
1375                         {\r
1376                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_CATELIST_FOOT'];\r
1377                         }\r
1378                         else\r
1379                         {\r
1380                                 $template = "\n";\r
1381                         }\r
1382                         $data = array();\r
1383                         break;\r
1384         }\r
1385         return Template::fill($template, $data);\r
1386 }\r
1387 \r
1388 function listplug_table_templatelist($vars, $type, $templateName = '')\r
1389 {\r
1390         $templates = array();\r
1391         if ( !empty($templateName) )\r
1392         {\r
1393                 $templates = Template::read($templateName);\r
1394         }\r
1395         global $manager;\r
1396         switch( $type )\r
1397         {\r
1398                 case 'HEAD':\r
1399                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_HEAD']) )\r
1400                         {\r
1401                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_HEAD'];\r
1402                         }\r
1403                         else\r
1404                         {\r
1405                                 $template = "<th><%colname%></th><th><%coldesc%></th><th colspan=\"3\"><%colact%></th>\n";\r
1406                         }\r
1407                         $data = array(\r
1408                                                 'colname' => _LISTS_NAME,\r
1409                                                 'coldesc' => _LISTS_DESC,\r
1410                                                 'colact'  => _LISTS_ACTIONS,\r
1411                                         );\r
1412                         break;\r
1413                 case 'BODY':\r
1414                         $current = $vars['current'];\r
1415                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_BODY']) )\r
1416                         {\r
1417                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_BODY'];\r
1418                         }\r
1419                         else\r
1420                         {\r
1421                                 $template = "<td><%templatename%></td>\n"\r
1422                                                   . "<td><%templatedesc%></td>\n"\r
1423                                                   . "<td style=\"white-space:nowrap\">"\r
1424                                                   . "<a href=\"index.php?action=templateedit&amp;templateid=<%templateid%>\" tabindex=\"<%tabindex%>\"><%editbtn%></a>\n"\r
1425                                                   . "</td>\n"\r
1426                                                   . "<td style=\"white-space:nowrap\">\n"\r
1427                                                   . "<a href=\"<%cloneurl%>\" tabindex=\"<%tabindex%>\"><%clonebtn%></a>\n"\r
1428                                                   . "</td>\n"\r
1429                                                   . "<td style=\"white-space:nowrap\">\n"\r
1430                                                   . "<a href=\"index.php?action=templatedelete&amp;templateid=<%templateid%>\" tabindex=\"<%tabindex%>\"><%delbtn%></a>\n"\r
1431                                                   . "</td>\n";\r
1432                         }\r
1433                         $url = "index.php?action=templateclone&templateid={$current->tdnumber}";\r
1434                         $data = array(\r
1435                                                 'templatename' => Entity::hsc($current->tdname),\r
1436                                                 'templatedesc' => Entity::hsc($current->tddesc),\r
1437                                                 'templateid'   => (integer) $current->tdnumber,\r
1438                                                 'tabindex'     => (integer) $vars['tabindex'],\r
1439                                                 'cloneurl'     => Entity::hsc($manager->addTicketToUrl($url)),\r
1440                                                 'editbtn'      => _LISTS_EDIT,\r
1441                                                 'clonebtn'     => _LISTS_CLONE,\r
1442                                                 'delbtn'       => _LISTS_DELETE,\r
1443                         );\r
1444                         break;\r
1445                 case 'FOOT':\r
1446                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_FOOT']) )\r
1447                         {\r
1448                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_FOOT'];\r
1449                         }\r
1450                         else\r
1451                         {\r
1452                                 $template = "\n";\r
1453                         }\r
1454                         $data = array();\r
1455                         break;\r
1456         }\r
1457         return Template::fill($template, $data);\r
1458 }\r
1459 \r
1460 function listplug_table_skinlist($vars, $type, $templateName = '')\r
1461 {\r
1462         $templates = array();\r
1463         if ( !empty($templateName) )\r
1464         {\r
1465                 $templates = Template::read($templateName);\r
1466         }\r
1467         global $CONF, $DIR_SKINS, $manager;\r
1468         switch( $type )\r
1469         {\r
1470                 case 'HEAD':\r
1471                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_HEAD']) )\r
1472                         {\r
1473                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_HEAD'];\r
1474                         }\r
1475                         else\r
1476                         {\r
1477                                 $template = "<th><%colname%></th><th><%coldesc%></th><th colspan=\"3\"><%colact%></th>\n";\r
1478                         }\r
1479                         $data = array(\r
1480                                                 'colname' => _LISTS_NAME,\r
1481                                                 'coldesc' => _LISTS_DESC,\r
1482                                                 'colact'  => _LISTS_ACTIONS,\r
1483                                         );\r
1484                         break;\r
1485                 case 'BODY':\r
1486                         $current = $vars['current'];\r
1487                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_BODY']) )\r
1488                         {\r
1489                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_BODY'];\r
1490                         }\r
1491                         else\r
1492                         {\r
1493                                 $template = "<td><%skinname%><br /><br />\n"\r
1494                                                   . "<%skintypelabel%> <%skintype%><br />\n"\r
1495                                                   . "<%incmodelabel%> <%incmode%><br />\n"\r
1496                                                   . "<%incpreflabel%> <%incpref%><br />\n"\r
1497                                                   . "<%skinthumb%>"\r
1498                                                   . "<%readme%></td>\n"\r
1499                                                   . "<td class=\"availableSkinTypes\"><%skindesc%><%skinparts%></td>\n"\r
1500                                                   . "<td style=\"white-space:nowrap\">"\r
1501                                                   . "<a href=\"index.php?action=skinedit&amp;skinid=<%skinid%>\" tabindex=\"<%tabindex%>\"><%editbtn%>"\r
1502                                                   . "</a></td>\n"\r
1503                                                   . "<td style=\"white-space:nowrap\">"\r
1504                                                   . "<a href=\"<%cloneurl%>\" tabindex=\"<%tabindex%>\"><%clonebtn%>"\r
1505                                                   . "</a></td>\n"\r
1506                                                   . "<td style=\"white-space:nowrap\">"\r
1507                                                   . "<a href=\"index.php?action=skindelete&amp;skinid=<%skinid%>\" tabindex=\"<%tabindex%>\"><%delbtn%>"\r
1508                                                   . "</a></td>\n";\r
1509                         }\r
1510                         $url  = $manager->addTicketToUrl('index.php?action=skinclone&skinid=' . intval($current->sdnumber));\r
1511                         $data = array(\r
1512                                                 'skintypelabel' => _LISTS_TYPE,\r
1513                                                 'skintype'      => Entity::hsc($current->sdtype),\r
1514                                                 'incmodelabel'  => _LIST_SKINS_INCMODE,\r
1515                                                 'incmode'       => ($current->sdincmode == 'skindir') ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL,\r
1516                                                 'incpreflabel'  => ($current->sdincpref) ? _LIST_SKINS_INCMODE : '',\r
1517                                                 'incpref'       => ($current->sdincpref) ? Entity::hsc($current->sdincpref) : '',\r
1518                                                 'skindesc'      => Entity::hsc($current->sddesc),\r
1519                                                 'skinid'        => (integer) $current->sdnumber,\r
1520                                                 'tabindex'      => $vars['tabindex'],\r
1521                                                 'cloneurl'      => Entity::hsc($url),\r
1522                                                 'editbtn'       => _LISTS_EDIT,\r
1523                                                 'clonebtn'      => _LISTS_CLONE,\r
1524                                                 'delbtn'        => _LISTS_DELETE,\r
1525                                         );\r
1526                         // use a special style for the default skin\r
1527                         if ( $current->sdnumber == $CONF['BaseSkin'] )\r
1528                         {\r
1529                                 $data['skinname'] = '<strong>' . Entity::hsc($current->sdname) . '</strong>';\r
1530                         }\r
1531                         else\r
1532                         {\r
1533                                 $data['skinname'] = Entity::hsc($current->sdname);\r
1534                         }\r
1535 \r
1536                         // add preview image when present\r
1537                         if ( $current->sdincpref && @file_exists("{$DIR_SKINS}{$current->sdincpref}preview.png") )\r
1538                         {\r
1539                                 $data['skinthumb'] = "<p>\n";\r
1540 \r
1541                                 $alternatve_text = sprintf(_LIST_SKIN_PREVIEW, $current->sdname);\r
1542                                 $has_enlargement = @file_exists($DIR_SKINS . $current->sdincpref . 'preview-large.png');\r
1543                                 if ( $has_enlargement )\r
1544                                 {\r
1545                                         $data['skinthumb'] .= '<a href="' . $CONF['SkinsURL'] . Entity::hsc($current->sdincpref) . 'preview-large.png" title="' . _LIST_SKIN_PREVIEW_VIEWLARGER . "\">\n";\r
1546                                 }\r
1547                                 $data['skinthumb'] .= '<img class="skinpreview" src="' . $CONF['SkinsURL'] . Entity::hsc($current->sdincpref) . 'preview.png" width="100" height="75" alt="' . $alternatve_text . "\" />\n";\r
1548                                 if ( $has_enlargement )\r
1549                                 {\r
1550                                         $data['skinthumb'] .= "</a><br />\n";\r
1551                                 }\r
1552                                 \r
1553                                 if ( @file_exists("{$DIR_SKINS}{$current->sdincpref}readme.html") )\r
1554                                 {\r
1555                                         $url = $CONF['SkinsURL'] . Entity::hsc($current->sdincpref) . 'readme.html';\r
1556                                         $title = sprintf(_LIST_SKIN_README, $current->sdname);\r
1557                                         $data['readme'] = "<a href=\"{$url}\" title=\"{$title}\">" . _LIST_SKIN_README_TXT . "</a>\n";\r
1558                                 }\r
1559                                 else\r
1560                                 {\r
1561                                         $data['readme'] ="";\r
1562                                 }\r
1563                                 \r
1564                                 $data['skinthumb'] .=  "</p>\n";\r
1565                         }\r
1566                         /* show list of defined parts */\r
1567                         $query = "SELECT stype FROM %s WHERE sdesc=%d ORDER BY stype";\r
1568                         $query = sprintf($query, sql_table('skin'), $current->sdnumber);\r
1569                         $r = sql_query($query);\r
1570                         \r
1571                         $types = array();\r
1572                         while ( $o = sql_fetch_object($r) )\r
1573                         {\r
1574                                 array_push($types, $o->stype);\r
1575                         }\r
1576                         if ( sizeof($types) > 0 )\r
1577                         {\r
1578                                 for ( $i = 0; $i < sizeof($types); $i++ )\r
1579                                 {\r
1580                                         $type = $types[$i];\r
1581                                         if ( !array_key_exists($type, $vars['friendly_names']) || $type == strtolower($vars['friendly_names'][$type]) )\r
1582                                         {\r
1583                                                 $article = 'skinpartspecial';\r
1584                                         }\r
1585                                         else\r
1586                                         {\r
1587                                                 $article = "skinpart{$type}";\r
1588                                         }\r
1589                                         $types[$i]  = "<li>\n"\r
1590                                                                 . helpHtml($article) . "\n"\r
1591                                                     . "<a href=\"index.php?action=skinedittype&amp;skinid={$current->sdnumber}&amp;type={$type}\" tabindex=\"{$vars['tabindex']}\">"\r
1592                                                     . Entity::hsc($vars['friendly_names'][$type])\r
1593                                                     . "</a>\n"\r
1594                                                     . "</li>\n";\r
1595                                 }\r
1596                                 $data['skinparts'] = '<br /><br />' . _LIST_SKINS_DEFINED . "<ul>\n" . implode($types, '') . "</ul>\n";\r
1597                         }\r
1598                         else\r
1599                         {\r
1600                                 $data['skinparts'] = '';\r
1601                         }\r
1602                         break;\r
1603                 case 'FOOT':\r
1604                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT']) )\r
1605                         {\r
1606                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT'];\r
1607                         }\r
1608                         else\r
1609                         {\r
1610                                 $template = "";\r
1611                         }\r
1612                         $data = array();\r
1613                         break;\r
1614         }\r
1615         return Template::fill($template, $data);\r
1616 }\r
1617 \r
1618 function listplug_table_draftlist($vars, $type, $templateName = '')\r
1619 {\r
1620         $templates = array();\r
1621         if ( !empty($templateName) )\r
1622         {\r
1623                 $templates = Template::read($templateName);\r
1624         }\r
1625         switch( $type )\r
1626         {\r
1627                 case 'HEAD':\r
1628                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_HEAD']) )\r
1629                         {\r
1630                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_HEAD'];\r
1631                         }\r
1632                         else\r
1633                         {\r
1634                                 $template = "<th><%colblog%></th><th><%coldesc%></th><th colspan=\"2\"><%colact%></th>\n";\r
1635                         }\r
1636                         $data = array(\r
1637                                                 'colblog' => _LISTS_BLOG,\r
1638                                                 'coldesc' => _LISTS_TITLE,\r
1639                                                 'colact'  => _LISTS_ACTIONS,\r
1640                                         );\r
1641                         break;\r
1642                 case 'BODY':\r
1643                         $current = $vars['current'];\r
1644                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_BODY']) )\r
1645                         {\r
1646                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_BODY'];\r
1647                         }\r
1648                         else\r
1649                         {\r
1650                                 $template = "<td><%bshortname%></td>\n"\r
1651                                                   . "<td><%ititle%></td>\n"\r
1652                                                   . "<td><a href=\"index.php?action=itemedit&amp;itemid=<%itemid%>\"><%editbtn%></a></td>\n"\r
1653                                                   . "<td><a href=\"index.php?action=itemdelete&amp;itemid=<%itemid%>\"><%delbtn%></a></td>\n";\r
1654                         }\r
1655                         $data = array(\r
1656                                                 'bshortname' => Entity::hsc($current->bshortname),\r
1657                                                 'ititle' => Entity::hsc(strip_tags($current->ititle)),\r
1658                                                 'itemid'  => intval($current->inumber),\r
1659                                                 'editbtn' => _LISTS_EDIT,\r
1660                                                 'delbtn'  => _LISTS_DELETE,\r
1661                         );\r
1662                         break;\r
1663                 case 'FOOT':\r
1664                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_FOOT']) )\r
1665                         {\r
1666                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_FOOT'];\r
1667                         }\r
1668                         else\r
1669                         {\r
1670                                 $template = "\n";\r
1671                         }\r
1672                         $data = array();\r
1673                         break;\r
1674         }\r
1675         return Template::fill($template, $data);\r
1676 }\r
1677 \r
1678 function listplug_table_otherdraftlist($vars, $type, $templateName = '')\r
1679 {\r
1680         $templates = array();\r
1681         if ( !empty($templateName) )\r
1682         {\r
1683                 $templates = Template::read($templateName);\r
1684         }\r
1685         switch( $type )\r
1686         {\r
1687                 case 'HEAD':\r
1688                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_HEAD']) )\r
1689                         {\r
1690                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_HEAD'];\r
1691                         }\r
1692                         else\r
1693                         {\r
1694                                 $template = "<th><%colblog%></th><th><%coldesc%></th><th><%colautr%></th><th colspan=\"2\"><%colact%></th>\n";\r
1695                         }\r
1696                         $data = array(\r
1697                                                 'colblog' => _LISTS_BLOG,\r
1698                                                 'coldesc' => _LISTS_TITLE,\r
1699                                                 'colautr' => _LISTS_AUTHOR,\r
1700                                                 'colact'  => _LISTS_ACTIONS,\r
1701                                         );\r
1702                         break;\r
1703                 case 'BODY':\r
1704                         $current = $vars['current'];\r
1705                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_BODY']) )\r
1706                         {\r
1707                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_BODY'];\r
1708                         }\r
1709                         else\r
1710                         {\r
1711                                 $template = "<td><%bshortname%></td>\n"\r
1712                                                   . "<td><%ititle%></td>\n"\r
1713                                                   . "<td><%iauthor%></td>\n"\r
1714                                                   . "<td><a href=\"index.php?action=itemedit&amp;itemid=<%itemid%>\"><%editbtn%></a></td>\n"\r
1715                                                   . "<td><a href=\"index.php?action=itemdelete&amp;itemid=<%itemid%>\"><%delbtn%></a></td>\n";\r
1716                         }\r
1717                         $data = array(\r
1718                                                 'bshortname' => Entity::hsc($current->bshortname),\r
1719                                                 'ititle'     => Entity::hsc(strip_tags($current->ititle)),\r
1720                                                 'iauthor'    => Entity::hsc(strip_tags($current->mname)),\r
1721                                                 'itemid'     => intval($current->inumber),\r
1722                                                 'editbtn'    => _LISTS_EDIT,\r
1723                                                 'delbtn'     => _LISTS_DELETE,\r
1724                         );\r
1725                         break;\r
1726                 case 'FOOT':\r
1727                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_FOOT']) )\r
1728                         {\r
1729                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_FOOT'];\r
1730                         }\r
1731                         else\r
1732                         {\r
1733                                 $template = "\n";\r
1734                         }\r
1735                         $data = array();\r
1736                         break;\r
1737         }\r
1738         return Template::fill($template, $data);\r
1739 }\r
1740 \r
1741 function listplug_table_actionlist($vars, $type, $templateName = '')\r
1742 {\r
1743         $templates = array();\r
1744         if ( !empty($templateName) )\r
1745         {\r
1746                 $templates = Template::read($templateName);\r
1747         }\r
1748         switch( $type )\r
1749         {\r
1750                 case 'HEAD':\r
1751                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_HEAD']) )\r
1752                         {\r
1753                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_HEAD'];\r
1754                         }\r
1755                         else\r
1756                         {\r
1757                                 $template = "<th><%coltime%></th><th><%colmesg%></th>\n";\r
1758                         }\r
1759                         $data = array(\r
1760                                                 'coltime' => _LISTS_TIME,\r
1761                                                 'colmesg' => _LIST_ACTION_MSG,\r
1762                                         );\r
1763                         break;\r
1764                 case 'BODY':\r
1765                         $current = $vars['current'];\r
1766                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_BODY']) )\r
1767                         {\r
1768                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_BODY'];\r
1769                         }\r
1770                         else\r
1771                         {\r
1772                                 $template = "<td><%timestamp%></td><td><%message%></td>\n";\r
1773                         }\r
1774                         $data = array(\r
1775                                                 'timestamp' => Entity::hsc($current->timestamp),\r
1776                                                 'message'   => Entity::hsc($current->message),\r
1777                                         );\r
1778                         break;\r
1779                 case 'FOOT':\r
1780                         $current = $vars['current'];\r
1781                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_FOOT']) )\r
1782                         {\r
1783                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_FOOT'];\r
1784                         }\r
1785                         else\r
1786                         {\r
1787                                 $template = "\n";\r
1788                         }\r
1789                         $data = array();\r
1790                         break;\r
1791         }\r
1792         return Template::fill($template, $data);\r
1793 }\r
1794 \r
1795 function listplug_table_banlist($vars, $type, $templateName = '')\r
1796 {\r
1797         $templates = array();\r
1798         if ( !empty($templateName) )\r
1799         {\r
1800                 $templates = Template::read($templateName);\r
1801         }\r
1802         switch( $type )\r
1803         {\r
1804                 case 'HEAD':\r
1805                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_HEAD']) )\r
1806                         {\r
1807                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_HEAD'];\r
1808                         }\r
1809                         else\r
1810                         {\r
1811                                 $template = "<th><%iprange%></th><th><%reason%></th><th><%colact%></th>\n";\r
1812                         }\r
1813                         $data = array(\r
1814                                                 'iprange' => _LIST_BAN_IPRANGE,\r
1815                                                 'reason'  => _LIST_BAN_REASON,\r
1816                                                 'colact'  => _LISTS_ACTIONS,\r
1817                         );\r
1818                         break;\r
1819                 case 'BODY':\r
1820                         $current = $vars['current'];\r
1821                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_BODY']) )\r
1822                         {\r
1823                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_BODY'];\r
1824                         }\r
1825                         else\r
1826                         {\r
1827                                 $template = "<td><%iprange%></td>\n"\r
1828                                                   . "<td><%reason%></td>\n"\r
1829                                                   . "<td><a href=\"index.php?action=banlistdelete&amp;blogid=<%blogid%>&amp;iprange=<%iprange%>\"><%delbtn%></a></td>\n";\r
1830                         }\r
1831                         $data = array(\r
1832                                                 'iprange' => Entity::hsc($current->iprange),\r
1833                                                 'reason'  => Entity::hsc($current->reason),\r
1834                                                 'blogid'  => intval($current->blogid),\r
1835                                                 'delbtn'  => _LISTS_DELETE,\r
1836                         );\r
1837                         break;\r
1838                 case 'FOOT':\r
1839                         $current = $vars['current'];\r
1840                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_FOOT']) )\r
1841                         {\r
1842                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_FOOT'];\r
1843                         }\r
1844                         else\r
1845                         {\r
1846                                 $template = "\n";\r
1847                         }\r
1848                         $data = array();\r
1849                         break;\r
1850         }\r
1851         return Template::fill($template, $data);\r
1852 }\r
1853 \r
1854 function listplug_table_adminskinlist($vars, $type, $templateName = '')\r
1855 {\r
1856         global $CONF, $DIR_SKINS, $DIR_NUCLEUS, $manager;\r
1857         $adminSkinURL  = $CONF['SkinsURL'] . 'admin/';\r
1858         $adminSkinDir  = $DIR_SKINS . 'admin/';\r
1859         $templates = array();\r
1860         if ( !empty($templateName) )\r
1861         {\r
1862                 $templates = Template::read($templateName);\r
1863         }\r
1864         switch( $type )\r
1865         {\r
1866                 case 'HEAD':\r
1867                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_HEAD']) )\r
1868                         {\r
1869                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_HEAD'];\r
1870                         }\r
1871                         else\r
1872                         {\r
1873                                 $template = "<th><%colname%></th><th><%coldesc%></th><th colspan=\"3\"><%colact%></th>\n";\r
1874                         }\r
1875                         $data = array(\r
1876                                         'colname' => _LISTS_NAME,\r
1877                                         'coldesc' => _LISTS_DESC,\r
1878                                         'colact'  => _LISTS_ACTIONS,\r
1879                         );\r
1880                         break;\r
1881                 case 'BODY':\r
1882                         $current = $vars['current'];\r
1883                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_BODY']) )\r
1884                         {\r
1885                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_BODY'];\r
1886                         }\r
1887                         else\r
1888                         {\r
1889                                 $template = "<td><%skinname%><br /><br />\n"\r
1890                                 . "<%skintypelabel%> <%skintype%><br />\n"\r
1891                                 . "<%incmodelabel%> <%incmode%><br />\n"\r
1892                                 . "<%incpreflabel%> <%incpref%><br />\n"\r
1893                                 . "<%skinthumb%>"\r
1894                                 . "<%readme%></td>\n"\r
1895                                 . "<td class=\"availableSkinTypes\"><%skindesc%><%skinparts%></td>\n"\r
1896                                 . "<td style=\"white-space:nowrap\">"\r
1897                                 . "<a href=\"index.php?action=adminskinedit&amp;skinid=<%skinid%>\" tabindex=\"<%tabindex%>\"><%editbtn%>"\r
1898                                 . "</a></td>\n"\r
1899                                 . "<td style=\"white-space:nowrap\">"\r
1900                                 . "<a href=\"<%cloneurl%>\" tabindex=\"<%tabindex%>\"><%clonebtn%>"\r
1901                                 . "</a></td>\n"\r
1902                                 . "<td style=\"white-space:nowrap\">"\r
1903                                 . "<a href=\"index.php?action=adminskindelete&amp;skinid=<%skinid%>\" tabindex=\"<%tabindex%>\"><%delbtn%>"\r
1904                                 . "</a></td>\n";\r
1905                         }\r
1906                         $url  = $manager->addTicketToUrl('index.php?action=adminskinclone&skinid=' . intval($current->sdnumber));\r
1907                         $data = array(\r
1908                                         'skintypelabel' => _LISTS_TYPE,\r
1909                                         'skintype'      => Entity::hsc($current->sdtype),\r
1910                                         'incmodelabel'  => _LIST_SKINS_INCMODE,\r
1911                                         'incmode'       => ($current->sdincmode == 'skindir') ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL,\r
1912                                         'incpreflabel'  => ($current->sdincpref) ? _LIST_SKINS_INCMODE : '',\r
1913                                         'incpref'       => ($current->sdincpref) ? Entity::hsc($current->sdincpref) : '',\r
1914                                         'skindesc'      => Entity::hsc($current->sddesc),\r
1915                                         'skinid'        => (integer) $current->sdnumber,\r
1916                                         'tabindex'      => $vars['tabindex'],\r
1917                                         'cloneurl'      => Entity::hsc($url),\r
1918                                         'editbtn'       => _LISTS_EDIT,\r
1919                                         'clonebtn'      => _LISTS_CLONE,\r
1920                                         'delbtn'        => _LISTS_DELETE,\r
1921                         );\r
1922                         // use a special style for the default skin\r
1923                         if ( $current->sdnumber == $CONF['DefaultAdminSkin'] )\r
1924                         {\r
1925                                 $data['skinname'] = '<strong>' . Entity::hsc($current->sdname) . '</strong>';\r
1926                         }\r
1927                         else\r
1928                         {\r
1929                                 $data['skinname'] = Entity::hsc($current->sdname);\r
1930                         }\r
1931                         \r
1932                         // add preview image when present\r
1933                         if ( $current->sdincpref && @file_exists("{$adminSkinDir}{$current->sdincpref}preview.png") )\r
1934                         {\r
1935                                 $data['skinthumb'] = "<p>\n";\r
1936                                 \r
1937                                 $alternatve_text = sprintf(_LIST_SKIN_PREVIEW, $current->sdname);\r
1938                                 $has_enlargement = @file_exists($adminSkinDir . $current->sdincpref . 'preview-large.png');\r
1939                                 if ( $has_enlargement )\r
1940                                 {\r
1941                                         $data['skinthumb'] .= '<a href="' . $adminSkinURL . Entity::hsc($current->sdincpref) . 'preview-large.png" title="' . _LIST_SKIN_PREVIEW_VIEWLARGER . "\">\n";\r
1942                                 }\r
1943                                 $data['skinthumb'] .= '<img class="skinpreview" src="' . $adminSkinURL . Entity::hsc($current->sdincpref) . 'preview.png" width="100" height="75" alt="' . $alternatve_text . "\" />\n";\r
1944                                 if ( $has_enlargement )\r
1945                                 {\r
1946                                         $data['skinthumb'] .= "</a><br />\n";\r
1947                                 }\r
1948                                 \r
1949                                 if ( @file_exists("{$DIR_SKINS}{$current->sdincpref}readme.html") )\r
1950                                 {\r
1951                                         $url = $adminSkinURL . Entity::hsc($current->sdincpref) . 'readme.html';\r
1952                                         $title = sprintf(_LIST_SKIN_README, $current->sdname);\r
1953                                         $data['readme'] = "<a href=\"{$url}\" title=\"{$title}\">" . _LIST_SKIN_README_TXT . "</a>\n";\r
1954                                 }\r
1955                                 else\r
1956                                 {\r
1957                                         $data['readme'] ="";\r
1958                                 }\r
1959                                 \r
1960                                 $data['skinthumb'] .=  "</p>\n";\r
1961                         }\r
1962                         /* show list of defined parts */\r
1963                         $query = "SELECT stype FROM %s WHERE sdesc=%d ORDER BY stype";\r
1964                         $query = sprintf($query, sql_table('skin'), $current->sdnumber);\r
1965                         $r = sql_query($query);\r
1966                         \r
1967                         $types = array();\r
1968                         while ( $o = sql_fetch_object($r) )\r
1969                         {\r
1970                                 array_push($types, $o->stype);\r
1971                         }\r
1972                         if ( sizeof($types) > 0 )\r
1973                         {\r
1974                                 for ( $i = 0; $i < sizeof($types); $i++ )\r
1975                                 {\r
1976                                         $type = $types[$i];\r
1977                                         if ( !array_key_exists($type, $vars['friendly_names']) || $type == strtolower($vars['friendly_names'][$type]) )\r
1978                                         {\r
1979                                                 $article = 'skinpartspecial';\r
1980                                         }\r
1981                                         else\r
1982                                         {\r
1983                                                 $article = "skinpart{$type}";\r
1984                                         }\r
1985                                         $types[$i]  = "<li>\n"\r
1986                                                     . helpHtml($article) . "\n"\r
1987                                                     . "<a href=\"index.php?action=adminskinedittype&amp;skinid={$current->sdnumber}&amp;type={$type}\" tabindex=\"{$vars['tabindex']}\">"\r
1988                                                     . Entity::hsc($vars['friendly_names'][$type])\r
1989                                                     . "</a>\n"\r
1990                                                     . "</li>\n";\r
1991                                 }\r
1992                                 $data['skinparts'] = '<br /><br />' . _LIST_SKINS_DEFINED . "<ul>\n" . implode($types, '') . "</ul>\n";\r
1993                         }\r
1994                         else\r
1995                         {\r
1996                                 $data['skinparts'] = '';\r
1997                         }\r
1998                         break;\r
1999                 case 'FOOT':\r
2000                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT']) )\r
2001                         {\r
2002                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT'];\r
2003                         }\r
2004                         else\r
2005                         {\r
2006                                 $template = "";\r
2007                         }\r
2008                         $data = array();\r
2009                         break;\r
2010         }\r
2011         return Template::fill($template, $data);\r
2012 }\r
2013 \r
2014 function listplug_table_admintemplatelist($vars, $type, $templateName = '')\r
2015 {\r
2016         $templates = array();\r
2017         if ( !empty($templateName) )\r
2018         {\r
2019                 $templates = Template::read($templateName);\r
2020         }\r
2021         global $manager;\r
2022         switch( $type )\r
2023         {\r
2024                 case 'HEAD':\r
2025                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_HEAD']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_HEAD']) )\r
2026                         {\r
2027                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_HEAD'];\r
2028                         }\r
2029                         else\r
2030                         {\r
2031                                 $template = "<th><%colname%></th><th><%coldesc%></th><th colspan=\"3\"><%colact%></th>\n";\r
2032                         }\r
2033                         $data = array(\r
2034                                         'colname' => _LISTS_NAME,\r
2035                                         'coldesc' => _LISTS_DESC,\r
2036                                         'colact'  => _LISTS_ACTIONS,\r
2037                         );\r
2038                         break;\r
2039                 case 'BODY':\r
2040                         $current = $vars['current'];\r
2041                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_BODY']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_BODY']) )\r
2042                         {\r
2043                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_BODY'];\r
2044                         }\r
2045                         else\r
2046                         {\r
2047                                 $template = "<td><%templatename%></td>\n"\r
2048                                 . "<td><%templatedesc%></td>\n"\r
2049                                 . "<td style=\"white-space:nowrap\">"\r
2050                                 . "<a href=\"index.php?action=admintemplateedit&amp;templateid=<%templateid%>\" tabindex=\"<%tabindex%>\"><%editbtn%></a>\n"\r
2051                                 . "</td>\n"\r
2052                                 . "<td style=\"white-space:nowrap\">\n"\r
2053                                 . "<a href=\"<%cloneurl%>\" tabindex=\"<%tabindex%>\"><%clonebtn%></a>\n"\r
2054                                 . "</td>\n"\r
2055                                 . "<td style=\"white-space:nowrap\">\n"\r
2056                                 . "<a href=\"index.php?action=admintemplatedelete&amp;templateid=<%templateid%>\" tabindex=\"<%tabindex%>\"><%delbtn%></a>\n"\r
2057                                 . "</td>\n";\r
2058                         }\r
2059                         $url = "index.php?action=admintemplateclone&templateid={$current->tdnumber}";\r
2060                         $data = array(\r
2061                                         'templatename' => Entity::hsc($current->tdname),\r
2062                                         'templatedesc' => Entity::hsc($current->tddesc),\r
2063                                         'templateid'   => (integer) $current->tdnumber,\r
2064                                         'tabindex'     => (integer) $vars['tabindex'],\r
2065                                         'cloneurl'     => Entity::hsc($manager->addTicketToUrl($url)),\r
2066                                         'editbtn'      => _LISTS_EDIT,\r
2067                                         'clonebtn'     => _LISTS_CLONE,\r
2068                                         'delbtn'       => _LISTS_DELETE,\r
2069                         );\r
2070                         break;\r
2071                 case 'FOOT':\r
2072                         if ( isset($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_FOOT']) || !empty($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_FOOT']) )\r
2073                         {\r
2074                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_FOOT'];\r
2075                         }\r
2076                         else\r
2077                         {\r
2078                                 $template = "\n";\r
2079                         }\r
2080                         $data = array();\r
2081                         break;\r
2082         }\r
2083         return Template::fill($template, $data);\r
2084 }\r