Example #1
0
/**
 * get default menu set for admin
 *
 * @return menu
 */
function Core_adminMenusGetDefault()
{
    $menus = Core_cacheLoad('admin', 'menus-0');
    if (!$menus) {
        $menus = AdminVars::getByAdminId('admin_menu', 0);
        if ($menus) {
            $menus = json_decode($menus);
        } else {
            global $PLUGINS;
            // { setup standard menu items
            $menus = array('Pages' => array('_link' => 'pages.php'), 'Site Options' => array('General' => array('_link' => 'siteoptions.php'), 'Languages' => array('_link' => 'javascript:Core_screen(\'CoreSiteoptions\', \'js:Languages\')'), 'Locations' => array('_link' => 'javascript:Core_screen(\'CoreSiteoptions\', \'js:Locations\')'), 'Menus' => array('_link' => 'javascript:Core_screen(\'CoreSiteoptions\', \'js:Menus\')'), 'Emails' => array('_link' => 'javascript:Core_screen(\'CoreSiteoptions\', \'js:Emails\')'), 'Users' => array('_link' => 'siteoptions.php?page=users'), 'Plugins' => array('_link' => 'siteoptions.php?page=plugins'), 'Themes' => array('_link' => 'siteoptions.php?page=themes'), 'Timed Events' => array('_link' => 'javascript:Core_screen(\'CoreSiteoptions\', \'js:Cron\')')));
            // }
            // { add custom items (from plugins)
            foreach ($PLUGINS as $pname => $p) {
                if (!isset($p['admin']) || !isset($p['admin']['menu'])) {
                    continue;
                }
                foreach ($p['admin']['menu'] as $name => $page) {
                    if (preg_match('/[^a-zA-Z0-9 >]/', $name)) {
                        continue;
                        // illegal characters in name
                    }
                    if (strpos($page, 'javascript:') === 0) {
                        $link = $page;
                    } else {
                        $link = strpos($page, 'js:') === false ? $page : 'javascript:Core_screen(\'' . $pname . '\', \'' . $page . '\');';
                    }
                    $json = '{"' . str_replace('>', '":{"', $name) . '":{"_link":"' . $link . '"}}' . str_repeat('}', substr_count($name, '>'));
                    $menus = array_merge_recursive($menus, json_decode($json, true));
                }
            }
            // }
            // { add final items
            // __('View Site')
            $menus['View Site'] = array('_link' => '/', '_target' => '_blank');
            // __('Log Out')
            $menus['Log Out'] = array('_link' => '/?logout=1');
            // __('Misc') __('File Manager')
            $menus['Misc']['File Manager'] = array('_link' => 'javascript:return window.open(\'/j/kfm/\', \'kfm\', ' . '\'modal,width=800,height=640\')');
            // }
            AdminVars::set('admin_menu', json_encode($menus));
        }
        Core_cacheSave('admin', 'menus-0', $menus);
    }
    return $menus;
}