OSDN Git Service

追加で、ActionsクラスにskinnableActonsクラスのメソッドの大部分を移植。
authorsakamocchi <o-takashi@sakamocchi.jp>
Thu, 5 Apr 2012 23:53:21 +0000 (08:53 +0900)
committersakamocchi <o-takashi@sakamocchi.jp>
Thu, 5 Apr 2012 23:53:21 +0000 (08:53 +0900)
まだすべて移植し終えてない。

nucleus/libs/ACTIONS.php

index eb83203..f4ea58f 100644 (file)
@@ -3303,4 +3303,1548 @@ class Actions extends BaseActions
                return;\r
        }\r
        \r
-}
\ No newline at end of file
+       /**\r
+        * Actions::parse_commentnavlist()\r
+        * Parse skinvar commentnavlist\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_commentnavlist()\r
+       {\r
+               global $CONF, $manager, $member;\r
+               \r
+               // start index\r
+               if ( postVar('start') )\r
+               {\r
+                       $start = intPostVar('start');\r
+               }\r
+               else\r
+               {\r
+                       $start = 0;\r
+               }\r
+               \r
+               // amount of items to show\r
+               if ( postVar('amount') )\r
+               {\r
+                       $amount = intPostVar('amount');\r
+               }\r
+               else\r
+               {\r
+                       $amount = (integer) $CONF['DefaultListSize'];\r
+                       if ( $amount < 1 )\r
+                       {\r
+                               $amount = 10;\r
+                       }\r
+               }\r
+               $query = 'SELECT cbody, cuser, cmail, cemail, mname, ctime, chost, cnumber, cip, citem '\r
+                      . 'FROM %s '\r
+                      . 'LEFT OUTER JOIN %s ON  mnumber=cmember '\r
+                      . 'WHERE ';\r
+               $query = sprintf($query, sql_table('comment'), sql_table('member'));\r
+               \r
+               if ( $this->skintype == 'itemcommentlist' )\r
+               {\r
+                       $itemid                                 = intRequestVar('itemid');\r
+                       $query                                  .= " citem={$itemid}";\r
+                       $template['canAddBan']  = $member->blogAdminRights(intRequestVar('blogid'));\r
+                       $bid                                    = 0;\r
+                       $nonComments                    = _NOCOMMENTS;\r
+               }\r
+               elseif ( $this->skintype == 'browseowncomments' )\r
+               {\r
+                       $itemid                                 = 0;\r
+                       $query                                  .= ' cmember=' . $member->getID();\r
+                       $template['canAddBan']  = 0;\r
+                       $bid                                    = 0;\r
+                       $nonComments                    = _NOCOMMENTS_YOUR;\r
+               }\r
+               elseif ( $this->skintype == 'blogcommentlist' )\r
+               {\r
+                       $itemid                                 = 0;\r
+                       $query                                  .= ' cblog=' . intRequestVar('blogid');\r
+                       $template['canAddBan']  = $member->blogAdminRights(intRequestVar('blogid'));\r
+                       $bid                                    = intRequestVar('blogid');\r
+                       $nonComments                    = _NOCOMMENTS_BLOG;\r
+               }\r
+               \r
+               $search = postVar('search');\r
+               if ( !empty($search) )\r
+               {\r
+                       $query .= ' and cbody LIKE "%' . sql_real_escape_string($search) . '%"';\r
+               }\r
+               \r
+               $query .= " ORDER BY ctime ASC LIMIT {$start},{$amount}";\r
+               \r
+               $template['content'] = 'commentlist';\r
+               \r
+               $navList = new skinableNAVLIST($this->skintype, $start, $amount, 0, 1000, $bid, $search, $itemid);\r
+               $navList->showBatchList('comment', $query, 'table', $template, $nonComments);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_configsettingsedit()\r
+        * Parse skinvar configsettingsedit\r
+        * \r
+        * @param       string  $type   type of global configuration\r
+        * @return      void\r
+        */\r
+       public function parse_configsettingsedit($type)\r
+       {\r
+               global $CONF;\r
+               switch ( $type )\r
+               {\r
+                       case 'DefaultListSize':\r
+                               if ( !array_key_exists('DefaultListSize', $CONF) )\r
+                               {\r
+                                       $query = "INSERT INTO %s VALUES (DefaultListSize, 10);";\r
+                                       $query = sprintf($query, sql_table('config'));\r
+                                       sql_query($query);\r
+                                       $CONF['DefaultListSize'] = 10;\r
+                               }\r
+                               elseif ( intval($CONF['DefaultListSize']) < 1 )\r
+                               {\r
+                                       $CONF['DefaultListSize'] = 10;\r
+                               }\r
+                               echo intval($CONF['DefaultListSize']);\r
+                               break;\r
+                       case 'SessionCookie':\r
+                               $value = $CONF['SessionCookie'];\r
+                               $txt1  = _SETTINGS_COOKIESESSION;\r
+                               $txt2  = _SETTINGS_COOKIEMONTH;\r
+                               $this->parse_inputyesno('SessionCookie', $value, 10190, 1, 0, $txt1, $txt2);\r
+                               break;\r
+                       case 'URLMode':\r
+                               $value = $CONF['URLMode'];\r
+                               $txt1  = _SETTINGS_URLMODE_NORMAL;\r
+                               $txt2  = _SETTINGS_URLMODE_PATHINFO;\r
+                               $this->parse_inputyesno('URLMode', $value, 10077, 'normal', 'pathinfo', $txt1, $txt2);\r
+                               break;\r
+                       default:\r
+                               if ( array_key_exists($type, $CONF) && is_string($CONF[$type]) )\r
+                               {\r
+                                       echo  Entity::hsc($CONF[$type]);\r
+                               }\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_configsettingsyesno()\r
+        * Parse skinvar configsettingsyesno\r
+        * \r
+        * @param       string  $type           type of global setting\r
+        * @param       integer $tabindex       tabindex attribute of input element\r
+        * @return      void\r
+        */\r
+       function parse_configsettingsyesno($type, $tabindex)\r
+       {\r
+               global $CONF;\r
+               if ( array_key_exists($type, $CONF) )\r
+               {\r
+                       $this->parse_inputyesno($type, $CONF[$type], $tabindex);\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_customhelplink()\r
+        * Parse skinvar customhelplink\r
+        * \r
+        * @param       string  $topic          name of topic\r
+        * @param       string  $tplName        name of template\r
+        * @param       string  $url            string as URI\r
+        * @param       string  $iconURL        string as URI for icon\r
+        * @param       string  $alt            alternative text for image element\r
+        * @param       string  $title          title for anchor element\r
+        * @return      void\r
+        */\r
+       public function parse_customhelplink($topic, $tplName = '', $url = '', $iconURL = '', $alt = '', $title = '', $onclick = '')\r
+       {\r
+               $this->customHelp($topic, $url, $iconURL);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_date()\r
+        * Parse skinvar date\r
+        */\r
+       public function parse_date($format = 'c')\r
+       {\r
+               global $CONF, $manager;\r
+               echo i18n::formatted_datetime($format, time(), 'iso8601', $manager->getBlog((integer) $CONF['DefaultBlog']));\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_defaultadminskintypes()\r
+        * Parse skinvar defaultadminskintypes\r
+        * \r
+        * @param       string  $tabindex               index number for tabindex attribute of input element\r
+        * @param       string  $templateName   name of template\r
+        * @return      void\r
+        */\r
+       public function parse_defaultadminskintypes($tabindex, $templateName = '')\r
+       {\r
+               $templates = array();\r
+               if ( $templateName )\r
+               {\r
+                       $templates = skinableTEMPLATE::read($templateName);\r
+               }\r
+               \r
+               $types   = skinableSKIN::getAdminskinDefaultTypeFriendlyNames();\r
+               ksort($types);\r
+               \r
+               if ( array_key_exists('ADMINSKINTYPELIST_HEAD', $templates) && !empty($templates['ADMINSKINTYPELIST_HEAD']) )\r
+               {\r
+                       $template['head'] = $templates['ADMINSKINTYPELIST_HEAD'];\r
+               }\r
+               else\r
+               {\r
+                       $template['head'] = "<ul>\n";\r
+               }\r
+               \r
+               echo $template['head'];\r
+               \r
+               if ( array_key_exists('ADMINSKINTYPELIST_BODY', $templates) && !empty($templates['ADMINSKINTYPELIST_BODY']) )\r
+               {\r
+                       $template['body'] = $templates['ADMINSKINTYPELIST_BODY'];\r
+               }\r
+               else\r
+               {\r
+                       $template['body'] = '<li><a tabindex="<%tabindex%>" href="index.php?action=adminskinedittype&amp;skinid=<%skinid%>&amp;type=<%skintype%>">'\r
+                                         . "<%name%></a> <%help%></li>\n";\r
+               }\r
+               $handler = new skinableACTIONS('template', $template, new ADMIN);\r
+               $parser  = new PARSER(skinableACTIONS::getDefinedActions(), $handler);\r
+               \r
+               foreach ( $types as $type => $fName )\r
+               {\r
+                       $helplink = $this->customHelpHtml('skinpart' . $type, $templateName);\r
+                       $data = array(\r
+                               'tabindex'      => $tabindex,\r
+                               'skintype'      => $type,\r
+                               'name'          => $fName,\r
+                               'help'          => $helplink,\r
+                               'skinid'        => intrequestVar('skinid'),\r
+                       );\r
+                       $templateBody = skinableTEMPLATE::fill($template['body'], $data);\r
+                       $parser->parse($templateBody);\r
+                       $tabindex++;\r
+               }\r
+               if ( array_key_exists('ADMINSKINTYPELIST_FOOT', $templates) && !empty($templates['ADMINSKINTYPELIST_FOOT']) )\r
+               {\r
+                       $template['foot'] = $templates['ADMINSKINTYPELIST_FOOT'];\r
+               }\r
+               else\r
+               {\r
+                       $template['foot'] = "           </ul>\n";\r
+               }\r
+               echo $template['foot'];\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_defblogselect()\r
+        * Parse skinvar defblogselect\r
+        * \r
+        * @param       string  $templateName   name of template\r
+        * @return      void\r
+        */\r
+       public function parse_defblogselect($templateName = '')\r
+       {\r
+               global $CONF;\r
+               $query  = "SELECT bname as text, bnumber as value FROM %s;";\r
+               $query = sprintf($query, sql_table('blog'));\r
+               $template['name']        = 'DefaultBlog';\r
+               $template['selected'] = $CONF['DefaultBlog'];\r
+               $template['tabindex'] = 10;\r
+               skinableShowlist($query, 'select', $template, $templateName);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_defcatselect()\r
+        * Parse skinvar defcatselect\r
+        * \r
+        * @param       string  $templateName   name of template\r
+        * @return      void\r
+        */\r
+       public function parse_defcatselect($templateName = '')\r
+       {\r
+               global $manager;\r
+               $blogid = intRequestVar('blogid');\r
+               $blog   = $manager->getBlog($blogid);\r
+               $query  = "SELECT cname as text, catid as value FROM %s WHERE cblog=%d;";\r
+               $query = sprintf($query, sql_table('category'), (integer) $blog->getID());\r
+               $template['name']        = 'defcat';\r
+               $template['selected'] = $blog->getDefaultCategory();\r
+               $template['tabindex'] = 110;\r
+               skinableShowlist($query, 'select', $template, $templateName);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_defskinselect()\r
+        * Parse skinvar defskinselect\r
+        * \r
+        * @param       string  $type                   type of skin\r
+        * @param       string  $templateName   name of template\r
+        * @return      void\r
+        */\r
+       public function parse_defskinselect($type = 'blog', $templateName = '')\r
+       {\r
+               global $manager;\r
+               $query  = "SELECT sdname as text, sdnumber as value FROM %s;";\r
+               $query = sprintf($query, sql_table('skin_desc'));\r
+               \r
+               $blogid = intRequestVar('blogid');\r
+               \r
+               if ( !$blogid )\r
+               {\r
+                       global $CONF;\r
+                       $template['selected'] = $CONF['BaseSkin'];\r
+               }\r
+               else\r
+               {\r
+                       $blog                            = $manager->getBlog($blogid);\r
+                       $template['selected'] = $blog->getDefaultSkin();\r
+               }\r
+               \r
+               if ( $type != 'blog' )\r
+               {\r
+                       $nname = 'BaseSkin';\r
+               }\r
+               else\r
+               {\r
+                       $nname = 'defskin';\r
+               }\r
+               \r
+               $template['name']        = $nname;\r
+               $template['tabindex'] = 50;\r
+               skinableShowlist($query, 'select', $template, $templateName);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_deleteitembody()\r
+        * Parse skinvar deleteitembody\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_deleteitembody()\r
+       {\r
+               global $manager;\r
+               $itemid =  intRequestVar('itemid');\r
+               $item   =& $manager->getItem($itemid, 1, 1);\r
+               $body   =  strip_tags($item['body']);\r
+               echo Entity::hsc(shorten($body, 300, '...'));\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_deleteitemid()\r
+        * Parse skinvar deleteitemid\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_deleteitemid()\r
+       {\r
+               echo (integer) intRequestVar('itemid');\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_deleteitemtitle()\r
+        * Parse skinvar deleteitemtitle\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_deleteitemtitle()\r
+       {\r
+               global $manager;\r
+               $itemid = intRequestVar('itemid');\r
+               $item  =& $manager->getItem($itemid, 1, 1);\r
+               echo Entity::hsc(strip_tags($item['title']));\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_editadminskin()\r
+        * Parse skinvar editadminskin\r
+        * \r
+        * @param       string  $type   type of skin setting\r
+        * @return      void\r
+        */\r
+       public function parse_editadminskin($type = 'id')\r
+       {\r
+               $skinid = intRequestVar('skinid');\r
+               $skin   = new skinableSKIN($skinid);\r
+               switch ( $type )\r
+               {\r
+                       case 'id':\r
+                               echo intRequestVar('skinid');\r
+                               break;\r
+                       case 'name':\r
+                               echo Entity::hsc($skin->getName());\r
+                               break;\r
+                       case 'desc':\r
+                               echo Entity::hsc($skin->getDescription());\r
+                               break;\r
+                       case 'type':\r
+                               echo Entity::hsc($skin->getContentType());\r
+                               break;\r
+                       case 'prefix':\r
+                               echo Entity::hsc($skin->getIncludePrefix());\r
+                               break;\r
+                       case 'mode':\r
+                               $this->parse_inputyesno('inc_mode', $skin->getIncludeMode(), 120, 'skindir', 'normal', _PARSER_INCMODE_SKINDIR, _PARSER_INCMODE_NORMAL);\r
+                       default:\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_editadminskintype()\r
+        * Parse skinvar editadminskintype\r
+        * \r
+        * @param       string  $type   name of skin type\r
+        * @return      void\r
+        */\r
+       public function parse_editadminskintype($type = 'id')\r
+       {\r
+               global $CONF, $manager, $member;\r
+               $skinid = intRequestVar('skinid');\r
+               $skin   = new skinableSKIN($skinid);\r
+               $fNames = skinableSKIN::getFriendlyNames();\r
+               $sType  = strtolower(trim(requestVar('type')));\r
+               \r
+               switch ( $type )\r
+               {\r
+                       case 'id':\r
+                               echo intRequestVar('skinid');\r
+                               break;\r
+                       case 'name':\r
+                               echo Entity::hsc($skin->getName());\r
+                               break;\r
+                       case 'desc':\r
+                               echo Entity::hsc($skin->getDescription());\r
+                               break;\r
+                       case 'type':\r
+                               echo Entity::hsc($skin->getContentType());\r
+                               break;\r
+                       case 'content':\r
+                               echo Entity::hsc($skin->getContent($sType));\r
+                               break;\r
+                       case 'skintype':\r
+                               $skinType = isset($fNames[$sType]) ? $fNames[$sType] : ucfirst($sType);\r
+                               echo Entity::hsc($skinType);\r
+                               break;\r
+                       case 'skintyperaw':\r
+                               echo Entity::hsc($sType);\r
+                               break;\r
+                       case 'prefix':\r
+                               echo Entity::hsc($skin->getIncludePrefix());\r
+                               break;\r
+                       case 'mode':\r
+                               $incMode = $skin->getIncludeMode() ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL;\r
+                               echo Entity::hsc($incMode);\r
+                               break;\r
+                       default:\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_editadmintemplateinfo()\r
+        * Parse skinvar editadmintemplateinfo\r
+        * \r
+        * @param       string  $type                   type of skin template\r
+        * @param       string  $description    description of template\r
+        * @param       string  $name                   name of stemplate\r
+        * @param       string  $tabindex               index number for tabindex attribute of input element\r
+        * @param       string  $big                    \r
+        * @param       string  $tplt                   \r
+        */\r
+       function parse_editadmintemplateinfo($type, $description = '', $name = '', $help = '', $tabindex = 0, $big = 0, $tplt = '')\r
+       {\r
+               global $manager;\r
+               $templateid                             =  intRequestVar('templateid');\r
+               $templatename                   =  skinableTEMPLATE::getNameFromId($templateid);\r
+               $templatedescription    =  skinableTEMPLATE::getDesc($templateid);\r
+               $template                               =& skinableTEMPLATE::read($templatename);\r
+               switch ( $type )\r
+               {\r
+                       case 'id':\r
+                               echo intval($templateid);\r
+                               break;\r
+                       case 'name':\r
+                               echo Entity::hsc($templatename);\r
+                               break;\r
+                       case 'desc':\r
+                               echo Entity::hsc($templatedescription);\r
+                               break;\r
+                       case 'extratemplate':\r
+                               $tabidx    = 600;\r
+                               $pluginfields = array();\r
+                               $manager->notify(\r
+                                       'AdminTemplateExtraFields',\r
+                                       array(\r
+                                               'fields' => &$pluginfields\r
+                                       )\r
+                               );\r
+                               $tmplt = array();\r
+                               if ( $description )\r
+                               {\r
+                                       $tmplt = skinableTEMPLATE::read($description);\r
+                               }\r
+                               if ( array_key_exists('TEMPLATE_EDIT_EXPLUGNAME', $tmplt) && !empty($tmplt['TEMPLATE_EDIT_EXPLUGNAME']) )\r
+                               {\r
+                                       $base = $tmplt['TEMPLATE_EDIT_EXPLUGNAME'];\r
+                               }\r
+                               else\r
+                               {\r
+                                       $base = "</tr>\n"\r
+                                             . "<tr>\n"\r
+                                             . "\t" . '<th colspan="2"><%explugtplname%>' . "</th>\n";\r
+                               }\r
+                               foreach ( $pluginfields as $pfkey => $pfvalue )\r
+                               {\r
+                                       $data = array(\r
+                                               'explugtplname' => Entity::hsc($pfkey)\r
+                                       );\r
+                                       echo TEMPLATE::fill($base, $data);\r
+                                       foreach ( $pfvalue as $pffield => $pfdesc )\r
+                                       {\r
+                                               $this->_templateEditRow($template, $pfdesc, $pffield, '', ++$tabidx, 0, $name);\r
+                                       }\r
+                               }\r
+                               break;\r
+                       default:\r
+                               $desc = defined($description) ? constant($description) : $description;\r
+                               $name = defined($name) ? constant($name) : $name;\r
+                               $this->_templateEditRow($template, $desc, $name, $help, $tabindex, $big, $tplt);\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_editcomment()\r
+        * Parse skinvar editcomment\r
+        * \r
+        * @param       string  $type   type of comment setting\r
+        * @return      void\r
+        */\r
+       public function parse_editcomment($type = 'id')\r
+       {\r
+               global $manager;\r
+               $commentid      = intRequestVar('commentid');\r
+               $comment        = COMMENT::getComment($commentid);\r
+               \r
+               $manager->notify('PrepareCommentForEdit', array('comment' => &$comment));\r
+               \r
+               switch ( $type )\r
+               {\r
+                       case 'id':\r
+                               echo intRequestVar('commentid');\r
+                               break;\r
+                       case 'user':\r
+                               if (array_key_exists('member', $comment) && !empty($comment['member']) )\r
+                               {\r
+                                       echo $comment['member'] . " (" . _EDITC_MEMBER . ")";\r
+                               }\r
+                               else\r
+                               {\r
+                                       echo $comment['user'] . " (" . _EDITC_NONMEMBER . ")";\r
+                               }\r
+                               break;\r
+                       case 'date':\r
+                               echo date("Y-m-d @ H:i", $comment['timestamp']);\r
+                               break;\r
+                       case 'body':\r
+                               $comment['body'] = str_replace('<br />', '', $comment['body']);\r
+                               $comment['body'] = preg_replace("#<a href=['\"]([^'\"]+)['\"]( rel=\"nofollow\")?>[^<]*</a>#", "\\1", $comment['body']);\r
+                               echo $comment['body'];\r
+                       default:\r
+                               echo $comment[$type];\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_editdesturl()\r
+        * Parse skinvar editdesturl\r
+        */\r
+       public function parse_editdesturl()\r
+       {\r
+               if ( requestVar('desturl') )\r
+               {\r
+                       echo Entity::hsc(requestVar('desturl'));\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_editmemberlist()\r
+        * Parse skinvar editmemberlist\r
+        * \r
+        * @param       string  $templateName   name of template\r
+        * @return      void\r
+        */\r
+       public function parse_editmemberlist($templateName = '')\r
+       {\r
+               global $manager;\r
+               // show list of members with actions\r
+               $query =  'SELECT * FROM '.sql_table('member');\r
+               $template['content']  = 'memberlist';\r
+               $template['tabindex'] = 10;\r
+               \r
+               $batch = new skinableBATCH('member');\r
+               $batch->showlist($query, 'table', $template, _LISTS_NOMORE, $templateName);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_editmemberlist()\r
+        * Parse skinvar editmemberlist\r
+        * \r
+        * @param       string  $templateName   name of template\r
+        * @return      void\r
+        */\r
+       public function parse_editmemberlist($templateName = '')\r
+       {\r
+               global $manager;\r
+               // show list of members with actions\r
+               $query =  'SELECT * FROM '. sql_table('member');\r
+               $template['content']  = 'memberlist';\r
+               $template['tabindex'] = 10;\r
+               \r
+               $batch = new skinableBATCH('member');\r
+               $batch->showlist($query, 'table', $template, _LISTS_NOMORE, $templateName);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_editpluginfo()\r
+        * Parse skinvar editpluginfo\r
+        * \r
+        * @param       string  $type   type of plugin info\r
+        * @return      void\r
+        */\r
+       public function parse_editpluginfo($type)\r
+       {\r
+               $pid = intRequestVar('plugid');\r
+               switch ( $type )\r
+               {\r
+                       case 'id':\r
+                               echo $pid;\r
+                               break;\r
+                       case 'name':\r
+                               echo Entity::hsc(getPluginNameFromPid($pid));\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_editplugoptionslist()\r
+        * Parse skinvar editplugoptionslist\r
+        * \r
+        * @param       string  $templateName   name of template\r
+        * @return      void\r
+        */\r
+       public function parse_editplugoptionslist($templateName = '')\r
+       {\r
+               global $manager;\r
+               \r
+               $pid = intRequestVar('plugid');\r
+               $aOptions = array();\r
+               $aOIDs  = array();\r
+               \r
+               $query  = "SELECT * FROM %s WHERE ocontext='global' AND opid=%d ORDER BY oid ASC";\r
+               $query = sprintf($query, sql_table('plugin_option_desc'), (integer) $pid);\r
+               $resource = sql_query($query);\r
+               \r
+               while ( $o = sql_fetch_object($resource) )\r
+               {\r
+                       array_push($aOIDs, $o->oid);\r
+                       $aOptions[$o->oid] = array(\r
+                               \r
+                               'oid'                   => $o->oid,\r
+                               'value'                 => $o->odef,\r
+                               'name'                  => $o->oname,\r
+                               'description'   => $o->odesc,\r
+                               'type'                  => $o->otype,\r
+                               'typeinfo'              => $o->oextra,\r
+                               'contextid'             => 0\r
+                       );\r
+               }\r
+               \r
+               // fill out actual values\r
+               if ( count($aOIDs) > 0 )\r
+               {\r
+                       $query = 'SELECT oid, ovalue FROM %s WHERE oid in (%s)';\r
+                       $query = sprintf($query, sql_table('plugin_option'), implode(',', $aOIDs));\r
+                       \r
+                       $result = sql_query($query);\r
+                       \r
+                       while ( $o = sql_fetch_object($result) )\r
+                       {\r
+                               $aOptions[$o->oid]['value'] = $o->ovalue;\r
+                       }\r
+               }\r
+               \r
+               // call plugins\r
+               $manager->notify(\r
+                       'PrePluginOptionsEdit',\r
+                       array(\r
+                               'context'       =>  'global',\r
+                               'plugid'        =>  $pid,\r
+                               'options'       => &$aOptions\r
+                       )\r
+               );\r
+               \r
+               $template['content'] = 'plugoptionlist';\r
+               $amount                   = skinableShowlist($aOptions, 'table', $template, $templateName);\r
+               if ( $amount == 0 )\r
+               {\r
+                       echo '<p>' . _ERROR_NOPLUGOPTIONS . "</p>\n";\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_editskin()\r
+        * Parse skinvar editskin\r
+        * \r
+        * @param       string  $type   type of skin\r
+        * @return      void\r
+        */\r
+       public function parse_editskin($type = 'id')\r
+       {\r
+               $skinid = intRequestVar('skinid');\r
+               $skin   = new SKIN($skinid);\r
+               switch ( $type )\r
+               {\r
+                       case 'id':\r
+                               echo intRequestVar('skinid');\r
+                               break;\r
+                       case 'name':\r
+                               echo Entity::hsc($skin->getName());\r
+                               break;\r
+                       case 'desc':\r
+                               echo Entity::hsc($skin->getDescription());\r
+                               break;\r
+                       case 'type':\r
+                               echo Entity::hsc($skin->getContentType());\r
+                               break;\r
+                       case 'prefix':\r
+                               echo Entity::hsc($skin->getIncludePrefix());\r
+                               break;\r
+                       case 'mode':\r
+                               $this->parse_inputyesno('inc_mode', $skin->getIncludeMode(), 120, 'skindir', 'normal', _PARSER_INCMODE_SKINDIR, _PARSER_INCMODE_NORMAL);\r
+                       default:\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_editskintype()\r
+        * Parse skinvar editskintype\r
+        * \r
+        * @param       string  $type   name of type for skin type\r
+        * @return      void\r
+        */\r
+       function parse_editskintype($type = 'id')\r
+       {\r
+               global $CONF, $manager, $member;\r
+               $skinid = intRequestVar('skinid');\r
+               $skin   = new SKIN($skinid);\r
+               $fNames = SKIN::getFriendlyNames();\r
+               $sType  = strtolower(trim(requestVar('type')));\r
+               \r
+               switch ( $type )\r
+               {\r
+                       case 'id':\r
+                               echo intRequestVar('skinid');\r
+                               break;\r
+                       case 'name':\r
+                               echo Entity::hsc($skin->getName());\r
+                               break;\r
+                       case 'desc':\r
+                               echo Entity::hsc($skin->getDescription());\r
+                               break;\r
+                       case 'type':\r
+                               echo Entity::hsc($skin->getContentType());\r
+                               break;\r
+                       case 'content':\r
+                               echo Entity::hsc($skin->getContent($sType));\r
+                               break;\r
+                       case 'skintype':\r
+                               $skinType = isset($fNames[$sType]) ? $fNames[$sType] : ucfirst($sType);\r
+                               echo Entity::hsc($skinType);\r
+                               break;\r
+                       case 'skintyperaw':\r
+                               echo Entity::hsc($sType);\r
+                               break;\r
+                       case 'prefix':\r
+                               echo Entity::hsc($skin->getIncludePrefix());\r
+                               break;\r
+                       case 'mode':\r
+                               $incMode = $skin->getIncludeMode() ? _PARSER_INCMODE_SKINDIR : _PARSER_INCMODE_NORMAL;\r
+                               echo Entity::hsc($incMode);\r
+                               break;\r
+                       default:\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_edittemplateinfo()\r
+        * Parse skinvar edittemplateinfo\r
+        * \r
+        * @param       string  $type                   name of type for skin\r
+        * @param       string  $description    description for skin\r
+        * @param       string  $name                   name of skin\r
+        * @param       string  $help                   \r
+        * @param       string  $tabindex               index value for tabindex attribute of input element\r
+        * @param       string  $big                    \r
+        * @param       string  $tplt                   name of template\r
+        */\r
+       public function parse_edittemplateinfo($type, $description = '', $name = '', $help = '', $tabindex = 0, $big = 0, $tplt = '')\r
+       {\r
+               global $manager;\r
+               $templateid                             =  intRequestVar('templateid');\r
+               $templatename                   =  TEMPLATE::getNameFromId($templateid);\r
+               $templatedescription    =  TEMPLATE::getDesc($templateid);\r
+               $template                               =& $manager->getTemplate($templatename);\r
+               switch ( $type )\r
+               {\r
+                       case 'id':\r
+                               echo intval($templateid);\r
+                               break;\r
+                       case 'name':\r
+                               echo Entity::hsc($templatename);\r
+                               break;\r
+                       case 'desc':\r
+                               echo Entity::hsc($templatedescription);\r
+                               break;\r
+                       case 'extratemplate':\r
+                               $tabidx    = 600;\r
+                               $pluginfields = array();\r
+                               $manager->notify(\r
+                                       'TemplateExtraFields',\r
+                                       array(\r
+                                               'fields' => &$pluginfields\r
+                                       )\r
+                               );\r
+                               $tmplt = array();\r
+                               if ( $description )\r
+                               {\r
+                                       $tmplt = skinableTEMPLATE::read($description);\r
+                               }\r
+                               if ( array_key_exists('TEMPLATE_EDIT_EXPLUGNAME', $tmplt) && !empty($tmplt['TEMPLATE_EDIT_EXPLUGNAME']) )\r
+                               {\r
+                                       $base = $tmplt['TEMPLATE_EDIT_EXPLUGNAME'];\r
+                               }\r
+                               else\r
+                               {\r
+                                       $base = "</tr><tr>\n"\r
+                                                 . "\t" . '<th colspan="2"><%explugtplname%>' . "</th>\n";\r
+                               }\r
+                               foreach ( $pluginfields as $pfkey => $pfvalue )\r
+                               {\r
+                                       $data = array(\r
+                                               'explugtplname' => Entity::hsc($pfkey)\r
+                                       );\r
+                                       echo TEMPLATE::fill($base, $data);\r
+                                       foreach ( $pfvalue as $pffield => $pfdesc )\r
+                                       {\r
+                                               $this->_templateEditRow($template, $pfdesc, $pffield, '', ++$tabidx, 0, $name);\r
+                                       }\r
+                               }\r
+                               break;\r
+                       default:\r
+                               $desc = defined($description) ? constant($description) : $description;\r
+                               $name = defined($name) ? constant($name) : $name;\r
+                               $this->_templateEditRow($template, $desc, $name, $help, $tabindex, $big, $tplt);\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_eventformextra()\r
+        * Parse skinvar eventformextra\r
+        * \r
+        * @param       string  $type   name of type for event form extra\r
+        * @return      void\r
+        */\r
+       public function parse_eventformextra($type = 'activation')\r
+       {\r
+               global $manager;\r
+               switch ( $type )\r
+               {\r
+                       case 'activation':\r
+                               $key = requestVar('ackey');\r
+                               if ( !$key )\r
+                               {\r
+                                       $this->objAdmin->error(_ERROR_ACTIVATE);\r
+                               }\r
+                               $info = MEMBER::getActivationInfo($key);\r
+                               if ( !$info )\r
+                               {\r
+                                       $this->objAdmin->error(_ERROR_ACTIVATE);\r
+                               }\r
+                               $mem  = MEMBER::createFromId($info->vmember);\r
+                               if ( !$mem )\r
+                               {\r
+                                       $this->objAdmin->error(_ERROR_ACTIVATE);\r
+                               }\r
+                               $data = array(\r
+                                       'type'   => 'activation',\r
+                                       'member' => $mem\r
+                               );\r
+                               break;\r
+                       case 'membermailform-notloggedin':\r
+                               $data = array(\r
+                                       'type' => 'membermailform-notloggedin',\r
+                               );\r
+                               break;\r
+               }\r
+               $manager->notify('FormExtra', $data);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_extrahead()\r
+        * Parse skinvar extrahead\r
+        */\r
+       public function parse_extrahead()\r
+       {\r
+               global $manager;\r
+               $extrahead = $this->objAdmin->extrahead;\r
+               $manager->notify(\r
+                       'AdminPrePageHead',\r
+                       array(\r
+                               'extrahead'     => &$extrahead,\r
+                               'action'        => $this->objAdmin->action\r
+                       )\r
+               );\r
+               echo $extrahead;\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_blogsetting()\r
+        * Parse skinvar blogsetting\r
+        * \r
+        * @param       string  $which  name of setting for blog\r
+        * @return      void\r
+        */\r
+       public function parse_blogsetting($which)\r
+       {\r
+               echo $this->parse_getblogsetting($which);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_category()\r
+        * Parse skinvar category\r
+        * \r
+        * @param       string  $type   name of setting for category\r
+        * @return      void\r
+        */\r
+       public function parse_category($type = 'name')\r
+       {\r
+               echo $this->parse_getcategory($type);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_geteditpluginfo()\r
+        * Parse skinvar geteditpluginfo\r
+        * \r
+        * @param       string  $type   name of setting for edit plugin info\r
+        * @return      void\r
+        */\r
+       public function parse_geteditpluginfo($type)\r
+       {\r
+               $pid = intRequestVar('plugid');\r
+               switch ( $type )\r
+               {\r
+                       case 'id':\r
+                               return $pid;\r
+                               break;\r
+                       case 'name':\r
+                               return Entity::hsc(getPluginNameFromPid($pid));\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_getmember()\r
+        * Parse skinvar getmember\r
+        * (includes a member info thingie)\r
+        * \r
+        * @param       string  $what   name of setting for member\r
+        * @return      void\r
+        */\r
+       public function parse_getmember($what)\r
+       {\r
+               global $memberinfo, $member;\r
+               // 1. only allow the member-details-page specific variables on member pages\r
+               if ( $this->skintype == 'member' )\r
+               {\r
+                       switch ( $what )\r
+                       {\r
+                               case 'name':\r
+                                       return Entity::hsc($memberinfo->getDisplayName());\r
+                                       break;\r
+                               case 'realname':\r
+                                       return Entity::hsc($memberinfo->getRealName());\r
+                                       break;\r
+                               case 'notes':\r
+                                       return Entity::hsc($memberinfo->getNotes());\r
+                                       break;\r
+                               case 'url':\r
+                                       return Entity::hsc($memberinfo->getURL());\r
+                                       break;\r
+                               case 'email':\r
+                                       return Entity::hsc($memberinfo->getEmail());\r
+                                       break;\r
+                               case 'id':\r
+                                       return Entity::hsc($memberinfo->getID());\r
+                                       break;\r
+                       }\r
+               }\r
+               // 2. the next bunch of options is available everywhere, as long as the user is logged in\r
+               if ( $member->isLoggedIn() )\r
+               {\r
+                       switch ( $what )\r
+                       {\r
+                               case 'yourname':\r
+                                       return $member->getDisplayName();\r
+                                       break;\r
+                               case 'yourrealname':\r
+                                       return $member->getRealName();\r
+                                       break;\r
+                               case 'yournotes':\r
+                                       return $member->getNotes();\r
+                                       break;\r
+                               case 'yoururl':\r
+                                       return $member->getURL();\r
+                                       break;\r
+                               case 'youremail':\r
+                                       return $member->getEmail();\r
+                                       break;\r
+                               case 'yourid':\r
+                                       return $member->getID();\r
+                                       break;\r
+                       }\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_headmessage()\r
+        * Parse skinvar headmessage\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_headmessage()\r
+       {\r
+               if ( !empty($this->objAdmin->headMess) )\r
+               {\r
+                       echo '<p>' . _MESSAGE . ': ' . Entity::hsc($this->objAdmin->headMess) . "</p>\n";\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_helplink()\r
+        * Parse skinvar helplink\r
+        * \r
+        * @param       string  $topic  name of topic for help\r
+        * @return      void\r
+        */\r
+       public function parse_helplink($topic = '')\r
+       {\r
+               if ( empty($topic) )\r
+               {\r
+                       return;\r
+               }\r
+               help($topic);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_helpplugname()\r
+        * Parse skinvar helpplugname\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_helpplugname()\r
+       {\r
+               $plugid = intGetVar('plugid');\r
+               Entity::hsc(getPluginNameFromPid($plugid));\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_ilistaddnew()\r
+        * Parse skinvar ilistaddnew\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_ilistaddnew()\r
+       {\r
+               $blogid = intRequestVar('blogid');\r
+               if ( intPostVar('start') == 0 )\r
+               {\r
+                       echo '<p><a href="index.php?action=createitem&amp;blogid=' . $blogid . '">' . _ITEMLIST_ADDNEW . "</a></p>\n";\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_importskininfo()\r
+        * Parse skinvar importskininfo\r
+        * \r
+        * @param       string  $type   name of information for imported skin\r
+        * @return      void\r
+        */\r
+       public function parse_importskininfo($type)\r
+       {\r
+               switch ( $type )\r
+               {\r
+                       case 'info':\r
+                               echo Entity::hsc(requestVar('skininfo'));\r
+                               break;\r
+                       case 'snames':\r
+                               $dataArr = requestArray('skinnames');\r
+                               echo implode(' <em>' . _AND . '</em> ', $dataArr);\r
+                               break;\r
+                       case 'tnames':\r
+                               $dataArr = requestArray('tpltnames');\r
+                               echo implode(' <em>' . _AND . '</em> ', $dataArr);\r
+                               break;\r
+                       case 'sclashes':\r
+                               $dataArr = requestArray('skinclashes');\r
+                               echo implode(' <em>' . _AND . '</em> ', $dataArr);\r
+                               break;\r
+                       case 'tclashes':\r
+                               $dataArr = requestArray('tpltclashes');\r
+                               echo implode(' <em>' . _AND . '</em> ', $dataArr);\r
+                               break;\r
+                       case 'skinfile':\r
+                               echo Entity::hsc(requestVar('skinfile'));\r
+                               break;\r
+                       case 'mode':\r
+                               echo Entity::hsc(requestVar('mode'));\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_inputyesno()\r
+        * Parse skinvar inputyesno\r
+        * \r
+        * @param       string  $name                   \r
+        * @param       string  $checkedval             \r
+        * @param       string  $tabindex               \r
+        * @param       string  $value1                 \r
+        * @param       string  $value2                 \r
+        * @param       string  $yesval                 \r
+        * @param       string  $noval                  \r
+        * @param       string  $isAdmin                \r
+        * @param       string  $templateName   \r
+        * @return      void\r
+        */\r
+       public function parse_inputyesno($name, $checkedval, $tabindex = 0, $value1 = 1, $value2 = 0, $yesval = _YES, $noval = _NO, $isAdmin = 0, $templateName = '')\r
+       {\r
+               self::input_yesno($name, $checkedval, $tabindex, $value1, $value2, $yesval, $noval, $isAdmin, $templateName );\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_insertpluginfo()\r
+        * Parse templatevar insertpluginfo\r
+        */\r
+       public function parse_insertpluginfo($type)\r
+       {\r
+               $option = $this->objAdmin;\r
+               switch ( $type )\r
+               {\r
+                       case 'id':\r
+                               return $option['pid'];\r
+                               break;\r
+                       case 'name':\r
+                               return Entity::hsc($option['pfile']);\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_insertpluginoptions()\r
+        * Parse skinvar insertpluginoptions\r
+        * \r
+        * @param       string  $templateName   name of template\r
+        * @return      void\r
+        */\r
+       public function parse_insertpluginoptions($templateName = '')\r
+       {\r
+               $options        = $this->objAdmin->aOptions;\r
+               $template       = array();\r
+               $templats       = array();\r
+               \r
+               if ( $templateName )\r
+               {\r
+                       $templates = skinableTEMPLATE::read($templateName);\r
+               }\r
+               if (array_key_exists('INSERT_PLUGOPTION_TITLE', $templates) && !empty($templates['INSERT_PLUGOPTION_TITLE']) )\r
+               {\r
+                       $template['title'] = $templates['INSERT_PLUGOPTION_TITLE'];\r
+               }\r
+               else\r
+               {\r
+                       $template['title'] = '<tr><th colspan="2"><%sprinttext(_PLUGIN_OPTIONS_TITLE, <|%insertpluginfo(name)%|>)%></th></tr>' . "\n";\r
+               }\r
+               if ( array_key_exists('INSERT_PLUGOPTION_BODY', $templates) && !empty($templates['INSERT_PLUGOPTION_BODY']) )\r
+               {\r
+                       $template['body'] = $templates['INSERT_PLUGOPTION_BODY'];\r
+               }\r
+               else\r
+               {\r
+                       $template['body'] = '<tr><%listplugplugoptionrow%></tr>' . "\n";\r
+               }\r
+               \r
+               $prevPid = -1;\r
+               \r
+               foreach ( $options as $option )\r
+               {\r
+                       $handler = new skinableACTIONS($this->skintype, $template, $option);\r
+                       $parser  = new PARSER(skinableACTIONS::getDefinedActions(), $handler);\r
+                       // new plugin?\r
+                       if ( $prevPid != $option['pid'] )\r
+                       {\r
+                               $prevPid  = $option['pid'];\r
+                               $parser->parse($template['title']);\r
+                       }\r
+                       $meta = NucleusPlugin::getOptionMeta($option['typeinfo']);\r
+                       if ( @$meta['access'] != 'hidden' )\r
+                       {\r
+                               $parsed = $parser->parse($template['body']);\r
+                       }\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_insplugoptcontent()\r
+        * Parse skinvar insplugoptcontent\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_insplugoptcontent()\r
+       {\r
+               $option = $this->objAdmin->aOption;\r
+               \r
+               $meta   = NucleusPlugin::getOptionMeta($option['typeinfo']);\r
+               if (array_key_exists('access', $meta) && $meta['access'] != 'hidden')\r
+               {\r
+                       echo '<tr>';\r
+                       skinableListplug_plugOptionRow($option);\r
+                       echo '</tr>';\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_iprangeinput()\r
+        * Parse skinvar iprangeinput\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       function parse_iprangeinput()\r
+       {\r
+               if ( requestVar('ip') )\r
+               {\r
+                       $iprangeVal = Entity::hsc(requestVar('ip'));\r
+                       echo '<input name="iprange" type="radio" value="' . $iprangeVal . '" checked="checked" id="ip_fixed" />' . "\n";\r
+                       echo '<label for="ip_fixed">' . $iprangeVal . "</label><br />\n";\r
+                       echo '<input name="iprange" type="radio" value="custom" id="ip_custom" />' . "\n";\r
+                       echo '<label for="ip_custom">' . _BAN_IP_CUSTOM . '</label>' . "\n";\r
+                       echo '<input name="customiprange" value="' . $iprangeVal . '" maxlength="15" size="15" />' . "\n";\r
+               }\r
+               else\r
+               {\r
+                       echo '<input name="iprange" value="custom" type="hidden" />' . "\n";\r
+                       echo '<input name="customiprange" value="" maxlength="15" size="15" />' . "\n";\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_itemnavlist()\r
+        * Parse skinvar itemnavlist\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_itemnavlist()\r
+       {\r
+               global $CONF, $manager, $member;\r
+               if ( $this->skintype == 'itemlist' )\r
+               {\r
+                       $blogid =  intRequestVar('blogid');\r
+                       $blog   =& $manager->getBlog($blogid);\r
+               }\r
+               if ( postVar('start') )\r
+               {\r
+                       $start = intPostVar('start');\r
+               }\r
+               else\r
+               {\r
+                       $start = 0;\r
+               }\r
+               \r
+               // amount of items to show\r
+               if ( postVar('amount') )\r
+               {\r
+                       $amount = intPostVar('amount');\r
+               }\r
+               else\r
+               {\r
+                       $amount = intval($CONF['DefaultListSize']);\r
+                       if ( $amount < 1 )\r
+                       {\r
+                               $amount = 10;\r
+                       }\r
+               }\r
+               $query  = "SELECT bshortname, cname, mname, ititle, ibody, inumber, idraft, itime"\r
+                       . " FROM %s, %s, %s"\r
+                       . " WHERE iblog=bnumber AND iauthor=mnumber AND icat=catid;";\r
+               \r
+               $query = sprintf($query, sql_table('item'), sql_table('blog'), sql_table('member'), sql_table('category'));\r
+               \r
+               if ( $this->skintype == 'itemlist' )\r
+               {\r
+                       $query .= 'and iblog   = ' . $blogid;\r
+                       $template['now'] = $blog->getCorrectTime(time());\r
+                       \r
+                       // non-blog-admins can only edit/delete their own items\r
+                       if ( !$member->blogAdminRights($blogid) )\r
+                       {\r
+                               $query .= ' and iauthor = ' . $member->getID();\r
+                       }\r
+               }\r
+               elseif ( $this->skintype == 'browseownitems' )\r
+               {\r
+                       $query .= 'and iauthor   = ' . $member->getID();\r
+                       $blogid = 0;\r
+                       $template['now'] = time();\r
+               }\r
+               \r
+               // search through items\r
+               $search = postVar('search');\r
+               \r
+               if ( !empty($search) )\r
+               {\r
+                       $query .= ' AND ((ititle LIKE "%' . sql_real_escape_string($search) . '%") '\r
+                               . '  OR  (ibody LIKE "%' . sql_real_escape_string($search) . '%") '\r
+                               . '  OR  (imore LIKE "%' . sql_real_escape_string($search) . '%"))';\r
+               }\r
+               $query .= ' ORDER BY itime DESC'\r
+                       . " LIMIT {$start},{$amount}";\r
+               \r
+               $template['content'] = 'itemlist';\r
+               \r
+               $navList = new skinableNAVLIST($this->skintype, $start, $amount, 0, 1000, $blogid, $search, 0);\r
+               $navList->showBatchList('item', $query, 'table', $template);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_jstoolbaroptions()\r
+        * Parse skinvar jstoolbaroptions\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_jstoolbaroptions()\r
+       {\r
+               global $CONF;\r
+               $options = array(\r
+                       _SETTINGS_JSTOOLBAR_NONE,\r
+                       _SETTINGS_JSTOOLBAR_SIMPLE,\r
+                       _SETTINGS_JSTOOLBAR_FULL\r
+               );\r
+               $i = 1;\r
+               foreach ( $options as $option )\r
+               {\r
+                       $text  = "<option value=\"%d\"%s>%s</option>\n";\r
+                       $extra = ($CONF['DisableJsTools'] == $i) ? ' selected="selected"' : '';\r
+                       echo sprintf($text, $i, $extra, $option);\r
+                       $i++;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_localeselectoptions()\r
+        * Parse skinvar localeselectoptions\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_localeselectoptions()\r
+       {\r
+               $locales = i18n::get_available_locale_list();\r
+               $memid   = intRequestVar('memberid');\r
+               if ( $memid )\r
+               {\r
+                       $mem = MEMBER::createFromID($memid);\r
+                       if ( !$mem->getLocale() || !in_array($mem->getLocale(), $locales) )\r
+                       {\r
+                               echo "<option value=\"\" selected=\"selected\">" . Entity::hsc(_MEMBERS_USESITELANG) . "</option>\n";\r
+                       }\r
+                       else\r
+                       {\r
+                               echo "<option value=\"\">" . Entity::hsc(_MEMBERS_USESITELANG) . "</option>\n";\r
+                       }\r
+               }\r
+               else\r
+               {\r
+                       if ( !i18n::get_current_locale() || !in_array(i18n::get_current_locale(), $locales) )\r
+                       {\r
+                               echo "<option value=\"\" selected=\"selected\">en_Latn_US</option>\n";\r
+                       }\r
+               }\r
+               foreach ( $locales as $locale )\r
+               {\r
+                       if ($memid)\r
+                       {\r
+                               if ( $locale == $mem->getLocale() )\r
+                               {\r
+                                       echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";\r
+                               }\r
+                               else\r
+                               {\r
+                                       echo "<option value=\"{$locale}\">{$locale}</option>\n";\r
+                               }\r
+                       }\r
+                       else\r
+                       {\r
+                               if ( $locale == i18n::get_current_locale() )\r
+                               {\r
+                                       echo "<option value=\"{$locale}\" selected=\"selected\">{$locale}</option>\n";\r
+                               }\r
+                               else\r
+                               {\r
+                                       echo "<option value=\"{$locale}\">{$locale}</option>\n";\r
+                               }\r
+                       }\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_listplugplugoptionrow()\r
+        * Parse templatevar listplugplugoptionrow\r
+        * \r
+        * @param       string  $templateName   name of template\r
+        * @return      void\r
+        */\r
+       public function parse_listplugplugoptionrow($templateName = '')\r
+       {\r
+               $option = $this->objAdmin;\r
+               echo skinableListplug_plugOptionRow($option, $templateName);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_mediadirwarning()\r
+        * Parse skinvar mediadirwarning\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_mediadirwarning()\r
+       {\r
+               global $DIR_MEDIA;\r
+               if ( !is_dir($DIR_MEDIA) )\r
+               {\r
+                       echo "<br /><b>" . _WARNING_NOTADIR . "</b>\n";\r
+               }\r
+               if ( !is_readable($DIR_MEDIA) )\r
+               {\r
+                       echo "<br /><b>" . _WARNING_NOTREADABLE . "</b>\n";\r
+               }\r
+               if ( !is_writeable($DIR_MEDIA) )\r
+               {\r
+                       echo "<br /><b>" . _WARNING_NOTWRITABLE . "</b>\n";\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_movedistselect()\r
+        * Parse skinvar movedistselect\r
+        */\r
+       function parse_movedistselect()\r
+       {\r
+               $actionType = requestVar('action');\r
+               switch ( $actionType )\r
+               {\r
+                       case 'batchitem':\r
+                               $this->objAdmin->selectBlogCategory('destcatid');\r
+                               break;\r
+                       case 'batchcategory':\r
+                               $this->objAdmin->selectBlog('destblogid');\r
+                               break;\r
+                       default:\r
+                               if ( $this->skintype == 'itemmove' )\r
+                               {\r
+                                       $query  = "SELECT icat as result FROM %s WHERE inumber=%d;";\r
+                                       $query = spriintf($query, sql_table('item'), intRequestVar('itemid'));\r
+                                       $catid  = quickQuery(sprintf($query, intRequestVar('itemid')));\r
+                                       $this->objAdmin->selectBlogCategory('catid', $catid, 10, 1);\r
+                               }\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_moveitemid()\r
+        * Parse skinvar moveitemid\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_moveitemid()\r
+       {\r
+               echo intRequestVar('itemid');\r
+               return;\r
+       }\r
+}\r