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&skinid=<%skinid%>'\r
+ . '&type=<%skintype%>"><%skintype%></a> (<a tabindex="<%tabindex%>" href="index.php?'\r
+ . 'action=skinremovetype&skinid=<%skinid%>&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 ' "' . $nucleus['codename'] . '"';\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&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