OSDN Git Service

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