OSDN Git Service

FIX: プラグインの依存情報のための配列が初期化されていないバグを修正
[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                         $url = "index.php?action=templateclone&templateid={$current->tdnumber}";\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                         $url  = $manager->addTicketToUrl('index.php?action=skinclone&skinid=' . intval($current->sdnumber));\r
1629                         $data = array(\r
1630                                 'skintypelabel' => _LISTS_TYPE,\r
1631                                 'skintype'              => Entity::hsc($current->sdtype),\r
1632                                 'incmodelabel'  => _LIST_SKINS_INCMODE,\r
1633                                 'incmode'               => ($current->sdincmode == 'skindir') ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL,\r
1634                                 'incpreflabel'  => ($current->sdincpref) ? _LIST_SKINS_INCMODE : '',\r
1635                                 'incpref'               => ($current->sdincpref) ? Entity::hsc($current->sdincpref) : '',\r
1636                                 'skindesc'              => Entity::hsc($current->sddesc),\r
1637                                 'skinid'                => (integer) $current->sdnumber,\r
1638                                 'tabindex'              => $vars['tabindex'],\r
1639                                 'cloneurl'              => Entity::hsc($url),\r
1640                                 'editbtn'               => _LISTS_EDIT,\r
1641                                 'clonebtn'              => _LISTS_CLONE,\r
1642                                 'delbtn'                => _LISTS_DELETE,\r
1643                         );\r
1644                         \r
1645                         // use a special style for the default skin\r
1646                         if ( $current->sdnumber != $CONF['BaseSkin'] )\r
1647                         {\r
1648                                 $data['skinname'] = Entity::hsc($current->sdname);\r
1649                         }\r
1650                         else\r
1651                         {\r
1652                                 $data['skinname'] = '<strong>' . Entity::hsc($current->sdname) . '</strong>';\r
1653                         }\r
1654                         \r
1655                         // add preview image when present\r
1656                         if ( $current->sdincpref && @file_exists("{$DIR_SKINS}{$current->sdincpref}preview.png") )\r
1657                         {\r
1658                                 $data['skinthumb'] = "<p>\n";\r
1659                                 \r
1660                                 $alternatve_text = sprintf(_LIST_SKIN_PREVIEW, $current->sdname);\r
1661                                 $has_enlargement = @file_exists($DIR_SKINS . $current->sdincpref . 'preview-large.png');\r
1662                                 if ( $has_enlargement )\r
1663                                 {\r
1664                                         $data['skinthumb'] .= '<a href="' . $CONF['SkinsURL'] . Entity::hsc($current->sdincpref) . 'preview-large.png" title="' . _LIST_SKIN_PREVIEW_VIEWLARGER . "\">\n";\r
1665                                 }\r
1666                                 $data['skinthumb'] .= '<img class="skinpreview" src="' . $CONF['SkinsURL'] . Entity::hsc($current->sdincpref) . 'preview.png" width="100" height="75" alt="' . $alternatve_text . "\" />\n";\r
1667                                 if ( $has_enlargement )\r
1668                                 {\r
1669                                         $data['skinthumb'] .= "</a><br />\n";\r
1670                                 }\r
1671                                 \r
1672                                 if ( @file_exists("{$DIR_SKINS}{$current->sdincpref}readme.html") )\r
1673                                 {\r
1674                                         $url = $CONF['SkinsURL'] . Entity::hsc($current->sdincpref) . 'readme.html';\r
1675                                         $title = sprintf(_LIST_SKIN_README, $current->sdname);\r
1676                                         $data['readme'] = "<a href=\"{$url}\" title=\"{$title}\">" . _LIST_SKIN_README_TXT . "</a>\n";\r
1677                                 }\r
1678                                 else\r
1679                                 {\r
1680                                         $data['readme'] ="";\r
1681                                 }\r
1682                                 \r
1683                                 $data['skinthumb'] .=  "</p>\n";\r
1684                         }\r
1685                         \r
1686                         $skin = new Skin($current->sdnumber);\r
1687                         $available_skin_types = $skin->getAvailableTypes();\r
1688                         \r
1689                         $data['skinparts']  = _LIST_SKINS_DEFINED;\r
1690                         $data['skinparts'] .= "<ul>\n";\r
1691                         foreach ( $available_skin_types as $type => $friendlyName )\r
1692                         {\r
1693                                 if ( $friendlyName === FALSE )\r
1694                                 {\r
1695                                         $friendlyName = ucfirst($type);\r
1696                                         $article = 'skinpartspecial';\r
1697                                 }\r
1698                                 else\r
1699                                 {\r
1700                                         $article = "skinpart{$type}";\r
1701                                 }\r
1702                                 $data['skinparts'] .= "<li>\n"\r
1703                                                    . helpHtml($article) . "\n"\r
1704                                                    . "<a href=\"index.php?action=skinedittype&amp;skinid={$current->sdnumber}&amp;type={$type}\" tabindex=\"{$vars['tabindex']}\">"\r
1705                                                    . Entity::hsc($friendlyName)\r
1706                                                    . "</a>\n"\r
1707                                                    . "</li>\n";\r
1708                         }\r
1709                         $data['skinparts'] .= "</ul>\n";\r
1710                         break;\r
1711                 case 'FOOT':\r
1712                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT']) )\r
1713                         {\r
1714                                 $template = "";\r
1715                         }\r
1716                         else\r
1717                         {\r
1718                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT'];\r
1719                         }\r
1720                         $data = array();\r
1721                         break;\r
1722         }\r
1723         return Template::fill($template, $data);\r
1724 }\r
1725 \r
1726 function listplug_table_draftlist($vars, $type, $templateName = '')\r
1727 {\r
1728         global $manager;\r
1729         \r
1730         $templates = array();\r
1731         if ( !empty($templateName) )\r
1732         {\r
1733                 $templates =& $manager->getTemplate($templateName);\r
1734         }\r
1735         switch( $type )\r
1736         {\r
1737                 case 'HEAD':\r
1738                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_DRFTLIST_HEAD', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_HEAD']) )\r
1739                         {\r
1740                                 $template = "<th><%colblog%></th>\n"\r
1741                                           . "<th><%coldesc%></th>\n"\r
1742                                           . "<th colspan=\"2\"><%colact%></th>\n";\r
1743                         }\r
1744                         else\r
1745                         {\r
1746                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_HEAD'];\r
1747                         }\r
1748                         $data = array(\r
1749                                 'colblog'       => _LISTS_BLOG,\r
1750                                 'coldesc'       => _LISTS_TITLE,\r
1751                                 'colact'        => _LISTS_ACTIONS,\r
1752                         );\r
1753                         break;\r
1754                 case 'BODY':\r
1755                         $current = $vars['current'];\r
1756                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_DRFTLIST_BODY', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_BODY']) )\r
1757                         {\r
1758                                 $template = "<td><%bshortname%></td>\n"\r
1759                                           . "<td><%ititle%></td>\n"\r
1760                                           . "<td><a href=\"index.php?action=itemedit&amp;itemid=<%itemid%>\"><%editbtn%></a></td>\n"\r
1761                                           . "<td><a href=\"index.php?action=itemdelete&amp;itemid=<%itemid%>\"><%delbtn%></a></td>\n";\r
1762                         }\r
1763                         else\r
1764                         {\r
1765                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_BODY'];\r
1766                         }\r
1767                         $data = array(\r
1768                                 'bshortname'    => Entity::hsc($current->bshortname),\r
1769                                 'ititle'                => Entity::hsc(strip_tags($current->ititle)),\r
1770                                 'itemid'                => intval($current->inumber),\r
1771                                 'editbtn'               => _LISTS_EDIT,\r
1772                                 'delbtn'                => _LISTS_DELETE,\r
1773                         );\r
1774                         break;\r
1775                 case 'FOOT':\r
1776                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_DRFTLIST_FOOT', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_FOOT']) )\r
1777                         {\r
1778                                 $template = "\n";\r
1779                         }\r
1780                         else\r
1781                         {\r
1782                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_DRFTLIST_FOOT'];\r
1783                         }\r
1784                         $data = array();\r
1785                         break;\r
1786         }\r
1787         return Template::fill($template, $data);\r
1788 }\r
1789 \r
1790 function listplug_table_otherdraftlist($vars, $type, $templateName = '')\r
1791 {\r
1792         global $manager;\r
1793         \r
1794         $templates = array();\r
1795         if ( !empty($templateName) )\r
1796         {\r
1797                 $templates =& $manager->getTemplate($templateName);\r
1798         }\r
1799         \r
1800         switch( $type )\r
1801         {\r
1802                 case 'HEAD':\r
1803                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_HEAD', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_HEAD']) )\r
1804                         {\r
1805                                 $template = "<th><%colblog%></th>\n"\r
1806                                           . "<th><%coldesc%></th>\n"\r
1807                                           . "<th><%colautr%></th>\n"\r
1808                                           . "<th colspan=\"2\"><%colact%></th>\n";\r
1809                         }\r
1810                         else\r
1811                         {\r
1812                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_HEAD'];\r
1813                         }\r
1814                         $data = array(\r
1815                                 'colblog'       => _LISTS_BLOG,\r
1816                                 'coldesc'       => _LISTS_TITLE,\r
1817                                 'colautr'       => _LISTS_AUTHOR,\r
1818                                 'colact'        => _LISTS_ACTIONS,\r
1819                         );\r
1820                         break;\r
1821                 case 'BODY':\r
1822                         $current = $vars['current'];\r
1823                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_BODY', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_BODY']) )\r
1824                         {\r
1825                                 $template = "<td><%bshortname%></td>\n"\r
1826                                           . "<td><%ititle%></td>\n"\r
1827                                           . "<td><%iauthor%></td>\n"\r
1828                                           . "<td><a href=\"index.php?action=itemedit&amp;itemid=<%itemid%>\"><%editbtn%></a></td>\n"\r
1829                                           . "<td><a href=\"index.php?action=itemdelete&amp;itemid=<%itemid%>\"><%delbtn%></a></td>\n";\r
1830                         }\r
1831                         else\r
1832                         {\r
1833                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_BODY'];\r
1834                         }\r
1835                         $data = array(\r
1836                                 'bshortname'    => Entity::hsc($current->bshortname),\r
1837                                 'ititle'                => Entity::hsc(strip_tags($current->ititle)),\r
1838                                 'iauthor'               => Entity::hsc(strip_tags($current->mname)),\r
1839                                 'itemid'                => intval($current->inumber),\r
1840                                 'editbtn'               => _LISTS_EDIT,\r
1841                                 'delbtn'                => _LISTS_DELETE,\r
1842                         );\r
1843                         break;\r
1844                 case 'FOOT':\r
1845                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_FOOT', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_FOOT']) )\r
1846                         {\r
1847                                 $template = "\n";\r
1848                         }\r
1849                         else\r
1850                         {\r
1851                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ODRFTLIST_FOOT'];\r
1852                         }\r
1853                         $data = array();\r
1854                         break;\r
1855         }\r
1856         return Template::fill($template, $data);\r
1857 }\r
1858 \r
1859 function listplug_table_actionlist($vars, $type, $templateName = '')\r
1860 {\r
1861         global $manager;\r
1862         \r
1863         $templates = array();\r
1864         if ( !empty($templateName) )\r
1865         {\r
1866                 $templates =& $manager->getTemplate($templateName);\r
1867         }\r
1868         \r
1869         switch( $type )\r
1870         {\r
1871                 case 'HEAD':\r
1872                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_ACTNLIST_HEAD', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_HEAD']) )\r
1873                         {\r
1874                                 $template = "<th><%coltime%></th>\n"\r
1875                                           . "<th><%colmesg%></th>\n";\r
1876                         }\r
1877                         else\r
1878                         {\r
1879                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_HEAD'];\r
1880                         }\r
1881                         $data = array(\r
1882                                 'coltime' => _LISTS_TIME,\r
1883                                 'colmesg' => _LIST_ACTION_MSG,\r
1884                         );\r
1885                         break;\r
1886                 case 'BODY':\r
1887                         $current = $vars['current'];\r
1888                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_ACTNLIST_BODY', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_BODY']) )\r
1889                         {\r
1890                                 $template = "<td><%timestamp%></td>\n"\r
1891                                           . "<td><%message%></td>\n";\r
1892                         }\r
1893                         else\r
1894                         {\r
1895                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_BODY'];\r
1896                         }\r
1897                         $data = array(\r
1898                                 'timestamp'     => Entity::hsc($current->timestamp),\r
1899                                 'message'       => Entity::hsc($current->message),\r
1900                         );\r
1901                         break;\r
1902                 case 'FOOT':\r
1903                         $current = $vars['current'];\r
1904                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_ACTNLIST_FOOT', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_FOOT']) )\r
1905                         {\r
1906                                 $template = "\n";\r
1907                         }\r
1908                         else\r
1909                         {\r
1910                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_ACTNLIST_FOOT'];\r
1911                         }\r
1912                         $data = array();\r
1913                         break;\r
1914         }\r
1915         return Template::fill($template, $data);\r
1916 }\r
1917 \r
1918 function listplug_table_banlist($vars, $type, $templateName = '')\r
1919 {\r
1920         global $manager;\r
1921         \r
1922         $templates = array();\r
1923         if ( !empty($templateName) )\r
1924         {\r
1925                 $templates =& $manager->getTemplate($templateName);\r
1926         }\r
1927         \r
1928         switch( $type )\r
1929         {\r
1930                 case 'HEAD':\r
1931                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_IBANLIST_HEAD', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_HEAD']) )\r
1932                         {\r
1933                                 $template = "<th><%iprange%></th>\n"\r
1934                                           . "<th><%reason%></th>\n"\r
1935                                           . "<th><%colact%></th>\n";\r
1936                         }\r
1937                         else\r
1938                         {\r
1939                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_HEAD'];\r
1940                         }\r
1941                         $data = array(\r
1942                                 'iprange'       => _LIST_BAN_IPRANGE,\r
1943                                 'reason'        => _LIST_BAN_REASON,\r
1944                                 'colact'        => _LISTS_ACTIONS,\r
1945                         );\r
1946                         break;\r
1947                 case 'BODY':\r
1948                         $current = $vars['current'];\r
1949                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_IBANLIST_BODY', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_BODY']) )\r
1950                         {\r
1951                                 $template = "<td><%iprange%></td>\n"\r
1952                                           . "<td><%reason%></td>\n"\r
1953                                           . "<td><a href=\"index.php?action=banlistdelete&amp;blogid=<%blogid%>&amp;iprange=<%iprange%>\"><%delbtn%></a></td>\n";\r
1954                         }\r
1955                         else\r
1956                         {\r
1957                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_BODY'];\r
1958                         }\r
1959                         $data = array(\r
1960                                 'iprange'       => Entity::hsc($current->iprange),\r
1961                                 'reason'        => Entity::hsc($current->reason),\r
1962                                 'blogid'        => intval($current->blogid),\r
1963                                 'delbtn'        => _LISTS_DELETE,\r
1964                         );\r
1965                         break;\r
1966                 case 'FOOT':\r
1967                         $current = $vars['current'];\r
1968                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_IBANLIST_FOOT', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_FOOT']) )\r
1969                         {\r
1970                                 $template = "\n";\r
1971                         }\r
1972                         else\r
1973                         {\r
1974                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_IBANLIST_FOOT'];\r
1975                         }\r
1976                         $data = array();\r
1977                         break;\r
1978         }\r
1979         return Template::fill($template, $data);\r
1980 }\r
1981 \r
1982 function listplug_table_adminskinlist($vars, $type, $templateName = '')\r
1983 {\r
1984         global $CONF, $DIR_SKINS, $DIR_NUCLEUS, $manager;\r
1985         \r
1986         $adminSkinURL  = $CONF['SkinsURL'] . 'admin/';\r
1987         $adminSkinDir  = $DIR_SKINS . 'admin/';\r
1988         \r
1989         $templates = array();\r
1990         if ( !empty($templateName) )\r
1991         {\r
1992                 $templates =& $manager->getTemplate($templateName);\r
1993         }\r
1994         switch( $type )\r
1995         {\r
1996                 case 'HEAD':\r
1997                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_SKINLIST_HEAD', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_HEAD']) )\r
1998                         {\r
1999                                 $template = "<th><%colname%></th>\n"\r
2000                                           . "<th><%coldesc%></th>\n"\r
2001                                           . "<th colspan=\"3\"><%colact%></th>\n";\r
2002                         }\r
2003                         else\r
2004                         {\r
2005                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_HEAD'];\r
2006                         }\r
2007                         $data = array(\r
2008                                         'colname'       => _LISTS_NAME,\r
2009                                         'coldesc'       => _LISTS_DESC,\r
2010                                         'colact'        => _LISTS_ACTIONS,\r
2011                         );\r
2012                         break;\r
2013                 case 'BODY':\r
2014                         $current = $vars['current'];\r
2015                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_SKINLIST_BODY', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_BODY']) )\r
2016                         {\r
2017                                 $template = "<td><%skinname%><br /><br />\n"\r
2018                                 . "<%skintypelabel%> <%skintype%><br />\n"\r
2019                                 . "<%incmodelabel%> <%incmode%><br />\n"\r
2020                                 . "<%incpreflabel%> <%incpref%><br />\n"\r
2021                                 . "<%skinthumb%>"\r
2022                                 . "<%readme%></td>\n"\r
2023                                 . "<td class=\"availableSkinTypes\"><%skindesc%><%skinparts%></td>\n"\r
2024                                 . "<td style=\"white-space:nowrap\">"\r
2025                                 . "<a href=\"index.php?action=adminskinedit&amp;skinid=<%skinid%>\" tabindex=\"<%tabindex%>\"><%editbtn%>"\r
2026                                 . "</a></td>\n"\r
2027                                 . "<td style=\"white-space:nowrap\">"\r
2028                                 . "<a href=\"<%cloneurl%>\" tabindex=\"<%tabindex%>\"><%clonebtn%>"\r
2029                                 . "</a></td>\n"\r
2030                                 . "<td style=\"white-space:nowrap\">"\r
2031                                 . "<a href=\"index.php?action=adminskindelete&amp;skinid=<%skinid%>\" tabindex=\"<%tabindex%>\"><%delbtn%>"\r
2032                                 . "</a></td>\n";\r
2033                         }\r
2034                         else\r
2035                         {\r
2036                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_BODY'];\r
2037                         }\r
2038                         \r
2039                         $url  = $manager->addTicketToUrl('index.php?action=adminskinclone&skinid=' . intval($current->sdnumber));\r
2040                         $data = array(\r
2041                                 'skintypelabel' => _LISTS_TYPE,\r
2042                                 'skintype'              => Entity::hsc($current->sdtype),\r
2043                                 'incmodelabel'  => _LIST_SKINS_INCMODE,\r
2044                                 'incmode'               => ($current->sdincmode == 'skindir') ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL,\r
2045                                 'incpreflabel'  => ($current->sdincpref) ? _LIST_SKINS_INCMODE : '',\r
2046                                 'incpref'               => ($current->sdincpref) ? Entity::hsc($current->sdincpref) : '',\r
2047                                 'skindesc'              => Entity::hsc($current->sddesc),\r
2048                                 'skinid'                => (integer) $current->sdnumber,\r
2049                                 'tabindex'              => $vars['tabindex'],\r
2050                                 'cloneurl'              => Entity::hsc($url),\r
2051                                 'editbtn'               => _LISTS_EDIT,\r
2052                                 'clonebtn'              => _LISTS_CLONE,\r
2053                                 'delbtn'                => _LISTS_DELETE,\r
2054                         );\r
2055                         \r
2056                         // use a special style for the default skin\r
2057                         if ( $current->sdnumber != $CONF['AdminSkin'] )\r
2058                         {\r
2059                                 $data['skinname'] = Entity::hsc($current->sdname);\r
2060                         }\r
2061                         else\r
2062                         {\r
2063                                 $data['skinname'] = '<strong>' . Entity::hsc($current->sdname) . '</strong>';\r
2064                         }\r
2065                         \r
2066                         // add preview image when present\r
2067                         if ( $current->sdincpref && @file_exists("{$adminSkinDir}{$current->sdincpref}preview.png") )\r
2068                         {\r
2069                                 $data['skinthumb'] = "<p>\n";\r
2070                                 \r
2071                                 $alternatve_text = sprintf(_LIST_SKIN_PREVIEW, $current->sdname);\r
2072                                 $has_enlargement = @file_exists($adminSkinDir . $current->sdincpref . 'preview-large.png');\r
2073                                 if ( $has_enlargement )\r
2074                                 {\r
2075                                         $data['skinthumb'] .= '<a href="' . $adminSkinURL . Entity::hsc($current->sdincpref) . 'preview-large.png" title="' . _LIST_SKIN_PREVIEW_VIEWLARGER . "\">\n";\r
2076                                 }\r
2077                                 $data['skinthumb'] .= '<img class="skinpreview" src="' . $adminSkinURL . Entity::hsc($current->sdincpref) . 'preview.png" width="100" height="75" alt="' . $alternatve_text . "\" />\n";\r
2078                                 if ( $has_enlargement )\r
2079                                 {\r
2080                                         $data['skinthumb'] .= "</a><br />\n";\r
2081                                 }\r
2082                                 \r
2083                                 if ( @file_exists("{$DIR_SKINS}{$current->sdincpref}readme.html") )\r
2084                                 {\r
2085                                         $url = $adminSkinURL . Entity::hsc($current->sdincpref) . 'readme.html';\r
2086                                         $title = sprintf(_LIST_SKIN_README, $current->sdname);\r
2087                                         $data['readme'] = "<a href=\"{$url}\" title=\"{$title}\">" . _LIST_SKIN_README_TXT . "</a>\n";\r
2088                                 }\r
2089                                 else\r
2090                                 {\r
2091                                         $data['readme'] ="";\r
2092                                 }\r
2093                                 \r
2094                                 $data['skinthumb'] .=  "</p>\n";\r
2095                         }\r
2096                         \r
2097                         $skin = new Skin($current->sdnumber, 'AdminActions');\r
2098                         $available_skin_types = $skin->getAvailableTypes();\r
2099                         \r
2100                         $data['skinparts']  = _LIST_SKINS_DEFINED;\r
2101                         $data['skinparts'] .= "<ul>\n";\r
2102                         foreach ( $available_skin_types as $type => $friendlyName )\r
2103                         {\r
2104                                 if ( $friendlyName === FALSE )\r
2105                                 {\r
2106                                         $friendlyName = ucfirst($type);\r
2107                                         $article = 'skinpartspecial';\r
2108                                 }\r
2109                                 else\r
2110                                 {\r
2111                                         $article = "skinpart{$type}";\r
2112                                 }\r
2113                                 $data['skinparts'] .= "<li>\n"\r
2114                                                    . helpHtml($article) . "\n"\r
2115                                                    . "<a href=\"index.php?action=adminskinedittype&amp;skinid={$current->sdnumber}&amp;type={$type}\" tabindex=\"{$vars['tabindex']}\">"\r
2116                                                    . Entity::hsc($friendlyName)\r
2117                                                    . "</a>\n"\r
2118                                                    . "</li>\n";\r
2119                         }\r
2120                         $data['skinparts'] .= "</ul>\n";\r
2121                         break;\r
2122                 case 'FOOT':\r
2123                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT']) )\r
2124                         {\r
2125                                 $template = "";\r
2126                         }\r
2127                         else\r
2128                         {\r
2129                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_SKINLIST_FOOT'];\r
2130                         }\r
2131                         $data = array();\r
2132                         break;\r
2133         }\r
2134         return Template::fill($template, $data);\r
2135 }\r
2136 \r
2137 function listplug_table_admintemplatelist($vars, $type, $templateName = '')\r
2138 {\r
2139         global $manager, $CONF;\r
2140         \r
2141         $templates = array();\r
2142         if ( !empty($templateName) )\r
2143         {\r
2144                 $templates =& $manager->getTemplate($templateName);\r
2145         }\r
2146         \r
2147         switch( $type )\r
2148         {\r
2149                 case 'HEAD':\r
2150                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_TPLTLIST_HEAD', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_HEAD']) )\r
2151                         {\r
2152                                 $template = "<th><%colname%></th>\n"\r
2153                                           . "<th><%coldesc%></th>\n"\r
2154                                           . "<th colspan=\"3\"><%colact%></th>\n";\r
2155                         }\r
2156                         else\r
2157                         {\r
2158                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_HEAD'];\r
2159                         }\r
2160                         $data = array(\r
2161                                 'colname'       => _LISTS_NAME,\r
2162                                 'coldesc'       => _LISTS_DESC,\r
2163                                 'colact'        => _LISTS_ACTIONS,\r
2164                         );\r
2165                         break;\r
2166                 case 'BODY':\r
2167                         $current = $vars['current'];\r
2168                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_TPLTLIST_BODY', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_BODY']) )\r
2169                         {\r
2170                                 $template = "<td><%templatename%></td>\n"\r
2171                                           . "<td><%templatedesc%></td>\n"\r
2172                                           . "<td style=\"white-space:nowrap\">"\r
2173                                           . "<a href=\"<%editurl%>\" tabindex=\"<%tabindex%>\"><%editbtn%></a>\n"\r
2174                                           . "</td>\n"\r
2175                                           . "<td style=\"white-space:nowrap\">\n"\r
2176                                           . "<a href=\"<%cloneurl%>\" tabindex=\"<%tabindex%>\"><%clonebtn%></a>\n"\r
2177                                           . "</td>\n"\r
2178                                           . "<td style=\"white-space:nowrap\">\n"\r
2179                                           . "<a href=\"<%deleteurl%>\" tabindex=\"<%tabindex%>\"><%delbtn%></a>\n"\r
2180                                           . "</td>\n";\r
2181                         }\r
2182                         else\r
2183                         {\r
2184                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_BODY'];\r
2185                         }\r
2186                         $deleteurl      = $CONF['AdminURL'] . "index.php?action=admintemplatedelete&templateid={$current->tdnumber}";\r
2187                         $editurl        = $CONF['AdminURL'] . "index.php?action=admintemplateedit&templateid={$current->tdnumber}";\r
2188                         $cloneurl       = $CONF['AdminURL'] . "index.php?action=admintemplateclone&templateid={$current->tdnumber}";\r
2189                         $data = array(\r
2190                                 'templatename'  => Entity::hsc($current->tdname),\r
2191                                 'templatedesc'  => Entity::hsc($current->tddesc),\r
2192                                 'templateid'    => (integer) $current->tdnumber,\r
2193                                 'tabindex'              => (integer) $vars['tabindex'],\r
2194                                 'deleteurl'             => Entity::hsc($manager->addTicketToUrl($deleteurl)),\r
2195                                 'editurl'               => Entity::hsc($manager->addTicketToUrl($editurl)),\r
2196                                 'cloneurl'              => Entity::hsc($manager->addTicketToUrl($cloneurl)),\r
2197                                 'editbtn'               => _LISTS_EDIT,\r
2198                                 'clonebtn'              => _LISTS_CLONE,\r
2199                                 'delbtn'                => _LISTS_DELETE,\r
2200                                 'adminflg'              => 'admin',\r
2201                         );\r
2202                         break;\r
2203                 case 'FOOT':\r
2204                         if ( !array_key_exists('SHOWLIST_LISTPLUG_TABLE_TPLTLIST_FOOT', $templates) || empty($templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_FOOT']) )\r
2205                         {\r
2206                                 $template = "\n";\r
2207                         }\r
2208                         else\r
2209                         {\r
2210                                 $template = $templates['SHOWLIST_LISTPLUG_TABLE_TPLTLIST_FOOT'];\r
2211                         }\r
2212                         $data = array();\r
2213                         break;\r
2214         }\r
2215         return Template::fill($template, $data);\r
2216 }\r