OSDN Git Service

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