OSDN Git Service

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