OSDN Git Service

skinnableADMINクラスから全メソッドの移植を終えた
authorsakamocchi <o-takashi@sakamocchi.jp>
Fri, 6 Apr 2012 23:00:03 +0000 (08:00 +0900)
committersakamocchi <o-takashi@sakamocchi.jp>
Fri, 6 Apr 2012 23:00:03 +0000 (08:00 +0900)
今後、ActionsクラスとAdminActionsクラスに分離するなどの検討をする必要あり。

nucleus/libs/ACTIONS.php

index f4ea58f..a4c15be 100644 (file)
@@ -4847,4 +4847,1066 @@ class Actions extends BaseActions
                echo intRequestVar('itemid');\r
                return;\r
        }\r
+       \r
+       /**\r
+        * Actions::parse_newestcompare()\r
+        * Parse skinvar newestcompare\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_newestcompare()\r
+       {\r
+               global $nucleus;\r
+               $newestVersion  = getLatestVersion();\r
+               $newestCompare  = str_replace('/', '.', $newestVersion);\r
+               $currentVersion = str_replace(array('/', 'v'), array('.', ''), $nucleus['version']);\r
+               if ( $newestVersion && version_compare($newestCompare, $currentVersion, '>') )\r
+               {\r
+                       echo '<br /><a style="color:red" href="http://nucleuscms.org/upgrade.php" title="' . _ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TITLE . '">';\r
+                       echo _ADMIN_SYSTEMOVERVIEW_LATESTVERSION_TEXT . $newestVersion . '</a>';\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_newmemberselect()\r
+        * Parse skinvar newmemberselect\r
+        * \r
+        * @param       string  $templateName   name of template to use\r
+        * @return      void\r
+        */\r
+       public function parse_newmemberselect($templateName = '')\r
+       {\r
+               $blogid = intRequestVar('blogid');\r
+               \r
+               $query  = "SELECT tmember FROM %s WHERE tblog=%d;";\r
+               $query = sprintf($query, sql_table('team'), (integer) $blogid);\r
+               $res = sql_query($query);\r
+               \r
+               $tmem = array();\r
+               while ( $tmember = sql_fetch_object($res) ) \r
+               {\r
+                       $tmem[] = intval($tmember->tmember);\r
+               }\r
+               \r
+               $query  = "SELECT mname as text, mnumber as value FROM %s WHERE mnumber NOT IN (%s);";\r
+               $query = sprintf($query, sql_table('member'), implode(', ', $tmem));\r
+               \r
+               $template['name']        = 'memberid';\r
+               $template['tabindex'] = 10000;\r
+               skinableShowlist($query, 'select', $template, $templateName);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_newpluginlist()\r
+        * Parse skinvar newpluginlist\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_newpluginlist()\r
+       {\r
+               $candidates = $this->newPlugCandidates;\r
+               foreach ( $candidates as $name )\r
+               {\r
+                       echo '<option value="NP_' . $name . '">' . Entity::hsc($name) . "</option>\n";\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_outputspecialdirs()\r
+        * Parse skinvar outputspecialdirs\r
+        * \r
+        * @param       string  $type   type of setting for directory\r
+        * @return      void\r
+        */\r
+       public function parse_outputspecialdirs($type)\r
+       {\r
+               switch ( $type )\r
+               {\r
+                       case 'nucleusdir':\r
+                               global $DIR_NUCLEUS;\r
+                               echo Entity::hsc($DIR_NUCLEUS);\r
+                               break;\r
+                       case 'mediadir':\r
+                               global $DIR_MEDIA;\r
+                               echo Entity::hsc($DIR_MEDIA);\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_passrequestvars()\r
+        * Parse skinvar passrequestvars\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_passrequestvars()\r
+       {\r
+               $oldaction = postVar('oldaction');\r
+               if ( ($oldaction != 'logout')\r
+                 && ($oldaction != 'login')\r
+                 && $this->objAdmin->passvar\r
+                 && !postVar('customaction') )\r
+               {\r
+                       passRequestVars();\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_pluginextras()\r
+        * Parse skinvar pluginextras\r
+        * \r
+        * @param       string  $type   type of plugin context\r
+        * @return      void\r
+        */\r
+       function parse_pluginextras($type = 'global')\r
+       {\r
+               global $manager;\r
+               switch ( $type )\r
+               {\r
+                       case 'member':\r
+                               $id  = intRequestVar('memberid');\r
+                               $mem = MEMBER::createFromID($id);\r
+                               $manager->notify(\r
+                                       'MemberSettingsFormExtras',\r
+                                       array(\r
+                                               'member' => &$mem\r
+                                       )\r
+                               );\r
+                               break;\r
+                       case 'blog':\r
+                               $id  = intRequestVar('blogid');\r
+                               $blg = $manager->getBlog($id);\r
+                               $manager->notify(\r
+                                       'BlogSettingsFormExtras',\r
+                                       array(\r
+                                               'member' => &$blg\r
+                                       )\r
+                               );\r
+                               break;\r
+                       default:\r
+                               $manager->notify(\r
+                                       'GeneralSettingsFormExtras',\r
+                                       array(\r
+                                       )\r
+                               );\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_pluginhelp()\r
+        * Parse skinvar pluginhelp\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_pluginhelp()\r
+       {\r
+               global $manager, $DIR_PLUGINS;\r
+               $plugid = intGetVar('plugid');\r
+               $plugName =  getPluginNameFromPid($plugid);\r
+               $plug =& $manager->getPlugin($plugName);\r
+               \r
+               if ( $plug->supportsFeature('HelpPage') > 0 )\r
+               {\r
+                       $helpfile = $DIR_PLUGINS . $plug->getShortName() . '/help.';\r
+                       if ( @file_exists($helpfile . 'php') )\r
+                       {\r
+                               @include($helpfile . 'php');\r
+                               return;\r
+                       }\r
+                       elseif ( @file_exists($helpfile . 'html') )\r
+                       {\r
+                               @include($helpfile . 'html');\r
+                               return;\r
+                       }\r
+               }\r
+               echo '<p>' . _ERROR . ': ' . _ERROR_PLUGNOHELPFILE . "</p>\n";\r
+               echo '<p><a href="index.php?action=pluginlist">(' . _BACK . ")</a></p>\n";\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_pluginlistlist()\r
+        * Parse skinvar pluginlistlist\r
+        * \r
+        * @param       string  $templateName   name of template to use\r
+        * @return      void\r
+        */\r
+       public function parse_pluginlistlist($templateName = '')\r
+       {\r
+               $query  = "SELECT * FROM %s ORDER BY porder ASC;";\r
+               $query = sprintf($query, sql_table('plugin'));\r
+               $template['content']  = 'pluginlist';\r
+               $template['tabindex'] = 10;\r
+               skinableShowlist($query, 'table', $template, $templateName);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_pluginoptions()\r
+        * Parse skinvar pluginoptions\r
+        * \r
+        * @param       string  $type   type of plugin option\r
+        * @return      void\r
+        */\r
+       public function parse_pluginoptions($type = 'global')\r
+       {\r
+               switch ( $type )\r
+               {\r
+                       case 'member':\r
+                               $id = intRequestVar('memberid');\r
+                               break;\r
+                       case 'blog':\r
+                               $id = intRequestVar('blogid');\r
+                               break;\r
+                       case 'category':\r
+                               $id = intRequestVar('catid');\r
+                               break;\r
+               }\r
+               $this->objAdmin->_insertPluginOptions($type, $id);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_qmenuaddselect()\r
+        * Parse skinvar qmanuaddselect\r
+        * \r
+        * @param       string  $templateName   name of template to use\r
+        * @return      void\r
+        */\r
+       public function parse_qmenuaddselect($templateName = '')\r
+       {\r
+               global $member;\r
+               $showAll = requestVar('showall');\r
+               if ( $member->isAdmin() && ($showAll == 'yes') )\r
+               {\r
+                       // Super-Admins have access to all blogs! (no add item support though)\r
+                       $query =  'SELECT bnumber as value, bname as text'\r
+                              . ' FROM ' . sql_table('blog')\r
+                              . ' ORDER BY bname';\r
+               }\r
+               else\r
+               {\r
+                       $query =  'SELECT bnumber as value, bname as text'\r
+                              . ' FROM ' . sql_table('blog') . ', ' . sql_table('team')\r
+                              . ' WHERE tblog=bnumber and tmember=' . $member->getID()\r
+                              . ' ORDER BY bname';\r
+               }\r
+               $template['name']          = 'blogid';\r
+               $template['tabindex']   = 15000;\r
+               $template['extra']        = _QMENU_ADD_SELECT;\r
+               $template['selected']   = -1;\r
+               $template['shorten']    = 10;\r
+               $template['shortenel']  = '';\r
+               $template['javascript'] = 'onchange="return form.submit()"';\r
+               skinableShowlist($query, 'select', $template, $templateName);\r
+               return;\r
+       }\r
+\r
+       /**\r
+        * Actions::parse_quickmenu()\r
+        * Parse skinvar quickmenu\r
+        * \r
+        * @param       string  $templateName   name of template to use\r
+        * @return      void\r
+        */\r
+       public function parse_quickmenu($templateName = '')\r
+       {\r
+               global $manager;\r
+               $templates = array();\r
+               $template  = array();\r
+               if ( !empty($templateName) )\r
+               {\r
+                       $templates = skinableTEMPLATE::read($templateName);\r
+               }\r
+               $pluginExtras = array();\r
+               $manager->notify(\r
+                       'QuickMenu',\r
+                       array(\r
+                               'options' => &$pluginExtras\r
+                       )\r
+               );\r
+               if ( count($pluginExtras) > 0 )\r
+               {\r
+                       if ( array_key_exists('PLUGIN_QUICKMENU_TITLE', $templates) || !empty($templates['PLUGIN_QUICKMENU_TITLE']) )\r
+                       {\r
+                               $template['title'] = $templates['PLUGIN_QUICKMENU_TITLE'];\r
+                       }\r
+                       else\r
+                       {\r
+                               $template['title'] = '<h2><%text(_QMENU_PLUGINS)%></h2>';\r
+                       }\r
+                       $handler = new skinableACTIONS($this->skintype, $template, $this->objAdmin);\r
+                       $parser  = new PARSER(skinableACTIONS::getDefinedActions(), $handler);\r
+                       $parser->parse($template['title']);\r
+                       \r
+                       if ( array_key_exists('PLUGIN_QUICKMENU_HEAD', $templates) || !empty($templates['PLUGIN_QUICKMENU_HEAD']) )\r
+                       {\r
+                               $template['head'] = $templates['PLUGIN_QUICKMENU_HEAD'];\r
+                       }\r
+                       else\r
+                       {\r
+                               $template['head'] = '<ul>';\r
+                       }\r
+                       \r
+                       echo $template['head'];\r
+                       \r
+                       if ( array_key_exists('PLUGIN_QUICKMENU_BODY', $templates) || !empty($templates['PLUGIN_QUICKMENU_BODY']) )\r
+                       {\r
+                               $template['body'] = $templates['PLUGIN_QUICKMENU_BODY'];\r
+                       }\r
+                       else\r
+                       {\r
+                               $template['body'] = '<li><a href="<%plugadminurl%>" title="<%plugadmintooltip%>"><%plugadmintitle%></a></li>';\r
+                       }\r
+                       \r
+                       foreach ( $pluginExtras as $aInfo )\r
+                       {\r
+                               $data = array(\r
+                                       'plugadminurl'          => ENTITY::hsc($aInfo['url'], ENT_QUOTES),\r
+                                       'plugadmintooltip'      => ENTITY::hsc($aInfo['tooltip'], ENT_QUOTES),\r
+                                       'plugadmintitle'        => ENTITY::hsc($aInfo['title'], ENT_QUOTES),\r
+                               );\r
+                               echo TEMPLATE::fill($template['body'], $data);\r
+                       }\r
+                       if ( array_key_exists('PLUGIN_QUICKMENU_FOOT', $templates) || !empty($templates['PLUGIN_QUICKMENU_FOOT']) )\r
+                       {\r
+                               $template['foot'] = $templates['PLUGIN_QUICKMENU_FOOT'];\r
+                       }\r
+                       else\r
+                       {\r
+                               $template['foot'] = '</ul>';\r
+                       }\r
+                       echo $template['foot'];\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_requestblogid()\r
+        * Parse skinvar requestblogid\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_requestblogid()\r
+       {\r
+               echo intRequestVar('blogid');\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_requestiprange()\r
+        * Parse skinvar requestiprange\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_requestiprange()\r
+       {\r
+               if ( requestVar('iprange') )\r
+               {\r
+                       echo Entity::hsc(requestVar('iprange'));\r
+               }\r
+               elseif ( requestVar('ip') )\r
+               {\r
+                       echo Entity::hsc(requestVar('ip'));\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_selectlocaladminskinfiles()\r
+        * Parse skinvar selectlocaladminskinfiles\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_selectlocaladminskinfiles()\r
+       {\r
+               global $DIR_ADMINSKINS, $manager;\r
+               $candidates = skinableSKINIMPORT::searchForCandidates($DIR_ADMINSKINS);\r
+               foreach ( $candidates as $skinname => $skinfile )\r
+               {\r
+                       $html = Entit::hsc($skinfile);\r
+                       echo '<option value="' . $html . '">' . $skinname . "</option>\n";\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_selectlocalskinfiles()\r
+        * Parse skinvar selectlocalskinfiles\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       function parse_selectlocalskinfiles()\r
+       {\r
+               global $DIR_SKINS;\r
+               $candidates = SKINIMPORT::searchForCandidates($DIR_SKINS);\r
+               foreach ( $candidates as $skinname => $skinfile )\r
+               {\r
+                       $html = ENTITY::hsc($skinfile);\r
+                       echo '<option value="' . $html . '">' . $skinname . "</option>\n";\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_skineditallowedlist()\r
+        * Parse skinvar skineditallowedlist\r
+        * \r
+        * @param       string  $type                   type of skin\r
+        * @param       string  $templateName   name of template\r
+        * @return      void\r
+        */\r
+       public function parse_skineditallowedlist($type, $templateName = '')\r
+       {\r
+               switch ( $type )\r
+               {\r
+                       case 'blog':\r
+                               $query = "SELECT bshortname, bname FROM %s";\r
+                               $show  = array(\r
+                                       'content' => 'shortblognames'\r
+                               );\r
+                               $query = sprintf($query, sql_table('blog'));\r
+                               skinableShowlist($query, 'table', $show, $templateName);\r
+                               break;\r
+                       case 'template':\r
+                               $query = "SELECT tdname as name, tddesc as description FROM %s";\r
+                               $show  = array(\r
+                                       'content' => 'shortnames'\r
+                               );\r
+                               $query = sprintf($query, sql_table('template_desc'));\r
+                               skinableShowlist($query, 'table', $show, $templateName);\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_skinfile()\r
+        * Inserts an url relative to the skindir (useful when doing import/export)\r
+        *\r
+        * e.g. <skinfile(default/myfile.sth)>\r
+        * \r
+        * @param       string  $filename       file name for skin\r
+        * @return      void\r
+        */\r
+       public function parse_skinfile($filename)\r
+       {\r
+               $base = NP_SkinableAdmin::getAdminSkinURL();\r
+               $pref = PARSER::getProperty('IncludePrefix');\r
+               echo $base . $pref . $filename;\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_skinielist()\r
+        * Parse skinvar skinielist\r
+        * \r
+        * @param       string  $type                   type of skin\r
+        * @param       string  $templateName   name of template to use\r
+        * @return      void\r
+        */\r
+       public function parse_skinielist($type, $templateName = '')\r
+       {\r
+               $templates = array();\r
+               if ( $templateName )\r
+               {\r
+                       $templates = skinableTEMPLATE::read($templateName);\r
+               }\r
+               if ( array_key_exists('SKINIE_EXPORT_LIST', $templates) && !empty($templates['SKINIE_EXPORT_LIST']) )\r
+               {\r
+                       $template = $templates['SKINIE_EXPORT_LIST'];\r
+               }\r
+               else\r
+               {\r
+                       $template = '<td><input type="checkbox" name="<%typeid%>"  id="<%expid%>" /><label for="<%expid%>"><%expname%></label></td>' . "\n"\r
+                                         . "<td><%expdesc%></td>\n"\r
+                                         . "</tr><tr>\n";\r
+               }\r
+               switch ( $type )\r
+               {\r
+                       case 'skin':\r
+                               $res = sql_query('SELECT * FROM ' . sql_table('skin_desc'));\r
+                               while ( $skinObj = sql_fetch_object($res) )\r
+                               {\r
+                                       $data = array(\r
+                                               'typeid'        => 'skin[' . $skinObj->sdnumber . ']',\r
+                                               'expid'         => 'skinexp' . $skinObj->sdnumber,\r
+                                               'expname'       => ENTITY::hsc($skinObj->sdname, ENT_QUOTES),\r
+                                               'expdesc'       => ENTITY::hsc($skinObj->sddesc, ENT_QUOTES),\r
+                                       );\r
+                                       echo TEMPLATE::fill($template, $data);\r
+                               }\r
+                               break;\r
+                       case 'template':\r
+                               $res = sql_query('SELECT * FROM '.sql_table('template_desc'));\r
+                               while ($templateObj = sql_fetch_object($res)) {\r
+                                       $data = array(\r
+                                               'typeid'        => 'template[' . $templateObj->tdnumber . ']',\r
+                                               'expid'         => 'templateexp' . $templateObj->tdnumber,\r
+                                               'expname'       => ENTITY::hsc($templateObj->tdname, ENT_QUOTES),\r
+                                               'expdesc'       => ENTITY::hsc($templateObj->tddesc, ENT_QUOTES),\r
+                                       );\r
+                                       echo TEMPLATE::fill($template, $data);\r
+                               }\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_skinoverview()\r
+        * Parse skinvar skinoverview\r
+        * \r
+        * @param       string  $templateName   name of template to use\r
+        * @return      void\r
+        */\r
+       public function parse_skinoverview($templateName = '')\r
+       {\r
+               $query  = "SELECT * FROM %s ORDER BY sdname";\r
+               $query = sprintf($query, sql_table('skin_desc'));\r
+               \r
+               $template['content']  = 'skinlist';\r
+               $template['tabindex'] = 10;\r
+               \r
+               skinableShowlist($query, 'table', $template, $templateName);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_skintypehelp()\r
+        * Check editing skintypehelp\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_skintypehelp()\r
+       {\r
+               $nowSkinType = strtolower(trim(requestVar('type')));\r
+               $regularType = array(\r
+                       'index',\r
+                       'item',\r
+                       'archivelist',\r
+                       'archive',\r
+                       'search',\r
+                       'error',\r
+                       'member',\r
+                       'imagepopup'\r
+               );\r
+               \r
+               if ( in_array($nowSkinType, $regularType) )\r
+               {\r
+                       help('skinpart' . $nowSkinType);\r
+               }\r
+               else\r
+               {\r
+                       help('skinpartspecial');\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_specialskinlist()\r
+        * Parse skinvar specialskinlist\r
+        * \r
+        * @param       string  $templateName   name of template to use\r
+        * @return      void\r
+        */\r
+       public function parse_specialskinlist($templateName = '')\r
+       {\r
+               $templates = array();\r
+               if ( $templateName )\r
+               {\r
+                       $templates = skinableTEMPLATE::read($templateName);\r
+               }\r
+               $nType  = array(\r
+                       'index',\r
+                       'item',\r
+                       'error',\r
+                       'search',\r
+                       'archive',\r
+                       'archivelist',\r
+                       'imagepopup',\r
+                       'member'\r
+               );\r
+               $skinid = intRequestVar('skinid');\r
+               $query  = "SELECT stype FROM %s WHERE stype NOT IN ('%s') AND sdesc = %d;";\r
+               $query = sprintf($query, sql_table('skin'), implode("', '", $nType), $skinid);\r
+               \r
+               $res    = sql_query($query);\r
+               if ( $res && sql_num_rows($res) > 0 )\r
+               {\r
+                       $data = array();\r
+                       if ( array_key_exists('SPECIALSKINLIST_HEAD', $templates) && !empty($templates['SPECIALSKINLIST_HEAD']) )\r
+                       {\r
+                               $template['head'] = $templates['SPECIALSKINLIST_HEAD'];\r
+                       }\r
+                       else\r
+                       {\r
+                               $template['head'] = "<ul>\n";\r
+                       }\r
+                       echo TEMPLATE::fill($template['head'], $data);\r
+                       if ( array_key_exists('SPECIALSKINLIST_BODY', $templates) && !empty($templates['SPECIALSKINLIST_BODY']) )\r
+                       {\r
+                               $template['body'] = $templates['SPECIALSKINLIST_BODY'];\r
+                       }\r
+                       else\r
+                       {\r
+                               $template['body'] = '<li><a tabindex="<%tabindex%>" href="index.php?action=skinedittype&amp;skinid=<%skinid%>'\r
+                                                                 . '&amp;type=<%skintype%>"><%skintype%></a> (<a tabindex="<%tabindex%>" href="index.php?'\r
+                                                                 . 'action=skinremovetype&amp;skinid=<%skinid%>&amp;type=<%skintype%>">remove</a>)</li>';\r
+                       }\r
+                       $tabstart = 75;\r
+                       while ( $row = sql_fetch_assoc($res) )\r
+                       {\r
+                               $data = array(\r
+                                       'tabindex' => $tabstart++,\r
+                                       'skinid'   => $skinid,\r
+                                       'skintype' => ENTITY::hsc(strtolower($row['stype']), ENT_QUOTES)\r
+                               );\r
+                               echo TEMPLATE::fill($template['body'], $data);\r
+                       }\r
+                       $data = array();\r
+                       if (array_key_exists('SPECIALSKINLIST_FOOT', $templates) && !empty($templates['SPECIALSKINLIST_FOOT']) )\r
+                       {\r
+                               $template['foot'] = $templates['SPECIALSKINLIST_FOOT'];\r
+                       }\r
+                       else\r
+                       {\r
+                               $template['foot'] = "</ul>\n";\r
+                       }\r
+                       echo TEMPLATE::fill($template['foot'], $data);\r
+                       return;\r
+               }\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_sprinttext()\r
+        * Parse sprinttext\r
+        * \r
+        * @param       string  $which  \r
+        * @param       string  $val    \r
+        * @return      void\r
+        */\r
+       public function parse_sprinttext($which, $val)\r
+       {\r
+               if ( !defined($which) )\r
+               {\r
+                       $base = $which;\r
+               }\r
+               else\r
+               {\r
+                       $base = constant($which);\r
+               }\r
+               \r
+               if ( preg_match('#[^<|%].*[^%|>]#', $val, $matchies) )\r
+               {\r
+                       if ( !preg_match('#[(].*[^)]#', $matchies[0], $args) )\r
+                       {\r
+                               $met = 'parse_' . $matchies[0];\r
+                       }\r
+                       else\r
+                       {\r
+                               $arg = trim($args[0], '()');\r
+                               $met = 'parse_' . substr($matchies[0], 0, strpos($matchies[0], '('));\r
+                       }\r
+                       \r
+                       if ( method_exists($this, $met) )\r
+                       {\r
+                               $value = call_user_func(array(&$this, $met), $arg);\r
+                       }\r
+               }\r
+               \r
+               if ( !isset($value) || empty($value) )\r
+               {\r
+                       $value = $val;\r
+               }\r
+               echo sprintf($base, $value);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_systemsettings()\r
+        * Parse skinvar systemsettings\r
+        * \r
+        * @param       string  $type                   type of settings for system\r
+        * @param       string  $templateName   name of template to use \r
+        * @return      void\r
+        */\r
+       public function parse_systemsettings($type = 'phpinfo', $templateName = '')\r
+       {\r
+               global $member, $CONF, $nucleus;\r
+               \r
+               $member->isAdmin() or $this->objAdmin->disallow();\r
+               \r
+               $enable  = _ADMIN_SYSTEMOVERVIEW_ENABLE;\r
+               $disable = _ADMIN_SYSTEMOVERVIEW_DISABLE;\r
+               \r
+               switch ( $type )\r
+               {\r
+                       case 'phpversion':\r
+                               echo phpversion();\r
+                               break;\r
+                       case 'sqlserverinfo':\r
+                               echo sql_get_server_info();\r
+                               break;\r
+                       case 'sqlclientinfo':\r
+                               echo sql_get_client_info();\r
+                               break;\r
+                       case 'magicquotesgpc':\r
+                               echo ini_get('magic_quotes_gpc') ? 'On' : 'Off';\r
+                               break;\r
+                       case 'magicquotesruntime':\r
+                               echo ini_get('magic_quotes_runtime') ? 'On' : 'Off';\r
+                               break;\r
+                       case 'registerglobals':\r
+                               echo ini_get('register_globals') ? 'On' : 'Off';\r
+                               break;\r
+                       case 'gdinfo':\r
+                               $templates = array();\r
+                               if ( $templateName )\r
+                               {\r
+                                       $templates = skinableTEMPLATE::read($templateName);\r
+                               }\r
+                               if ( array_key_exists('SYSTEMINFO_GDSETTINGS', $templates) && !empty($templates['SYSTEMINFO_GDSETTINGS']) )\r
+                               {\r
+                                       $template = $templates['SYSTEMINFO_GDSETTINGS'];\r
+                               }\r
+                               else\r
+                               {\r
+                                       $template = "<tr>\n\t\t" . '<td width="50%">' . "<%key%></td><td><%value%></td>\n</tr>\n";\r
+                               }\r
+                               \r
+                               $gdinfo = gd_info();\r
+                               \r
+                               foreach ( $gdinfo as $key => $value )\r
+                               {\r
+                                       if ( is_bool($value) )\r
+                                       {\r
+                                               $value = $value ? $enable : $disable;\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               $value = ENTITY::hsc($value, ENT_QUOTES);\r
+                                       }\r
+                                       $data = array(\r
+                                               'key'   => $key,\r
+                                               'value' => $value,\r
+                                       );\r
+                                       echo TEMPLATE::fill($template, $data);\r
+                               }\r
+                               break;\r
+                       case 'modrewrite':\r
+                               ob_start();\r
+                               phpinfo(INFO_MODULES);\r
+                               $im = ob_get_contents();\r
+                               ob_end_clean();\r
+                               echo (strstr($im, 'mod_rewrite') != '') ? $enable : $disable;\r
+                               break;\r
+                       case 'nucleusversion':\r
+                               echo getNucleusVersion() / 100 . '(' . $nucleus['version'] . ')';\r
+                               break;\r
+                       case 'nucleuspatchlevel':\r
+                               echo getNucleusPatchLevel();\r
+                               break;\r
+                       case 'confself':\r
+                               echo $CONF['Self'];\r
+                               break;\r
+                       case 'confitemurl':\r
+                               echo $CONF['ItemURL'];\r
+                               break;\r
+                       case 'alertonheaderssent':\r
+                               echo $CONF['alertOnHeadersSent'] ? $enable : $disable;\r
+                               break;\r
+                       case 'nucleuscodename':\r
+                               if ( $nucleus['codename'] != '' )\r
+                               {\r
+                                       echo ' &quot;' . $nucleus['codename'] . '&quot;';\r
+                               }\r
+                               break;\r
+                       case 'versioncheckurl':\r
+                               echo sprintf(_ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_URL, getNucleusVersion(), getNucleusPatchLevel());\r
+                               break;\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_templateoverview()\r
+        * Parse skinvar templateoverview\r
+        * \r
+        * @param       string  $templateName   name of template to use\r
+        * @return      void\r
+        */\r
+       public function parse_templateoverview($templateName = '')\r
+       {\r
+               $query  = "SELECT * FROM %s ORDER BY tdname";\r
+               $query = sprintf($query, sql_table('template_desc'));\r
+               $template['content']  = 'templatelist';\r
+               $template['tabindex'] = 10;\r
+               skinableShowlist($query, 'table', $template, $templateName);\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_versioncheckurl()\r
+        * Parse skinvar versioncheckurl\r
+        * \r
+        * @param       void\r
+        * @return      void\r
+        */\r
+       public function parse_versioncheckurl()\r
+       {\r
+               echo sprintf(_ADMIN_SYSTEMOVERVIEW_VERSIONCHECK_URL, getNucleusVersion(), getNucleusPatchLevel());\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::parse_yrbloglist()\r
+        * Parse skinvar yrbloglist\r
+        * \r
+        * @param       string  $templateName   name of template to use\r
+        * @return      void\r
+        */\r
+       public function parse_yrbloglist($templateName = '')\r
+       {\r
+               global $member;\r
+               $showAll = requestVar('showall');\r
+               \r
+               if ( $member->isAdmin() && ($showAll == 'yes') )\r
+               {\r
+                       // Super-Admins have access to all blogs! (no add item support though)\r
+                       $query =  "SELECT bnumber, bname, 1 as tadmin, burl, bshortname"\r
+                               . " FROM %s"\r
+                               . " ORDER BY bnumber";\r
+                       $query = sprintf($query, sql_table('blog'));\r
+               }\r
+               else\r
+               {\r
+                       $query =  "SELECT bnumber, bname, tadmin, burl, bshortname"\r
+                               . " FROM %s,%s"\r
+                               . " WHERE tblog=bnumber and tmember=%d"\r
+                               . " ORDER BY bnumber";\r
+                       $query = sprintf($query, sql_table('blog'), sql_table('team'), (integer) $member->getID());\r
+               }\r
+               \r
+               $template['content']    = 'bloglist';\r
+               $template['superadmin'] = $member->isAdmin();\r
+               \r
+               $amount = skinableShowlist($query, 'table', $template, $templateName);\r
+               \r
+               if ( ($showAll != 'yes') && ($member->isAdmin()) )\r
+               {\r
+                       $query = 'SELECT COUNT(*) as result FROM ' . sql_table('blog');\r
+                       \r
+                       $total = quickQuery($query);\r
+                       if ( $total > $amount )\r
+                       {\r
+                               echo '<p><a href="index.php?action=overview&amp;showall=yes">' . _OVERVIEW_SHOWALL . '</a></p>';\r
+                       }\r
+               }\r
+               \r
+               if ( $amount == 0 )\r
+               {\r
+                       echo _OVERVIEW_NOBLOGS;\r
+               }\r
+               elseif( $amount != 0 )\r
+               {\r
+                       echo '<h2>' . _OVERVIEW_YRDRAFTS . '</h2>';\r
+                       \r
+                       $query =  "SELECT ititle, inumber, bshortname"\r
+                              . " FROM %s,%s"\r
+                              . ' WHERE iauthor=%d AND iblog=bnumber AND idraft=1';\r
+                       $query = sprintf($query. sql_table('item'), sql_table('blog'), (integer) $member->getID());\r
+                       \r
+                       $template['content'] = 'draftlist';\r
+                       \r
+                       $amountdrafts = skinableShowlist($query, 'table', $template, $templateName);\r
+                       if ( $amountdrafts == 0 )\r
+                       {\r
+                               echo _OVERVIEW_NODRAFTS;\r
+                       }\r
+               }\r
+               return;\r
+       }\r
+       \r
+       /**\r
+        * Actions::customHelp()\r
+        * shows a link to custom help file\r
+        * \r
+        * @param       integer $id                     \r
+        * @param       string  $tplName        \r
+        * @param       string  $url            \r
+        * @param       string  $iconURL        \r
+        * @param       string  $alt            \r
+        * @param       string  $title          \r
+        * @param       $onclick\r
+        * \r
+        */\r
+       private function customHelp($id, $tplName = '', $url = '', $iconURL = '', $alt = '', $title = '', $onclick = '')\r
+       {\r
+               echo self::customHelpHtml($id, $tplName, $url, $iconURL, $alt, $title, $onclick);\r
+       }\r
+       \r
+       /**\r
+        * Actions::customHelpHtml()\r
+        * \r
+        * @param       integer $id                     \r
+        * @param       string  $tplName        \r
+        * @param       string  $url            \r
+        * @param       string  $iconURL        \r
+        * @param       string  $alt            \r
+        * @param       string  $title          \r
+        * @param       string  $onclick        \r
+        * @return      string  anchor element with help uri\r
+        */\r
+       static public function customHelpHtml($id, $tplName = '', $url = '', $iconURL = '', $alt = '', $title = '', $onclick = '')\r
+       {\r
+               $templates = array();\r
+               if ( $tplName )\r
+               {\r
+                       $templates = skinableTEMPLATE::read($tplName);\r
+               }\r
+               if ( array_key_exists('ADMIN_CUSTOMHELPLINK_ICON', $templates) && !empty($templates['ADMIN_CUSTOMHELPLINK_ICON']) )\r
+               {\r
+                       $template = $templates['ADMIN_CUSTOMHELPLINK_ICON'];\r
+               }\r
+               else\r
+               {\r
+                       $template = '<img src="<%iconurl%>" <%width%><%height%>alt="<%alt%>" title="<%title%>" /></a>';\r
+               }\r
+               \r
+               if ( empty($iconURL) )\r
+               {\r
+                       global $CONF;\r
+                       $iconURL = $CONF['AdminURL'] . 'documentation/icon-help.gif';\r
+               }\r
+               if ( function_exists('getimagesize') )\r
+               {\r
+                       $size   = getimagesize($iconURL);\r
+                       $width  = 'width="'  . $size[0] . '" ';\r
+                       $height = 'height="' . $size[1] . '" ';\r
+               }\r
+               $data = array(\r
+                       'iconurl'       => $iconURL,\r
+                       'width'         => $width,\r
+                       'height'        => $height,\r
+                       'alt'           => (isset($alt) && !empty($alt))         ? $alt   : _HELP_TT,\r
+                       'title'         => (isset($title) && !empty($title)) ? $title : _HELP_TT,\r
+               );\r
+               $icon = TEMPLATE::fill($template, $data);\r
+               $help = self::customHelplink($id, $tplName, $url, $title, $onclick);\r
+               return $help . $icon;\r
+       }\r
+       \r
+       /**\r
+        * Actions::input_yesno\r
+        * \r
+        * @param               $name\r
+        * @param               $checkedval\r
+        * @param               $tabindex\r
+        * @param               $value1\r
+        * @param               $value2\r
+        * @param               $yesval\r
+        * @param               $noval\r
+        * @param               $isAdmin\r
+        * @param               $templateName\r
+        * @param               $showlist\r
+        */\r
+       static function input_yesno($name,\r
+                                                               $checkedval,\r
+                                                               $tabindex        = 0,\r
+                                                               $value1    = 1,\r
+                                                               $value2    = 0,\r
+                                                               $yesval    = _YES,\r
+                                                               $noval          = _NO,\r
+                                                               $isAdmin          = 0,\r
+                                                               $templateName = '',\r
+                                                               $showlist        = false)\r
+       {\r
+               $templates = array();\r
+               if ( $templateName )\r
+               {\r
+                       $templates = skinableTEMPLATE::read($templateName);\r
+               }\r
+               \r
+               if ( $name == 'admin' )\r
+               {\r
+                       if ( array_key_exists('INPUTYESNO_TEMPLATE_ADMIN', $templates) && !empty($templates['INPUTYESNO_TEMPLATE_ADMIN']) )\r
+                       {\r
+                               $template = $templates['INPUTYESNO_TEMPLATE_ADMIN'];\r
+                       }\r
+                       else\r
+                       {\r
+                               $template = '<input onclick="selectCanLogin(true);" type="radio" name="<%name%>" value="<%yesval%>" <%yescheckedval%> id="<%yesid%>" />' . "\n"\r
+                                         . '<label for="<%yesid%>"><%yesvaltext%></label>' . "\n"\r
+                                         . '<input onclick="selectCanLogin(false);" type="radio" name="<%name%>" value="<%noval%>" <%nocheckedval%> id="<%noid%>"<%disabled%> />' . "\n"\r
+                                         . '<label for="<%noid%>"><%novaltext%></label>' . "\n";\r
+                       }\r
+               }\r
+               else\r
+               {\r
+                       if ( array_key_exists('INPUTYESNO_TEMPLATE_NORMAL', $templates) && !empty($templates['INPUTYESNO_TEMPLATE_NORMAL']) )\r
+                       {\r
+                               $template = $templates['INPUTYESNO_TEMPLATE_NORMAL'];\r
+                       }\r
+                       if ( $showlist )\r
+                       {\r
+                               if ( array_key_exists('SHOWLIST_LISTPLUG_TABLE_PLGOPT_OYESNO', $templates) && !empty($templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OYESNO']) )\r
+                               {\r
+                                       $template = $templates['SHOWLIST_LISTPLUG_TABLE_PLGOPT_OYESNO'];\r
+                               }\r
+                       }\r
+                       if ( !isset($template) )\r
+                       {\r
+                               $template = '<input type="radio" name="<%name%>" value="<%yesval%>" <%yescheckedval%> id="<%yesid%>" />' . "\n"\r
+                                         . '<label for="<%yesid%>"><%yesvaltext%></label>' . "\n"\r
+                                         . '<input type="radio" name="<%name%>" value="<%noval%>" <%nocheckedval%> id="<%noid%>"<%disabled%> />' . "\n"\r
+                                         . '<label for="<%noid%>"><%novaltext%></label>' . "\n";\r
+                       }\r
+               }\r
+               \r
+               //echo $template;\r
+               $id             = ENTITY::hsc($name);\r
+               $id             = str_replace('[', '-', $id);\r
+               $id             = str_replace(']', '-', $id);\r
+               $id1    = $id . ENTITY::hsc($value1);\r
+               $id2    = $id . ENTITY::hsc($value2);\r
+               $dat = array(\r
+                       'name'            => ENTITY::hsc($name),\r
+                       'yesval'                => ENTITY::hsc($value1),\r
+                       'noval'          => ENTITY::hsc($value2),\r
+                       'yesid'          => $id1,\r
+                       'noid'            => $id2,\r
+                       'yesvaltext'    => $yesval,\r
+                       'novaltext'      => $noval,\r
+                       'yescheckedval' => ($checkedval == $value1) ? ' checked="checked" tabindex="' . $tabindex . '"': '',\r
+                       'nocheckedval'  => ($checkedval != $value1) ? ' checked="checked" tabindex="' . $tabindex . '"': '',\r
+                       'disabled'        => ($isAdmin && $name == 'canlogin') ? ' disabled="disabled"' : '',\r
+               );\r
+               \r
+               if ( $showlist )\r
+               {\r
+                       return skinableTEMPLATE::fill($template, $dat);\r
+               }\r
+               else\r
+               {\r
+                       echo TEMPLATE::fill($template, $dat);\r
+               }\r
+               return;\r
+       }\r
 }\r