/** * Draws menu with sections and subsections */ function osc_draw_admin_menu() { // actual url $actual_url = urldecode($_SERVER['QUERY_STRING']); $actual_page = Params::getParam('page'); $something_selected = false; $adminMenu = AdminMenu::newInstance(); $aMenu = $adminMenu->get_array_menu(); $current_menu_id = osc_current_menu(); $is_moderator = osc_is_moderator(); // Remove hook admin_menu when osclass 4.0 be released // hack, compatibility with menu plugins. ob_start(); osc_run_hook('admin_menu'); $plugins_out = ob_get_contents(); ob_end_clean(); // clean old menus (remove h3 element) $plugins_out = preg_replace('|<h3><a .*>(.*)</a></h3>|', '<li class="submenu-divide">$1</li>', $plugins_out); $plugins_out = preg_replace('|<ul>|', '', $plugins_out); $plugins_out = preg_replace('|</ul>|', '', $plugins_out); // ----------------------------------------------------- $sub_current = false; $sMenu = '<!-- menu -->' . PHP_EOL; $sMenu .= '<div id="sidebar">' . PHP_EOL; $sMenu .= '<ul class="oscmenu">' . PHP_EOL; // find current menu section $current_menu = ''; $priority = 0; $urlLenght = 0; foreach ($aMenu as $key => $value) { // --- submenu section if (array_key_exists('sub', $value)) { $aSubmenu = $value['sub']; foreach ($aSubmenu as $aSub) { $credential_sub = $aSub[4]; if (!$is_moderator || $is_moderator && $credential_sub == 'moderator') { // show $url_submenu = $aSub[1]; $url_submenu = str_replace(osc_admin_base_url(true) . '?', '', $url_submenu); $url_submenu = str_replace(osc_admin_base_url(), '', $url_submenu); if (strpos($actual_url, $url_submenu, 0) === 0 && $priority <= 2 && $url_menu != '') { if ($urlLenght < strlen($url_submenu)) { $urlLenght = strlen($url_submenu); $sub_current = true; $current_menu = $value[2]; $priority = 2; } } else { if ($actual_page == $value[2] && $priority < 1) { $sub_current = true; $current_menu = $value[2]; $priority = 1; } } } } } // --- menu section $url_menu = $value[1]; $url_menu = str_replace(osc_admin_base_url(true) . '?', '', $url_menu); $url_menu = str_replace(osc_admin_base_url(), '', $url_menu); if (@strpos($actual_url, $url_menu) === 0 && $priority <= 2 && $url_menu != '') { if ($urlLenght < strlen($url_menu)) { $urlLenght = strlen($url_menu); $sub_current = true; $current_menu = $value[2]; $priority = 2; } } else { if ($actual_page == $value[2] && $priority < 1) { $sub_current = true; $current_menu = $value[2]; $priority = 1; } else { if ($url_menu == $actual_page) { $sub_current = true; $current_menu = $value[2]; $priority = 0; } } } } $value = array(); foreach ($aMenu as $key => $value) { $sSubmenu = ""; $credential = $value[3]; if (!$is_moderator || $is_moderator && $credential == 'moderator') { // show $class = ''; if (array_key_exists('sub', $value)) { // submenu $aSubmenu = $value['sub']; if ($aSubmenu) { $sSubmenu .= "<ul>" . PHP_EOL; foreach ($aSubmenu as $aSub) { $credential_sub = $aSub[4]; if (!$is_moderator || $is_moderator && $credential_sub == 'moderator') { // show $sSubmenu .= '<li><a id="' . $aSub[2] . '" href="' . $aSub[1] . '">' . $aSub[0] . '</a></li>' . PHP_EOL; } } // hardcoded plugins/themes under menu plugins if ($key == 'plugins' && !$is_moderator) { $sSubmenu .= $plugins_out; } $sSubmenu .= '<li class="arrow"></li>' . PHP_EOL; $sSubmenu .= "</ul>" . PHP_EOL; } } $class = osc_apply_filter('current_admin_menu_' . $value[2], $class); $icon = ''; if (isset($value[4])) { $icon = '<div class="ico ico-48" style="background-image:url(\'' . $value[4] . '\');">'; } else { $icon = '<div class="ico ico-48 ico-' . $value[2] . '">'; } if ($current_menu == $value[2]) { $class = 'current'; } $sMenu .= '<li id="menu_' . $value[2] . '" class="' . $class . '">' . PHP_EOL; $sMenu .= '<h3><a id="' . $value[2] . '" href="' . $value[1] . '">' . $icon . '</div>' . $value[0] . '</a></h3>' . PHP_EOL; $sMenu .= $sSubmenu; $sMenu .= '</li>' . PHP_EOL; } } $sMenu .= '</ul>' . PHP_EOL; $sMenu .= '<div id="show-more">' . PHP_EOL; $sMenu .= '<h3><a id="stats" href="#"><div class="ico ico-48 ico-more"></div>' . __('Show more') . '</a></h3>' . PHP_EOL; $sMenu .= '<ul id="hidden-menus">' . PHP_EOL; $sMenu .= '</ul>' . PHP_EOL; $sMenu .= '</div>' . PHP_EOL; $sMenu .= '<div class="osc_switch_mode"><a id="osc_toolbar_switch_mode" href="' . osc_admin_base_url(true) . '?page=ajax&action=runhook&hook=compactmode"><div class="background"></div><div class="skin"></div><div class="trigger"></div></a><h3>' . __('Compact') . '</h3></div>' . PHP_EOL; $sMenu .= '</div>' . PHP_EOL; $sMenu .= '<!-- menu end -->' . PHP_EOL; echo $sMenu; }
/** * Draws menu with sections and subsections */ function osc_draw_admin_menu() { $something_selected = false; $adminMenu = AdminMenu::newInstance(); $aMenu = $adminMenu->get_array_menu(); $current_menu_id = osc_current_menu(); $is_moderator = osc_is_moderator(); // Remove hook admin_menu when osclass 4.0 be released // hack, compatibility with menu plugins. ob_start(); osc_run_hook('admin_menu'); $plugins_out = ob_get_contents(); ob_end_clean(); // clean old menus (remove h3 element) $plugins_out = preg_replace('|<h3><a .*>(.*)</a></h3>|', '<li class="submenu-divide">$1</li>', $plugins_out); $plugins_out = preg_replace('|<ul>|', '', $plugins_out); $plugins_out = preg_replace('|</ul>|', '', $plugins_out); // ----------------------------------------------------- $sMenu = '<!-- menu -->' . PHP_EOL; $sMenu .= '<div id="sidebar">' . PHP_EOL; $sMenu .= '<ul class="oscmenu">' . PHP_EOL; foreach ($aMenu as $key => $value) { $sSubmenu = ""; $credential = $value[3]; if (!$is_moderator || $is_moderator && $credential == 'moderator') { // show if (array_key_exists('sub', $value)) { // submenu $aSubmenu = $value['sub']; if ($aSubmenu) { $sSubmenu .= "<ul>" . PHP_EOL; foreach ($aSubmenu as $aSub) { $credential_sub = $aSub[4]; if (!$is_moderator || $is_moderator && $credential_sub == 'moderator') { // show $sSubmenu .= '<li><a id="' . $aSub[2] . '" href="' . $aSub[1] . '">' . $aSub[0] . '</a></li>' . PHP_EOL; } } // hardcoded plugins/themes under menu plugins if ($key == 'plugins' && !$is_moderator) { // preprocess plugin_out, remove all tags unless // <li> tags $sSubmenu .= $plugins_out; } $sSubmenu .= '<li class="arrow"></li>' . PHP_EOL; $sSubmenu .= "</ul>" . PHP_EOL; } } $class = ''; if ($current_menu_id == $value[2]) { $class = 'current'; $something_selected = true; } $icon = ''; if (isset($value[4])) { $icon = '<div class="ico ico-48" style="background-image:url(\'' . $value[4] . '\');">'; } else { $icon = '<div class="ico ico-48 ico-' . $value[2] . '">'; } $sMenu .= '<li id="menu_' . $value[2] . '" class="' . $class . '">' . PHP_EOL; $sMenu .= '<h3><a id="' . $value[2] . '" href="' . $value[1] . '">' . $icon . '</div>' . $value[0] . '</a></h3>' . PHP_EOL; $sMenu .= $sSubmenu; $sMenu .= '</li>' . PHP_EOL; } } $sMenu .= '</ul>' . PHP_EOL; $sMenu .= '<div id="show-more">' . PHP_EOL; $sMenu .= '<h3><a id="stats" href="#"><div class="ico ico-48 ico-more"></div>' . __('Show more') . '</a></h3>' . PHP_EOL; $sMenu .= '<ul id="hidden-menus">' . PHP_EOL; $sMenu .= '</ul>' . PHP_EOL; $sMenu .= '</div>' . PHP_EOL; $sMenu .= '<div class="osc_switch_mode"><a id="osc_toolbar_switch_mode" href="' . osc_admin_base_url(true) . '?page=ajax&action=runhook&hook=compactmode"><div class="background"></div><div class="skin"></div><div class="trigger"></div></a><h3>' . __('Compact') . '</h3></div>' . PHP_EOL; $sMenu .= '</div>' . PHP_EOL; $sMenu .= '<!-- menu end -->' . PHP_EOL; echo $sMenu; }