OSDN Git Service

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