示例#1
0
/**
 * @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";
    }
}
示例#2
0
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";
    }
}
示例#3
0
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";
    }
}
示例#4
0
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";
    }
}
示例#6
0
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";
    }
}