Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- add_action('admin_print_scripts','enqueue_sdrop');
- function enqueue_sdrop() {
- wp_enqueue_script( 'sdrop', get_bloginfo('template_directory') . '/jquery.sdrop.js', array('jquery'), '0.1' );
- }
- add_action('in_admin_header','printmenu');
- function printmenu() {
- global $menu,$submenu,$parent_file,$self,$pagenow,$plugin_page,$typenow,$submenu_file;
- // Copy the existing menu data
- $parent_items = $menu;
- $submenu_items = $submenu;
- // Now replace them with empty arrays to keep WP happy
- //$menu = $submenu = array();
- if( empty( $parent_items ) )
- return;
- // Setup array for menu items
- $wp_menu_items = array();
- // Default mode
- $current_mode = 'config';
- // Admin url
- $admin_path = admin_url();
- // Test stuff
- $test = array();
- // Loop over the menu items
- foreach( $parent_items as $key => $menu_data ) {
- // Skip seperators (they don't have a key 5)
- if( isset( $menu_data[5] ) ) {
- $menu_prefix = substr( $menu_data[5], 0, 10 );
- switch( $menu_prefix ) {
- // Move content types into one section
- case 'menu-posts' :
- case 'menu-pages' :
- case 'menu-media' :
- if( isset( $menu_data[2] ) ) {
- if( $menu_data[2] == $parent_file )
- $current_mode = 'content';
- $wp_menu_items['content'][$key] = $menu_data;
- $wp_menu_items['children'][$menu_data[2]] = $submenu_items[$menu_data[2]];
- }
- break;
- // And everything else into another
- default:
- $wp_menu_items['settings'][$key] = $menu_data;
- $wp_menu_items['children'][$menu_data[2]] = ( isset( $submenu_items[$menu_data[2]] ) ) ? $submenu_items[$menu_data[2]] : array();
- break;
- }
- }
- continue;
- }
- do_adminmenu_js();
- //print_page_info();
- // Dealing with active items
- if( !empty( $plugin_page ) ) {
- $parent_link = $pagenow .'?page='. $plugin_page;
- $menu_link = $plugin_page;
- }
- elseif( !empty( $submenu_file ) ) {
- $parent_link = $submenu_file;
- $menu_link = $submenu_file;
- }
- else {
- $parent_link = $pagenow;
- $menu_link = $pagenow;
- }
- print $menu_link; // Seems to be accurate across all pages (so far so good)
- $a = array();
- //echo get_admin_page_parent();aaaaa
- ?>
- <div id="admin-menu-toggle">
- <a id="sdrop-config" class="toggle<?php echo ( 'config' == $current_mode ) ? ' current-mode': ''; ?>" href="#">Settings</a>
- <a id="sdrop-content" class="toggle<?php echo ( 'content' == $current_mode ) ? ' current-mode': ''; ?>" href="#">Content</a>
- </div>
- <div class="clear"></div>
- <div id="sdrop-adminmenu">
- <?php if( 'config' == $current_mode ) : ?>
- <ul>
- <?php else : ?>
- <ul class="hidden">
- <?php endif; ?>
- <?php foreach( $wp_menu_items['settings'] as $k => $data ) : ?>
- <?php
- $current_parent = '';
- if( $parent_file == $data[2] )
- $current_parent = $parent_file;
- elseif( empty( $parent_file ) && $pagenow == $data[2] )
- $current_parent = $pagenow;
- ?>
- <li class="<?php echo $data[4]; if( '' != $current_parent ) echo ' active' ?>">
- <a href="<?php echo $data[2]; ?>"><?php echo $data[0]; ?></a>
- <?php if( isset( $submenu_items[$data[2]] ) ) : ?>
- <ul class="hidden submenu">
- <?php foreach( $submenu_items[$data[2]] as $k2 => $data2 ) : ?>
- <?php
- $check = $menu_link;
- // Damn appending nightmare
- $menu_hook = get_plugin_page_hook( $data2[2], $data[2] );
- if( 'index.php' != $data2[2] && file_exists(WP_PLUGIN_DIR . "/{$data2[2]}") ) {
- $data2[2] = 'admin.php?page='. $data2[2];
- $check = $parent_link;
- }
- elseif( !empty( $menu_hook) ) {
- $data2[2] = $data[2] . '?page='. $data2[2];
- $check = $parent_link;
- }
- ?>
- <li<?php if( $data2[2] == $check ) echo ' class="active"' ?>><a href="<?php echo $data2[2]; ?>"><?php echo $data2[0]; ?></a></li>
- <?php endforeach; ?>
- </ul>
- <?php endif; ?>
- </li>
- <?php endforeach; ?>
- </ul>
- <?php //print_r( $a ); ?>
- <?php if( 'content' == $current_mode ) : ?>
- <ul>
- <?php else : ?>
- <ul class="hidden">
- <?php endif; ?>
- <?php foreach( $wp_menu_items['content'] as $k => $data ) : ?>
- <li class="<?php echo $data[4]; if( $parent_file == $data[2] || ( empty( $parent_file ) && $pagenow == $data[2] ) ) echo ' active' ?>">
- <a href="<?php echo $data[2]; ?>"><?php echo $data[0]; ?></a>
- <?php if( isset( $submenu_items[$data[2]] ) ) : ?>
- <ul class="hidden submenu">
- <?php foreach( $wp_menu_items['children'][$data[2]] as $k2 => $data2 ) : ?>
- <?php
- $check = $menu_link;
- // Damn appending nightmare
- $menu_hook = get_plugin_page_hook( $data2[2], $data[2] );
- if( !empty( $typenow ) ) {
- }
- elseif( 'index.php' != $data2[2] && file_exists(WP_PLUGIN_DIR . "/{$data2[2]}") ) {
- $data2[2] = 'admin.php?page='. $data2[2];
- $check = $parent_link;
- }
- elseif( !empty( $menu_hook) ) {
- $data2[2] = $data[2] . '?page='. $data2[2];
- $check = $parent_link;
- }
- ?>
- <li<?php if( $data2[2] == $check ) echo ' class="active"' ?>><a href="<?php echo $data2[2]; ?>"><?php echo $data2[0]; ?></a></li>
- <?php endforeach; ?>
- </ul>
- <?php endif; ?>
- </li>
- <?php endforeach; ?>
- </ul>
- <div class="clear"></div>
- </div>
- <div class="clear"></div>
- <?php
- }
- add_action('admin_print_styles','adminmenu_css');
- function adminmenu_css() {
- global $is_IE;
- ?>
- <style type="text/css">
- /*
- #wpbody { margin-left:0!important; }
- #wpbody-content .wrap { margin-left:15px!important; }
- */
- <?php if( $is_IE ) echo '#wpbody { padding-top:30px; }' ?>
- #admin-menu-toggle { float:right;height:26px;line-height:26px;padding:20px 0 0;margin:0 15px 0 0;vertical-align:middle }
- #admin-menu-toggle a { display:block;padding:0 8px;margin:0 5px 0 0;float:right;-moz-border-radius: 5px 5px 0 0 }
- #admin-menu-toggle a.current-mode { padding:0 6px;margin:1px 5px 1px 0;background:#f1f1f1; }
- #screen-options-wrap,#contextual-help-wrap { margin:1px 0 0!important;background-color:white!important; }
- #wphead-info { display:none!important; }
- #sdrop-adminmenu { background-color:#f1f1f1;margin:0;padding:0;border:none;border-bottom:1px solid #ccc }
- #sdrop-adminmenu .hidden { visibility:hidden!important;display:none!important }
- #sdrop-adminmenu .count-0 { display:none!important; }
- #sdrop-adminmenu .pending-count { -moz-border-radius:5px;background:#a33;color:#fff;padding:2px 6px;font-size:10px }
- #sdrop-adminmenu ul,
- #sdrop-adminmenu li { list-style:none;margin:0; }
- #sdrop-adminmenu ul { margin-left:15px; }
- #sdrop-adminmenu ul.submenu { background:#fff;position:absolute;z-index:3000;border:1px solid #dfdfdf;margin-left:-31px }
- #sdrop-adminmenu ul li { display:block;float:left;position:relative;z-index:4000; }
- #sdrop-adminmenu ul.submenu li { float:none;border:none }
- #sdrop-adminmenu ul li.menu-top { padding-left:30px; }
- #sdrop-adminmenu ul li a { background-color:#f1f1f1;display:block;height:20px;line-height:20px;padding:5px 15px 5px 0;color:#888;text-decoration:none; }
- #sdrop-adminmenu ul.submenu li a { margin:0;display:block;width:150px;padding-left:15px;background-color:#fff; }
- #sdrop-adminmenu ul li.active,
- #sdrop-adminmenu ul li.active a { background-color:#fff; }
- #sdrop-adminmenu ul.submenu li.active,
- #sdrop-adminmenu ul.submenu li.active a { background-color:#f1f1f1; }
- #sdrop-adminmenu ul.submenu li a:hover { background-color:#f8f8f8 }
- #sdrop-adminmenu ul.submenu li.active a:hover { background-color:#f8f8f8 }
- .menu-top {
- background-image: url(<?php echo admin_url('images/menu.png'); ?>);background-position: -330px -32px;
- }
- /*
- Non-active icon positions
- */
- .menu-icon-appearance { background-position: 0 -32px; }
- .menu-icon-comments { background-position: -30px -32px; }
- .menu-icon-dashboard { background-position: -60px -32px; }
- .menu-icon-links { background-position: -90px -32px; }
- .menu-icon-media { background-position: -120px -32px; }
- .menu-icon-page { background-position: -150px -32px; }
- .menu-icon-plugins { background-position: -180px -32px; }
- .menu-icon-tools { background-position: -210px -32px; }
- .menu-icon-settings { background-position: -240px -32px; }
- .menu-icon-post { background-position: -270px -32px; }
- .menu-icon-users { background-position: -300px -32px; }
- /*
- Active icon positions
- */
- .menu-icon-appearance.active { background-position: 0 0; }
- .menu-icon-comments.active { background-position: -30px 0; }
- .menu-icon-dashboard.active { background-position: -60px 0; }
- .menu-icon-links.active { background-position: -90px 0; }
- .menu-icon-media.active { background-position: -120px 0; }
- .menu-icon-page.active { background-position: -150px 0; }
- .menu-icon-plugins.active { background-position: -180px 0; }
- .menu-icon-tools.active { background-position: -210px 0; }
- .menu-icon-settings.active { background-position: -240px 0; }
- .menu-icon-post.active { background-position: -270px 0; }
- .menu-icon-users.active { background-position: -300px 0; }
- </style>
- <?php
- }
- function do_adminmenu_js() {
- ?>
- <script type="text/javascript">
- jQuery(document).ready(function($){
- $('#sdrop-adminmenu').sDrop();
- $('#sdrop-content').click(function(){
- if( $(this).hasClass('current-mode') )
- return false;
- $('#sdrop-adminmenu > ul').toggleClass('hidden');
- $('#admin-menu-toggle a').toggleClass('current-mode');
- return false;
- });
- $('#sdrop-config').click(function(){
- if( $(this).hasClass('current-mode') )
- return false;
- $('#sdrop-adminmenu > ul').toggleClass('hidden');
- $('#admin-menu-toggle a').toggleClass('current-mode');
- return false;
- });
- $('.hidden').each(function(){
- if( $(this).is(':visible') )
- $(this).hide();
- });
- });
- </script>
- <?php
- }
- function print_page_info() {
- global $parent_file,$self,$pagenow,$plugin_page,$typenow,$submenu_file;
- $var_to_print = array(
- 'Parent file' => $parent_file,
- 'Pagenow' => $pagenow,
- 'Typenow' => $typenow,
- 'Submenu file' => $submenu_file,
- 'Plugin page' => $plugin_page
- );
- print '<br />';print '<br />';print '<br />';
- $heads = array_keys( $var_to_print );$bodys = array_values( $var_to_print );
- print '<table><tr>';
- foreach( $heads as $description ) print '<th style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;padding:0 20px 0 0;text-align:left">'.$description.'</th>';
- print '</tr>';
- print '<tr>';
- foreach( $bodys as $description ) print '<td style="border-right:1px solid #ccc;padding:0 20px 0 0">'.$description.'</td>';
- print '</tr></table>';
- }
- /**
- require_once( ABSPATH . '/wp-admin/includes/theme.php');
- print '<pre>';
- print_r( get_page_templates() );
- print '</pre>';
- /**/
- /*
- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Request Parent Pagenow Typenow Submenu file Plugin page
- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
- themes.php themes.php themes.php
- widgets.php themes.php widgets.php
- themes.php?page=custom-background themes.php themes.php custom-background
- index.php?page=translatable_demo index.php index.php translatable_demo
- admin.php?page=wp-polls/polls-manager.php wp-polls/polls-manager.php admin.php wp-polls/polls-manager.php
- admin.php?page=wp-polls/polls-add.php wp-polls/polls-manager.php admin.php wp-polls/polls-add.php
- edit-comments.php edit-comments.php
- edit.php edit.php edit.php post edit.php
- post-new.php edit.php post-new.php post post-new.php
- edit-tags.php?taxonomy=post_tag edit.php edit-tags.php ** edit-tags.php?taxonomy=post_tag
- edit-tags.php?taxonomy=category edit.php edit-tags.php ** edit-tags.php?taxonomy=category
- edit.php?post_type=book edit.php?post_type=book edit.php book edit.php?post_type=book
- post-new.php?post_type=book edit.php?post_type=book post-new.php book post-new.php?post_type=book
- edit-tags.php?taxonomy=category&post_type=book edit.php?post_type=book edit-tags.php book edit-tags.php?taxonomy=category&post_type=book
- edit-tags.php?taxonomy=post_tag&post_type=book edit.php?post_type=book edit-tags.php book edit-tags.php?taxonomy=post_tag&post_type=book
- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
- NOTE: ** items under typenow should be set, but are not strangely
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement