OSDN Git Service

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