/** * @param string $action * * @return string */ function tools_action_handler($action) { global $page, $lang, $plugins; $page->active_module = "tools"; $actions = array('php_info' => array('active' => 'php_info', 'file' => 'php_info.php'), 'tasks' => array('active' => 'tasks', 'file' => 'tasks.php'), 'backupdb' => array('active' => 'backupdb', 'file' => 'backupdb.php'), 'optimizedb' => array('active' => 'optimizedb', 'file' => 'optimizedb.php'), 'cache' => array('active' => 'cache', 'file' => 'cache.php'), 'recount_rebuild' => array('active' => 'recount_rebuild', 'file' => 'recount_rebuild.php'), 'maillogs' => array('active' => 'maillogs', 'file' => 'maillogs.php'), 'mailerrors' => array('active' => 'mailerrors', 'file' => 'mailerrors.php'), 'adminlog' => array('active' => 'adminlog', 'file' => 'adminlog.php'), 'modlog' => array('active' => 'modlog', 'file' => 'modlog.php'), 'warninglog' => array('active' => 'warninglog', 'file' => 'warninglog.php'), 'spamlog' => array('active' => 'spamlog', 'file' => 'spamlog.php'), 'system_health' => array('active' => 'system_health', 'file' => 'system_health.php'), 'file_verification' => array('active' => 'file_verification', 'file' => 'file_verification.php'), 'statistics' => array('active' => 'statistics', 'file' => 'statistics.php')); $actions = $plugins->run_hooks("admin_tools_action_handler", $actions); $sub_menu = array(); $sub_menu['10'] = array("id" => "adminlog", "title" => $lang->administrator_log, "link" => "index.php?module=tools-adminlog"); $sub_menu['20'] = array("id" => "modlog", "title" => $lang->moderator_log, "link" => "index.php?module=tools-modlog"); $sub_menu['30'] = array("id" => "maillogs", "title" => $lang->user_email_log, "link" => "index.php?module=tools-maillogs"); $sub_menu['40'] = array("id" => "mailerrors", "title" => $lang->system_mail_log, "link" => "index.php?module=tools-mailerrors"); $sub_menu['50'] = array("id" => "warninglog", "title" => $lang->user_warning_log, "link" => "index.php?module=tools-warninglog"); $sub_menu['60'] = array("id" => "spamlog", "title" => $lang->spam_log, "link" => "index.php?module=tools-spamlog"); $sub_menu['70'] = array("id" => "statistics", "title" => $lang->statistics, "link" => "index.php?module=tools-statistics"); $sub_menu = $plugins->run_hooks("admin_tools_menu_logs", $sub_menu); if (!isset($actions[$action])) { $page->active_action = "system_health"; } $sidebar = new SidebarItem($lang->logs); $sidebar->add_menu_items($sub_menu, $actions[$action]['active']); $page->sidebar .= $sidebar->get_markup(); if (isset($actions[$action])) { $page->active_action = $actions[$action]['active']; return $actions[$action]['file']; } else { return "system_health.php"; } }
function rpgsuite_action_handler($action) { global $page, $db, $lang, $plugins; $page->active_module = "rpgsuite"; $actions = array('groups' => array('active' => 'groups', 'file' => 'index.php'), 'group' => array('active' => 'groups', 'file' => 'group.php'), 'groupfields' => array('active' => 'groupfields', 'file' => 'groupfields.php'), 'ranks' => array('active' => 'ranks', 'file' => 'defaultranks.php'), 'otms' => array('active' => 'otms', 'file' => 'otms.php'), 'create' => array('active' => 'create', 'file' => 'creategroup.php')); if (!isset($actions[$action])) { $page->active_action = "groups"; } else { $page->active_action = $actions[$action]['active']; } $actions = $plugins->run_hooks("admin_rpgsuite_action_handler", $actions); if ($page->active_action == "groups") { // OOC Group List $sub_menu = array(); $groupquery = $db->simple_select('usergroups u', 'u.gid, u.title', 'not exists (select 1 from ' . TABLE_PREFIX . 'icgroups i where i.gid = u.gid)'); $subindex = 10; while ($group = $groupquery->fetch_array()) { $sub_menu[$subindex] = array("id" => "group_" . $group['gid'], "title" => $group['title'], "link" => "index.php?module=user-groups&action=edit&gid=" . $group['gid']); $subindex += 10; } $sub_menu = $plugins->run_hooks("admin_home_menu_quick_access", $sub_menu); $sidebar = new SidebarItem('OOC Groups'); $sidebar->add_menu_items($sub_menu, $page->active_action); $page->sidebar .= $sidebar->get_markup(); } if (isset($actions[$action])) { $page->active_action = $actions[$action]['active']; return $actions[$action]['file']; } else { $page->active_action = "groups"; return "index.php"; } }
function home_action_handler($action) { global $page, $db, $lang, $plugins; $page->active_module = "home"; $actions = array('preferences' => array('active' => 'preferences', 'file' => 'preferences.php'), 'credits' => array('active' => 'credits', 'file' => 'credits.php'), 'version_check' => array('active' => 'version_check', 'file' => 'version_check.php'), 'dashboard' => array('active' => 'dashboard', 'file' => 'index.php')); if (!isset($actions[$action])) { $page->active_action = "dashboard"; } else { $page->active_action = $actions[$action]['active']; } $actions = $plugins->run_hooks("admin_home_action_handler", $actions); if ($page->active_action == "dashboard") { // Quick Access $sub_menu = array(); $sub_menu['10'] = array("id" => "add_forum", "title" => $lang->add_new_forum, "link" => "index.php?module=forum-management&action=add"); $sub_menu['20'] = array("id" => "search", "title" => $lang->search_for_users, "link" => "index.php?module=user-users&action=search"); $sub_menu['30'] = array("id" => "themes", "title" => $lang->themes, "link" => "index.php?module=style-themes"); $sub_menu['40'] = array("id" => "templates", "title" => $lang->templates, "link" => "index.php?module=style-templates"); $sub_menu['50'] = array("id" => "plugins", "title" => $lang->plugins, "link" => "index.php?module=config-plugins"); $sub_menu['60'] = array("id" => "backupdb", "title" => $lang->database_backups, "link" => "index.php?module=tools-backupdb"); $sub_menu = $plugins->run_hooks("admin_home_menu_quick_access", $sub_menu); $sidebar = new SidebarItem($lang->quick_access); $sidebar->add_menu_items($sub_menu, $page->active_action); $page->sidebar .= $sidebar->get_markup(); // Online Administrators in the last 30 minutes $timecut = TIME_NOW - 60 * 30; $query = $db->simple_select("adminsessions", "uid, ip, useragent", "lastactive > {$timecut}"); $online_users = "<ul class=\"menu online_admins\">"; $online_admins = array(); // If there's only 1 user online, it has to be us. if ($db->num_rows($query) == 1) { $user = $db->fetch_array($query); global $mybb; // Are we on a mobile device? // Stolen from http://stackoverflow.com/a/10989424 $user_type = "desktop"; if (is_mobile($user["useragent"])) { $user_type = "mobile"; } $online_admins[$mybb->user['username']] = array("uid" => $mybb->user['uid'], "username" => $mybb->user['username'], "ip" => $user["ip"], "type" => $user_type); } else { $uid_in = array(); while ($user = $db->fetch_array($query)) { $uid_in[] = $user['uid']; $user_type = "desktop"; if (is_mobile($user['useragent'])) { $user_type = "mobile"; } $online_admins[$user['uid']] = array("ip" => $user['ip'], "type" => $user_type); } $query = $db->simple_select("users", "uid, username", "uid IN(" . implode(',', $uid_in) . ")", array('order_by' => 'username')); while ($user = $db->fetch_array($query)) { $online_admins[$user['username']] = array("uid" => $user['uid'], "username" => $user['username'], "ip" => $online_admins[$user['uid']]['ip'], "type" => $online_admins[$user['uid']]['type']); unset($online_admins[$user['uid']]); } } $done_users = array(); asort($online_admins); foreach ($online_admins as $user) { if (!isset($done_users["{$user['uid']}.{$user['ip']}"])) { if ($user['type'] == "mobile") { $class = " class=\"mobile_user\""; } else { $class = ""; } $ip_address = my_inet_ntop($db->unescape_binary($user['ip'])); $online_users .= "<li title=\"{$lang->ipaddress} {$ip_address}\"{$class}>" . build_profile_link($user['username'] . ' (' . $ip_address . ')', $user['uid'], "_blank") . "</li>"; $done_users["{$user['uid']}.{$user['ip']}"] = 1; } } $online_users .= "</ul>"; $sidebar = new SidebarItem($lang->online_admins); $sidebar->set_contents($online_users); $page->sidebar .= $sidebar->get_markup(); } if (isset($actions[$action])) { $page->active_action = $actions[$action]['active']; return $actions[$action]['file']; } else { $page->active_action = "dashboard"; return "index.php"; } }
function announcement_myplugins_actions($actions) { global $page, $lang, $info; $lang->load("config_announcement"); $actions['announcement'] = array("active" => "announcement", "file" => "../config/announcement.php"); $sub_menu = array(); $sub_menu['10'] = array("id" => "announcement", "title" => $lang->announcement, "link" => "index.php?module=myplugins-announcement"); $sidebar = new SidebarItem($lang->announcement); $sidebar->add_menu_items($sub_menu, $actions[$info]['active']); $page->sidebar .= $sidebar->get_markup(); return $actions; }
function cloudflare_action_handler($action) { global $page, $plugins; $page->active_module = "cloudflare"; $actions = array('overview' => array('active' => 'overview', 'file' => 'cloudflare_overview.php'), 'purge_cache' => array('active' => 'purge_cache', 'file' => 'cloudflare_purge_cache.php'), 'purge_preloader_cache' => array('active' => 'purge_preloader_cache', 'file' => 'cloudflare_purge_preloader_cache.php'), 'dev_mode' => array('active' => 'dev_mode', 'file' => 'cloudflare_dev_mode.php'), 'cache_lvl' => array('active' => 'cache_lvl', 'file' => 'cloudflare_cache_lvl.php'), 'security_lvl' => array('active' => 'security_lvl', 'file' => 'cloudflare_security_lvl.php'), 'statistics' => array('active' => 'statistics', 'file' => 'cloudflare_statistics.php'), 'recent_visitors' => array('active' => 'recent_visitors', 'file' => 'cloudflare_recent_visitors.php'), 'blacklist' => array('active' => 'blacklist', 'file' => 'cloudflare_blacklist.php'), 'whitelist' => array('active' => 'whitelist', 'file' => 'cloudflare_whitelist.php'), 'help' => array('active' => 'help', 'file' => 'cloudflare_help.php'), 'knowledge_base' => array('active' => 'knowledge_base', 'file' => 'cloudflare_knowledge_base.php'), 'website' => array('active' => 'website', 'file' => 'cloudflare_website.php'), 'about_plugin' => array('active' => 'about_plugin', 'file' => 'cloudflare_about_plugin.php'), 'check_for_updates' => array('active' => 'check_for_updates', 'file' => 'cloudflare_check_for_updates.php'), 'report_bug' => array('active' => 'report_bug', 'file' => 'cloudflare_report_bug.php'), 'news' => array('active' => 'news', 'file' => 'cloudflare_news.php'), 'networkmap' => array('active' => 'networkmap', 'file' => 'cloudflare_networkmap.php'), 'dns_active' => array('active' => 'dns_active', 'file' => 'cloudflare_dns_active.php'), 'dns_not_active' => array('active' => 'dns_not_active', 'file' => 'cloudflare_dns_not_active.php'), 'challenge' => array('active' => 'challenge', 'file' => 'cloudflare_challenge.php'), 'change_log' => array('active' => 'change_log', 'file' => 'cloudflare_change_log.php'), 'recent_visitors_48' => array('active' => 'recent_visitors_48', 'file' => 'cloudflare_recent_visitors_48.php'), 'check_calls' => array('active' => 'check_calls', 'file' => 'cloudflare_check_calls.php'), 'update_snapshot' => array('active' => 'update_snapshot', 'file' => 'cloudflare_update_snapshot.php'), 'ipv46' => array('active' => 'ipv46', 'file' => 'cloudflare_ipv46.php'), 'topthreats' => array('active' => 'topthreats', 'file' => 'cloudflare_topthreats.php'), 'whois' => array('active' => 'whois', 'file' => 'cloudflare_whois.php')); $actions = $plugins->run_hooks("admin_cloudflare_action_handler", $actions); $sub_menu = array(); $sub_menu['10'] = array("id" => "blacklist", "title" => "Black List", "link" => "index.php?module=cloudflare-blacklist"); $sub_menu['20'] = array("id" => "whitelist", "title" => "White List", "link" => "index.php?module=cloudflare-whitelist"); $sub_menu['30'] = array("id" => "challenge", "title" => "Challenge", "link" => "index.php?module=cloudflare-challenge"); $sub_menu['40'] = array("id" => "ipv46", "title" => "IPv6 Support", "link" => "index.php?module=cloudflare-ipv46"); $sub_menu['50'] = array("id" => "whois", "title" => "Whois Lookup", "link" => "index.php?module=cloudflare-whois"); $sub_menu = $plugins->run_hooks("admin_cloudflare_menu_access", $sub_menu); $sub_menu2 = array(); $sub_menu2['10'] = array("id" => "cache_lvl", "title" => "Cache Level", "link" => "index.php?module=cloudflare-cache_lvl"); $sub_menu2['20'] = array("id" => "purge_cache", "title" => "Purge Cache", "link" => "index.php?module=cloudflare-purge_cache"); $sub_menu2['30'] = array("id" => "purge_preloader_cache", "title" => "Purge Preloader Cache", "link" => "index.php?module=cloudflare-purge_preloader_cache"); $sub_menu2 = $plugins->run_hooks("admin_cloudflare_menu_cache", $sub_menu2); $sub_menu3 = array(); $sub_menu3['10'] = array("id" => "website", "title" => "Official Website", "link" => "index.php?module=cloudflare-website"); $sub_menu3['20'] = array("id" => "help", "title" => "Help Page", "link" => "index.php?module=cloudflare-help"); $sub_menu3['30'] = array("id" => "knowledge_base", "title" => "Knowledge Base", "link" => "index.php?module=cloudflare-knowledge_base"); $sub_menu3 = $plugins->run_hooks("admin_cloudflare_menu_help", $sub_menu3); $sub_menu4 = array(); $sub_menu4['10'] = array("id" => "about_plugin", "title" => "About Plugin", "link" => "index.php?module=cloudflare-about_plugin"); $sub_menu4['20'] = array("id" => "check_for_updates", "title" => "Check for Updates", "link" => "index.php?module=cloudflare-check_for_updates"); $sub_menu4['30'] = array("id" => "change_log", "title" => "Change Log", "link" => "index.php?module=cloudflare-change_log"); $sub_menu4['40'] = array("id" => "report_bug", "title" => "Report Bug", "link" => "index.php?module=cloudflare-report_bug"); $sub_men4 = $plugins->run_hooks("admin_cloudflare_menu_about", $sub_menu4); $sub_menu5 = array(); $sub_menu5['10'] = array("id" => "statistics", "title" => "Statistics", "link" => "index.php?module=cloudflare-statistics"); $sub_menu5['20'] = array("id" => "recent_visitors", "title" => "Recent Visitors", "link" => "index.php?module=cloudflare-recent_visitors"); $sub_menu5['40'] = array("id" => "update_snapshot", "title" => "Update Snapshot", "link" => "index.php?module=cloudflare-update_snapshot"); $sub_menu5 = $plugins->run_hooks("admin_cloudflare_menu_data", $sub_menu5); $sub_menu6 = array(); $sub_menu6['10'] = array("id" => "security_lvl", "title" => "Security Level", "link" => "index.php?module=cloudflare-security_lvl"); $sub_menu6['20'] = array("id" => "topthreats", "title" => "Top Threats", "link" => "index.php?module=cloudflare-topthreats"); $sub_menu6 = $plugins->run_hooks("admin_cloudflare_menu_security", $sub_menu6); if (!isset($actions[$action])) { $page->active_action = "overview"; } $sidebar = new SidebarItem("Access"); $sidebar->add_menu_items($sub_menu, $actions[$action]['active']); $page->sidebar .= $sidebar->get_markup(); $sidebar6 = new SidebarItem("Security"); $sidebar6->add_menu_items($sub_menu6, $actions[$action]['active']); $page->sidebar .= $sidebar6->get_markup(); $sidebar5 = new SidebarItem("Data"); $sidebar5->add_menu_items($sub_menu5, $actions[$action]['active']); $page->sidebar .= $sidebar5->get_markup(); $sidebar2 = new SidebarItem("Cache"); $sidebar2->add_menu_items($sub_menu2, $actions[$action]['active']); $page->sidebar .= $sidebar2->get_markup(); $sidebar3 = new SidebarItem("CloudFlare Help"); $sidebar3->add_menu_items($sub_menu3, $actions[$action]['active']); $page->sidebar .= $sidebar3->get_markup(); $sidebar4 = new SidebarItem("About Plugin"); $sidebar4->add_menu_items($sub_menu4, $actions[$action]['active']); $page->sidebar .= $sidebar4->get_markup(); if (isset($actions[$action])) { $page->active_action = $actions[$action]['active']; return $actions[$action]['file']; } else { return "cloudflare_overview.php"; } }
function home_action_handler($action) { global $page, $db, $lang, $plugins; $page->active_module = "home"; $actions = array('preferences' => array('active' => 'preferences', 'file' => 'preferences.php'), 'credits' => array('active' => 'credits', 'file' => 'credits.php'), 'version_check' => array('active' => 'version_check', 'file' => 'version_check.php'), 'dashboard' => array('active' => 'dashboard', 'file' => 'index.php')); if (!isset($actions[$action])) { $page->active_action = "dashboard"; } else { $page->active_action = $actions[$action]['active']; } $plugins->run_hooks_by_ref("admin_home_action_handler", $actions); if ($page->active_action == "dashboard") { // Quick Access $sub_menu = array(); $sub_menu['10'] = array("id" => "add_forum", "title" => $lang->add_new_forum, "link" => "index.php?module=forum/management&action=add"); $sub_menu['20'] = array("id" => "search", "title" => $lang->search_for_users, "link" => "index.php?module=user/users&action=search"); $sub_menu['30'] = array("id" => "themes", "title" => $lang->themes, "link" => "index.php?module=style/themes"); $sub_menu['40'] = array("id" => "templates", "title" => $lang->templates, "link" => "index.php?module=style/templates"); $sub_menu['50'] = array("id" => "plugins", "title" => $lang->plugins, "link" => "index.php?module=config/plugins"); $sub_menu['60'] = array("id" => "backupdb", "title" => $lang->database_backups, "link" => "index.php?module=tools/backupdb"); $plugins->run_hooks_by_ref("admin_home_menu_quick_access", $sub_menu); $sidebar = new SidebarItem($lang->quick_access); $sidebar->add_menu_items($sub_menu, $page->active_action); $page->sidebar .= $sidebar->get_markup(); // Online Administrators in the last 30 minutes $timecut = TIME_NOW - 60 * 30; $query = $db->simple_select("adminsessions", "uid, ip", "lastactive > {$timecut}"); $online_users = "<ul class=\"menu online_admins\">"; $online_admins = array(); // If there's only 1 user online, it has to be us. if ($db->num_rows($query) == 1) { global $mybb; $online_admins[$mybb->user['username']] = array("uid" => $mybb->user['uid'], "username" => $mybb->user['username'], "ip" => $db->fetch_field($query, "ip")); } else { $uid_in = array(); while ($user = $db->fetch_array($query)) { $uid_in[] = $user['uid']; $online_admins[$user['uid']] = array("uid" => $user['uid'], "username" => "", "ip" => $user['ip']); } $query = $db->simple_select("users", "uid, username", "uid IN(" . implode(',', $uid_in) . ")", array('order_by' => 'username')); while ($user = $db->fetch_array($query)) { $online_admins[$user['username']] = array("uid" => $user['uid'], "username" => $user['username'], "ip" => $online_admins[$user['uid']]['ip']); unset($online_admins[$user['uid']]); } } asort($online_admins); foreach ($online_admins as $user) { if (!$done_users["{$user['uid']}.{$user['ip']}"]) { if ($user['type'] == "mobile") { $class = " class=\"mobile_user\""; } else { $class = ""; } $online_users .= "<li{$class}>" . build_profile_link($user['username'], $user['uid']) . "</li>"; $done_users["{$user['uid']}.{$user['ip']}"] = 1; } } $online_users .= "</ul>"; $sidebar = new SidebarItem($lang->online_admins); $sidebar->_contents = $online_users; $page->sidebar .= $sidebar->get_markup(); } if (isset($actions[$action])) { $page->active_action = $actions[$action]['active']; return $actions[$action]['file']; } else { $page->active_action = "dashboard"; return "index.php"; } }