";print_r($menu);print_r($submenu);echo "";
// Plugins: hack $menu & $submenu before I butcher them
$menu = apply_filters( 'pre_ozh_adminmenu_menu', $menu );
$submenu = apply_filters( 'pre_ozh_adminmenu_submenu', $submenu );
$ozh_menu = '
";
// Plugins: hack $ozh_menu now it's complete
$ozh_menu = apply_filters( 'post_ozh_adminmenu_ozh_menu', $ozh_menu );
if ( isset( $plugin_icons ) ) {
global $text_direction;
$align = ($text_direction == 'rtl' ? 'right' : 'left');
echo "\n".'\n";
}
echo $ozh_menu;
}
function wp_ozh_adminmenu_blogtitle() {
$blogname = get_bloginfo('name', 'display');
if ( '' == $blogname )
$blogname = ' ';
$title_class = '';
if ( function_exists('mb_strlen') ) {
if ( mb_strlen($blogname, 'UTF-8') > 30 )
$title_class = 'class="long-title"';
} else {
if ( strlen($blogname) > 30 )
$title_class = 'class="long-title"';
}
$url = trailingslashit( get_bloginfo('url') );
return "$blogname » ";
}
function wp_ozh_adminmenu_sanitize_id($url) {
$url = preg_replace('/^customize.php\?return=.*$/', 'customize', $url);
$url = preg_replace('/(&|&|&)?_wpnonce=([^&]+)/', '', $url);
return str_replace(array('.php','.','/','?','='),array('','_','_','_','_'),$url);
}
function wp_ozh_adminmenu_js() {
global $wp_ozh_adminmenu;
$toomanyplugins = $wp_ozh_adminmenu['too_many_plugins'];
if( empty($toomanyplugins) ) {
$defaults = wp_ozh_adminmenu_defaults();
$toomanyplugins = $defaults['too_many_plugins'];
unset( $defaults );
}
$plugin_url = wp_ozh_adminmenu_pluginurl();
$insert_main_js = '';
echo <<
$insert_main_js
JS;
}
function wp_ozh_adminmenu_css() {
global $wp_ozh_adminmenu, $pagenow, $text_direction;
// $submenu = ($wp_ozh_adminmenu['display_submenu'] or ($pagenow == "media-upload.php") ) ? 1 : 0;
// Making links relative so they're more readable and shorter in the query string (also made relative in the .css.php)
$plugin = wp_ozh_adminmenu_pluginurl().'inc/';
// query vars
$query = array(
'v' => OZH_MENU_VER,
'p' => wp_make_link_relative( $plugin ),
'a' => wp_make_link_relative( trailingslashit( get_admin_url() ) ),
'i' => $wp_ozh_adminmenu['icons'],
'w' => $wp_ozh_adminmenu['wpicons'],
'm' => $wp_ozh_adminmenu['minimode'],
'c' => $wp_ozh_adminmenu['compact'],
'h' => $wp_ozh_adminmenu['hidebubble'],
'g' => $wp_ozh_adminmenu['grad'], // menu color
'n' => $wp_ozh_adminmenu['nograd'], // disable gradient bg
'd' => ($text_direction == 'rtl' ? 'right' : 'left'), // right-to-left locale?
);
$query = http_build_query($query);
echo " \n";
}
function wp_ozh_adminmenu_head() {
wp_ozh_adminmenu_css();
wp_ozh_adminmenu_js();
}
// Set defaults
function wp_ozh_adminmenu_defaults() {
return array(
'grad' => '#676768',
'nograd' => 0,
'compact' => 0,
'minimode' => 0,
'hidebubble' => 0,
'too_many_plugins' => 30,
'toplinks' => 1,
'icons' => 1,
'wpicons' => 1,
);
}
// Read plugin options or set default values
function wp_ozh_adminmenu_init() {
global $wp_ozh_adminmenu, $plugin_page;
if ($plugin_page == 'ozh_admin_menu')
wp_ozh_adminmenu_load_page();
if (isset($_POST['ozh_adminmenu']) && ($_POST['ozh_adminmenu'] == 1) )
wp_ozh_adminmenu_processform();
$defaults = wp_ozh_adminmenu_defaults();
if (!is_array($wp_ozh_adminmenu) || !count($wp_ozh_adminmenu)) {
$wp_ozh_adminmenu = (array)get_option('ozh_adminmenu');
unset($wp_ozh_adminmenu[0]);
}
// Allow plugins to modify the config
$wp_ozh_adminmenu = apply_filters( 'ozh_adminmenu_init_config', array_merge( $defaults, $wp_ozh_adminmenu ) );
// Cannot have wpicons == 0 && compact == 1
if ($wp_ozh_adminmenu['compact'] == 1)
$wp_ozh_adminmenu['wpicons'] = 1;
// upon Fluency activation+deactivation, too_many_plugins can be 0, let's fix this
if (!$wp_ozh_adminmenu['too_many_plugins']) $wp_ozh_adminmenu['too_many_plugins'] = 30;
// On minimode, add a Logout link to the Users menu
if ($wp_ozh_adminmenu['minimode'])
add_users_page(__('Log Out'), __('Log Out'), 'read', 'ozh_admin_menu_logout');
}
// Stuff to do when loading the admin plugin page
function wp_ozh_adminmenu_load_page() {
wp_ozh_adminmenu_load_text_domain();
}
// Hooked into 'ozh_adminmenu_icon', this function give this plugin its own icon
function wp_ozh_adminmenu_customicon($in) {
return wp_ozh_adminmenu_pluginurl().'inc/images/ozh.png';
}
// Add option page, hook Farbtastic in
function wp_ozh_adminmenu_add_page() {
$page = add_options_page('Admin Drop Down Menu', 'Admin Menu', 'manage_options', 'ozh_admin_menu', 'wp_ozh_adminmenu_options_page_includes');
add_action('admin_print_scripts-' . $page, 'wp_ozh_adminmenu_add_farbtastic');
add_action('admin_print_styles-' . $page, 'wp_ozh_adminmenu_add_farbtastic');
}
// Actually add Farbtastic
function wp_ozh_adminmenu_add_farbtastic() {
wp_enqueue_script('farbtastic');
wp_enqueue_style('farbtastic');
}
function wp_ozh_adminmenu_options_page_includes() {
require_once(dirname(__FILE__).'/options.php');
wp_ozh_adminmenu_options_page();
}
// Return plugin URL (SSL pref compliant) (trailing slash)
function wp_ozh_adminmenu_pluginurl() {
return plugin_dir_url( dirname(__FILE__) );
}
// Add the 'Settings' link to the plugin page
function wp_ozh_adminmenu_plugin_actions($links) {
$links[] = "Settings ";
return $links;
}
// Translation wrapper
function wp_ozh_adminmenu__($string) {
// return "$string "; // The debugging stuff so I'm sure I didnt miss any of the translatable string
return __($string, 'adminmenu');
}
// Load translation file if any
function wp_ozh_adminmenu_load_text_domain() {
$locale = get_locale();
$mofile = WP_PLUGIN_DIR.'/'.plugin_basename(dirname(__FILE__)).'/translations/adminmenu' . '-' . $locale . '.mo';
load_textdomain('adminmenu', $mofile);
}
function wp_ozh_adminmenu_footer() {
echo <<Thank you for using Admin Drop Down Menu , a wonderful plugin by Ozh
HTML;
}
// Process $_POST
function wp_ozh_adminmenu_processform() {
global $wp_ozh_adminmenu;
check_admin_referer('ozh-adminmenu');
// Debug:
// echo "";echo htmlentities(print_r($_POST,true));echo " ";
switch ($_POST['action']) {
case 'update_options':
$defaults = wp_ozh_adminmenu_defaults();
foreach ($_POST as $k=>$v) {
$k = str_replace('oam_','',$k);
if (array_key_exists($k, $defaults)) {
$options[$k] = esc_attr( $v );
}
}
if (!update_option('ozh_adminmenu', $options))
add_option('ozh_adminmenu', $options);
$wp_ozh_adminmenu = array_merge( (array)$wp_ozh_adminmenu, $options );
$msg = wp_ozh_adminmenu__("updated");
break;
case 'reset_options':
delete_option('ozh_adminmenu');
$msg = wp_ozh_adminmenu__("deleted");
break;
}
$message = '';
$message .= '
'.sprintf(wp_ozh_adminmenu__('Admin Drop Down Menu settings %s '), $msg)."
\n";
$message .= "
\n";
add_action('admin_notices', function() use ($message) {echo $message;} );
}