OSDN Git Service

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