OSDN Git Service

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