/**
 * @return bool|null
 */
function _mw_adminimize_check_to_remove_admin_notices()
{
    // Exclude super admin.
    if (_mw_adminimize_exclude_super_admin()) {
        return;
    }
    $user_roles = _mw_adminimize_get_all_user_roles();
    foreach ($user_roles as $role) {
        $disabled_global_option_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_global_option_' . $role . '_items');
    }
    foreach ($user_roles as $role) {
        if (!isset($disabled_global_option_[$role]['0'])) {
            $disabled_global_option_[$role]['0'] = '';
        }
    }
    $remove_admin_notices = FALSE;
    foreach ($user_roles as $role) {
        $user = wp_get_current_user();
        if (is_array($user->roles) && in_array($role, $user->roles)) {
            if (_mw_adminimize_current_user_has_role($role) && isset($disabled_global_option_[$role]) && is_array($disabled_global_option_[$role])) {
                $remove_admin_notices = _mw_adminimize_recursive_in_array('.admin-notices', $disabled_global_option_[$role]);
            }
        }
    }
    return $remove_admin_notices;
}
Пример #2
0
/**
 * Recursive search in array.
 *
 * @param $needle
 * @param $haystack
 *
 * @return bool
 */
function _mw_adminimize_recursive_in_array($needle, $haystack)
{
    if ('' === $haystack) {
        return FALSE;
    }
    if (!$haystack) {
        return FALSE;
    }
    foreach ($haystack as $stalk) {
        if ($needle === $stalk || is_array($stalk) && _mw_adminimize_recursive_in_array($needle, $stalk)) {
            return TRUE;
        }
    }
    return FALSE;
}
Пример #3
0
/**
 * Remove the dashboard
 *
 * @author Basic Austin Matzko
 * @see    http://www.ilfilosofo.com/blog/2006/05/24/plugin-remove-the-wordpress-dashboard/
 */
function _mw_adminimize_remove_dashboard()
{
    global $menu, $user_ID, $wp_version;
    $disabled_menu_ = '';
    $disabled_submenu_ = '';
    $user_roles = _mw_adminimize_get_all_user_roles();
    foreach ($user_roles as $role) {
        $disabled_menu_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_menu_' . $role . '_items');
        $disabled_submenu_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_submenu_' . $role . '_items');
    }
    $disabled_menu_all = array();
    $disabled_submenu_all = array();
    foreach ($user_roles as $role) {
        array_push($disabled_menu_all, $disabled_menu_[$role]);
        array_push($disabled_submenu_all, $disabled_submenu_[$role]);
    }
    // remove dashboard
    if ($disabled_menu_all != '' || $disabled_submenu_all != '') {
        foreach ($user_roles as $role) {
            if (current_user_can($role)) {
                if (_mw_adminimize_recursive_in_array('index.php', $disabled_menu_[$role]) || _mw_adminimize_recursive_in_array('index.php', $disabled_submenu_[$role])) {
                    $redirect = TRUE;
                } else {
                    $redirect = FALSE;
                }
            }
        }
        // redirect option, if Dashboard is inactive
        if (isset($redirect) && $redirect) {
            $_mw_adminimize_db_redirect = _mw_adminimize_get_option_value('_mw_adminimize_db_redirect');
            $_mw_adminimize_db_redirect_admin_url = get_option('siteurl') . '/wp-admin/';
            switch ($_mw_adminimize_db_redirect) {
                case 0:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'profile.php';
                    break;
                case 1:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php';
                    break;
                case 2:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php?post_type=page';
                    break;
                case 3:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'post-new.php';
                    break;
                case 4:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'page-new.php';
                    break;
                case 5:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit-comments.php';
                    break;
                case 6:
                    $_mw_adminimize_db_redirect = _mw_adminimize_get_option_value('_mw_adminimize_db_redirect_txt');
                    break;
            }
            // fallback for WP smaller 3.0
            if (version_compare($wp_version, "3.0alpha", "<") && 'edit.php?post_type=page' == $_mw_adminimize_db_redirect) {
                $_mw_adminimize_db_redirect = 'edit-pages.php';
            }
            $the_user = new WP_User($user_ID);
            reset($menu);
            $page = key($menu);
            while (__('Dashboard') != $menu[$page][0] && next($menu) || __('Dashboard') != $menu[$page][1] && next($menu)) {
                $page = key($menu);
            }
            if (__('Dashboard') == $menu[$page][0] || __('Dashboard') == $menu[$page][1]) {
                unset($menu[$page]);
            }
            reset($menu);
            $page = key($menu);
            while (!$the_user->has_cap($menu[$page][1]) && next($menu)) {
                $page = key($menu);
            }
            if (preg_match('#wp-admin/?(index.php)?$#', $_SERVER['REQUEST_URI'])) {
                wp_redirect($_mw_adminimize_db_redirect);
            }
        }
    }
}
Пример #4
0
/**
 * Remove Admin Bar
 */
function _mw_adminimize_remove_admin_bar()
{
    // exclude super admin
    if (_mw_adminimize_exclude_super_admin()) {
        return NULL;
    }
    global $wp_version;
    $user_roles = _mw_adminimize_get_all_user_roles();
    foreach ($user_roles as $role) {
        $disabled_global_option_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_global_option_' . $role . '_items');
    }
    foreach ($user_roles as $role) {
        if (!isset($disabled_global_option_[$role]['0'])) {
            $disabled_global_option_[$role]['0'] = '';
        }
    }
    $remove_adminbar = FALSE;
    // new 1.7.8
    foreach ($user_roles as $role) {
        $user = wp_get_current_user();
        if (is_array($user->roles) && in_array($role, $user->roles)) {
            if (_mw_adminimize_current_user_has_role($role) && isset($disabled_global_option_[$role]) && is_array($disabled_global_option_[$role])) {
                if (_mw_adminimize_recursive_in_array('.show-admin-bar', $disabled_global_option_[$role])) {
                    $remove_adminbar = TRUE;
                }
            }
        }
    }
    if ($remove_adminbar) {
        // for deactivate admin bar in WP smaller WP 3.3
        if (version_compare($wp_version, '3.3alpha', '<=')) {
            add_filter('show_admin_bar', '__return_false');
            wp_deregister_script('admin-bar');
            wp_deregister_style('admin-bar');
            remove_action('wp_footer', 'wp_admin_bar_render', 1000);
            remove_action('wp_head', '_admin_bar_bump_cb');
        } else {
            if (!is_admin_bar_showing()) {
                return FALSE;
            }
            add_filter('show_admin_bar', '__return_false');
            add_filter('wp_admin_bar_class', '__return_false');
            add_filter('show_wp_pointer_admin_bar', '__return_false');
            wp_deregister_script('admin-bar');
            wp_deregister_style('admin-bar');
            remove_action('init', '_wp_admin_bar_init');
            remove_action('wp_footer', 'wp_admin_bar_render', 1000);
            remove_action('admin_footer', 'wp_admin_bar_render', 1000);
            // maybe also: 'wp_head'
            foreach (array('wp_head', 'admin_head') as $hook) {
                add_action($hook, create_function('', "echo '<style>body.admin-bar, body.admin-bar #wpcontent, body.admin-bar #adminmenu {\n\t\t\t\t\t\t\t padding-top: 0 !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\thtml.wp-toolbar {\n\t\t\t\t\t\t\tpadding-top: 0 !important;\n\t\t\t\t\t\t}</style>';"));
            }
            add_action('in_admin_header', '_mw_adminimize_restore_links');
        }
        // end else version 3.3
    }
    // end if $remove_adminbar TRUE
    return NULL;
}
Пример #5
0
/**
 * Remove the dashboard
 */
function _mw_adminimize_remove_dashboard()
{
    // exclude super admin
    if (_mw_adminimize_exclude_super_admin()) {
        return;
    }
    // Leave the settings screen from Adminimize to see all areas on settings.
    if (_mw_adminimize_exclude_settings_page()) {
        return;
    }
    global $menu, $user_ID;
    $disabled_menu_ = array();
    $disabled_submenu_ = array();
    $user_roles = _mw_adminimize_get_all_user_roles();
    foreach ($user_roles as $role) {
        $disabled_menu_[$role] = (array) _mw_adminimize_get_option_value('mw_adminimize_disabled_menu_' . $role . '_items');
        $disabled_submenu_[$role] = (array) _mw_adminimize_get_option_value('mw_adminimize_disabled_submenu_' . $role . '_items');
    }
    $disabled_menu_all = array();
    $disabled_submenu_all = array();
    foreach ($user_roles as $role) {
        $disabled_menu_all[] = $disabled_menu_[$role];
        $disabled_submenu_all[] = $disabled_submenu_[$role];
    }
    // remove dashboard
    if ($disabled_menu_all !== '' || $disabled_submenu_all !== '') {
        $redirect = FALSE;
        foreach ($user_roles as $role) {
            if (_mw_adminimize_current_user_has_role($role)) {
                if (_mw_adminimize_recursive_in_array('index.php', $disabled_menu_[$role]) || _mw_adminimize_recursive_in_array('index.php', $disabled_submenu_[$role])) {
                    $redirect = TRUE;
                }
            }
        }
        // redirect option, if Dashboard is inactive
        if ($redirect) {
            $_mw_adminimize_db_redirect = (int) _mw_adminimize_get_option_value('_mw_adminimize_db_redirect');
            $_mw_adminimize_db_redirect_admin_url = get_option('siteurl') . '/wp-admin/';
            switch ($_mw_adminimize_db_redirect) {
                case 0:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'profile.php';
                    break;
                case 1:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php';
                    break;
                case 2:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php?post_type=page';
                    break;
                case 3:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'post-new.php';
                    break;
                case 4:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'page-new.php';
                    break;
                case 5:
                    $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit-comments.php';
                    break;
                case 6:
                    $_mw_adminimize_db_redirect = _mw_adminimize_get_option_value('_mw_adminimize_db_redirect_txt');
                    break;
            }
            $the_user = new WP_User($user_ID);
            reset($menu);
            $page = key($menu);
            $dashboard_core_string = esc_attr__('Dashboard');
            $dashboard = array($menu[$page][0], $menu[$page][1]);
            while (!in_array($dashboard_core_string, $dashboard, FALSE) && next($menu)) {
                $page = key($menu);
            }
            if (in_array($dashboard_core_string, $dashboard, FALSE)) {
                unset($menu[$page]);
            }
            reset($menu);
            $page = key($menu);
            while (!$the_user->has_cap($menu[$page][1]) && next($menu)) {
                $page = key($menu);
            }
            if (preg_match('#wp-admin/?(index.php)?$#', $_SERVER['REQUEST_URI'])) {
                wp_redirect($_mw_adminimize_db_redirect);
            }
        }
    }
}
Пример #6
0
?>
								</td>
							</tr>
							<?php 
// when remove dashboard
foreach ($user_roles as $role) {
    $disabled_menu_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_menu_' . $role . '_items');
    $disabled_submenu_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_submenu_' . $role . '_items');
}
$disabled_menu_all = array();
foreach ($user_roles as $role) {
    array_push($disabled_menu_all, $disabled_menu_[$role]);
    array_push($disabled_menu_all, $disabled_submenu_[$role]);
}
if ('' != $disabled_menu_all) {
    if (!_mw_adminimize_recursive_in_array('index.php', $disabled_menu_all)) {
        $disabled_item2 = ' disabled="disabled"';
    }
    ?>
								<tr valign="top" class="form-invalid">
									<td><?php 
    _e('Dashboard deactivate, redirect to', FB_ADMINIMIZE_TEXTDOMAIN);
    ?>
</td>
									<td>
										<?php 
    $_mw_adminimize_db_redirect = _mw_adminimize_get_option_value('_mw_adminimize_db_redirect');
    ?>
										<select name="_mw_adminimize_db_redirect"<?php 
    if (isset($disabled_item2)) {
        echo $disabled_item2;
Пример #7
0
/**
 * Remove Admin Bar
 *
 * @return null|void
 */
function _mw_adminimize_remove_admin_bar()
{
    // exclude super admin
    if (_mw_adminimize_exclude_super_admin()) {
        return;
    }
    // Leave the settings screen from Adminimize to see all areas on settings.
    if (_mw_adminimize_exclude_settings_page()) {
        return;
    }
    $user_roles = _mw_adminimize_get_all_user_roles();
    foreach ($user_roles as $role) {
        $disabled_global_option_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_global_option_' . $role . '_items');
    }
    foreach ($user_roles as $role) {
        if (!isset($disabled_global_option_[$role]['0'])) {
            $disabled_global_option_[$role]['0'] = '';
        }
    }
    $user = wp_get_current_user();
    $remove_adminbar = FALSE;
    // new 1.7.8
    foreach ($user_roles as $role) {
        if (is_array($user->roles) && in_array($role, $user->roles, FALSE)) {
            if (_mw_adminimize_current_user_has_role($role) && isset($disabled_global_option_[$role]) && is_array($disabled_global_option_[$role]) && _mw_adminimize_recursive_in_array('.show-admin-bar', $disabled_global_option_[$role])) {
                $remove_adminbar = TRUE;
            }
        }
    }
    if ($remove_adminbar) {
        if (!is_admin_bar_showing()) {
            return FALSE;
        }
        add_filter('show_admin_bar', '__return_false');
        add_filter('wp_admin_bar_class', '__return_false');
        add_filter('show_wp_pointer_admin_bar', '__return_false');
        wp_deregister_script('admin-bar');
        wp_deregister_style('admin-bar');
        remove_action('init', '_wp_admin_bar_init');
        remove_action('wp_footer', 'wp_admin_bar_render', 1000);
        remove_action('admin_footer', 'wp_admin_bar_render', 1000);
        // maybe also: 'wp_head'
        foreach (array('wp_head', 'admin_head') as $hook) {
            add_action($hook, create_function('', "echo '<style>body.admin-bar, body.admin-bar #wpcontent, body.admin-bar #adminmenu {\n\t\t\t\t\t\t\t padding-top: 0 !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\thtml.wp-toolbar {\n\t\t\t\t\t\t\tpadding-top: 0 !important;\n\t\t\t\t\t\t}</style>';"));
        }
        add_action('in_admin_header', '_mw_adminimize_restore_links');
    }
    // end if $remove_adminbar TRUE
}
Пример #8
0
/**
 * set global options in backend in all areas
 */
function _mw_adminimize_set_global_option()
{
    global $_wp_admin_css_colors;
    // exclude super admin
    if (_mw_adminimize_exclude_super_admin()) {
        return NULL;
    }
    $user_roles = _mw_adminimize_get_all_user_roles();
    $_mw_adminimize_admin_head = '';
    // remove_action( 'admin_head', 'index_js' );
    foreach ($user_roles as $role) {
        $disabled_global_option_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_global_option_' . $role . '_items');
    }
    foreach ($user_roles as $role) {
        if (!isset($disabled_global_option_[$role]['0'])) {
            $disabled_global_option_[$role]['0'] = '';
        }
    }
    $remove_adminbar = FALSE;
    // new 1.7.8
    foreach ($user_roles as $role) {
        $user = wp_get_current_user();
        if (is_array($user->roles) && in_array($role, $user->roles)) {
            if (current_user_can($role) && isset($disabled_global_option_[$role]) && is_array($disabled_global_option_[$role])) {
                $global_options = implode(', ', $disabled_global_option_[$role]);
                if (_mw_adminimize_recursive_in_array('.show-admin-bar', $disabled_global_option_[$role])) {
                    $remove_adminbar = TRUE;
                }
            }
        }
    }
    if (0 != strpos($global_options, '#your-profile .form-table fieldset')) {
        $_wp_admin_css_colors = 0;
    }
    $_mw_adminimize_admin_head .= '<!-- global options -->' . "\n";
    $_mw_adminimize_admin_head .= '<style type="text/css">' . $global_options . ' {display: none !important;}</style>' . "\n";
    if ($global_options) {
        echo $_mw_adminimize_admin_head;
    }
}
Пример #9
0
/**
 * Remove Admin Bar
 *
 * @return null|void
 */
function _mw_adminimize_remove_admin_bar()
{
    // exclude super admin
    if (_mw_adminimize_exclude_super_admin()) {
        return;
    }
    // Leave the settings screen from Adminimize to see all areas on settings.
    if (_mw_adminimize_exclude_settings_page()) {
        return;
    }
    $user_roles = _mw_adminimize_get_all_user_roles();
    $disabled_global_option_ = array();
    foreach ($user_roles as $role) {
        $disabled_global_option_[$role] = (array) _mw_adminimize_get_option_value('mw_adminimize_disabled_global_option_' . $role . '_items');
    }
    $mw_global_options = array();
    $user = wp_get_current_user();
    foreach ($user_roles as $role) {
        if (in_array($role, $user->roles, FALSE) && _mw_adminimize_current_user_has_role($role)) {
            // Create array about all items with all affected roles, important for multiple roles.
            foreach ($disabled_global_option_[$role] as $global_item) {
                $mw_global_options[] = $global_item;
            }
        }
    }
    // Support Multiple Roles for users.
    if (_mw_adminimize_get_option_value('mw_adminimize_multiple_roles') && 1 < count($user->roles)) {
        $mw_global_options = _mw_adminimize_get_duplicate($mw_global_options);
    }
    $remove_adminbar = FALSE;
    // Check for admin bar selector to set to remove the Admin Bar.
    if (_mw_adminimize_recursive_in_array('.show-admin-bar', $mw_global_options)) {
        $remove_adminbar = TRUE;
    }
    if ($remove_adminbar) {
        if (!is_admin_bar_showing()) {
            return FALSE;
        }
        add_filter('show_admin_bar', '__return_false');
        add_filter('wp_admin_bar_class', '__return_false');
        add_filter('show_wp_pointer_admin_bar', '__return_false');
        wp_deregister_script('admin-bar');
        wp_deregister_style('admin-bar');
        remove_action('init', '_wp_admin_bar_init');
        remove_action('wp_footer', 'wp_admin_bar_render', 1000);
        remove_action('admin_footer', 'wp_admin_bar_render', 1000);
        // maybe also: 'wp_head'
        foreach (array('wp_head', 'admin_head') as $hook) {
            add_action($hook, create_function('', "echo '<style>body.admin-bar, body.admin-bar #wpcontent, body.admin-bar #adminmenu {\n\t\t\t\t\t\t\t padding-top: 0 !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\thtml.wp-toolbar {\n\t\t\t\t\t\t\tpadding-top: 0 !important;\n\t\t\t\t\t\t}</style>';"));
        }
        add_action('in_admin_header', '_mw_adminimize_restore_links');
    }
    // end if $remove_adminbar TRUE
}