/** * Load the user interface * * @since 1.5 * @since 1.5.1 added notice on class name conflict * @since 1.6 added our toolbar class * @access private * @return void */ private function load_ui() { // The default admin bar ui if (!class_exists('VAA_View_Admin_As_Admin_Bar')) { require VIEW_ADMIN_AS_DIR . 'ui/class-admin-bar.php'; self::$vaa_class_names[] = 'VAA_View_Admin_As_Admin_Bar'; $this->ui['admin_bar'] = VAA_View_Admin_As_Admin_Bar::get_instance($this); } else { $this->add_notice('class-error-admin-bar', array('type' => 'notice-error', 'message' => '<strong>' . __('View Admin As', 'view-admin-as') . ':</strong> ' . __('Plugin not loaded because of a conflict with an other plugin or theme', 'view-admin-as') . ' <code>(' . sprintf(__('Class %s already exists', 'view-admin-as'), 'VAA_View_Admin_As_Admin_Bar') . ')</code>')); } // Custom toolbar (front-end) if (!class_exists('VAA_View_Admin_As_Toolbar')) { require VIEW_ADMIN_AS_DIR . 'ui/class-toolbar.php'; self::$vaa_class_names[] = 'VAA_View_Admin_As_Toolbar'; $this->ui['toolbar'] = VAA_View_Admin_As_Toolbar::get_instance($this); } else { $this->add_notice('class-error-toolbar', array('type' => 'notice-error', 'message' => '<strong>' . __('View Admin As', 'view-admin-as') . ':</strong> ' . __('Plugin not loaded because of a conflict with an other plugin or theme', 'view-admin-as') . ' <code>(' . sprintf(__('Class %s already exists', 'view-admin-as'), 'VAA_View_Admin_As_Toolbar') . ')</code>')); } // WP admin modifications if (!class_exists('VAA_View_Admin_As_Admin')) { require VIEW_ADMIN_AS_DIR . 'ui/class-admin.php'; self::$vaa_class_names[] = 'VAA_View_Admin_As_Admin'; $this->ui['static_actions'] = VAA_View_Admin_As_Admin::get_instance($this); } else { $this->add_notice('class-error-admin', array('type' => 'notice-error', 'message' => '<strong>' . __('View Admin As', 'view-admin-as') . ':</strong> ' . __('Plugin not loaded because of a conflict with an other plugin or theme', 'view-admin-as') . ' <code>(' . sprintf(__('Class %s already exists', 'view-admin-as'), 'VAA_View_Admin_As_Admin') . ')</code>')); } }
/** * Add admin bar menu's * * * @since 1.4 * @since 1.5.2 Changed hook to vaa_admin_bar_settings_after (previous: 'vaa_admin_bar_roles_before') * @access public * @see 'vaa_admin_bar_settings_after' action * * @param object $admin_bar * @return void */ public function admin_bar_menu($admin_bar) { $admin_bar->add_node(array('id' => 'role-defaults', 'parent' => 'view-as', 'title' => VAA_View_Admin_As_Admin_Bar::do_icon('dashicons-id-alt') . __('Role defaults', 'view-admin-as'), 'href' => false, 'meta' => array('class' => 'vaa-has-icon'))); $role_select_options = ''; foreach ($this->get_roles() as $role_key => $role) { $role_select_options .= '<option value="' . esc_attr($role_key) . '">' . translate_user_role($role->name) . '</option>'; } $admin_bar->add_node(array('id' => 'role-defaults-setting-register-enable', 'parent' => 'role-defaults', 'title' => '<input class="checkbox" value="1" id="vaa_role_defaults_register_enable" name="vaa_role_defaults_register_enable" type="checkbox" ' . checked($this->get_optionData('apply_defaults_on_register'), true, false) . '> <label for="vaa_role_defaults_register_enable">' . __('Automatically apply defaults to new users', 'view-admin-as') . '</label>', 'href' => false, 'meta' => array('class' => 'auto-height'))); $admin_bar->add_node(array('id' => 'role-defaults-setting-disable-user-screen-options', 'parent' => 'role-defaults', 'title' => '<input class="checkbox" value="1" id="vaa_role_defaults_disable_user_screen_options" name="vaa_role_defaults_disable_user_screen_options" type="checkbox" ' . checked($this->get_optionData('disable_user_screen_options'), true, false) . '> <label for="vaa_role_defaults_disable_user_screen_options">' . __('Disable screen options', 'view-admin-as') . '</label> <p class="description ab-item">' . __("Hide the screen options for all users who can't access role defaults", 'view-admin-as') . '</p>', 'href' => false, 'meta' => array('class' => 'auto-height'))); $admin_bar->add_node(array('id' => 'role-defaults-setting-lock-meta-boxes', 'parent' => 'role-defaults', 'title' => '<input class="checkbox" value="1" id="vaa_role_defaults_lock_meta_boxes" name="vaa_role_defaults_lock_meta_boxes" type="checkbox" ' . checked($this->get_optionData('lock_meta_boxes'), true, false) . '> <label for="vaa_role_defaults_lock_meta_boxes">' . __('Lock meta boxes', 'view-admin-as') . '</label> <p class="description ab-item">' . __("Lock meta box order and locations for all users who can't access role defaults", 'view-admin-as') . '</p>', 'href' => false, 'meta' => array('class' => 'auto-height'))); /** * Bulk actions */ if ($this->get_users()) { // Users select $admin_bar->add_group(array('id' => 'role-defaults-bulk-users', 'parent' => 'role-defaults', 'meta' => array('class' => 'ab-sub-secondary'))); $admin_bar->add_node(array('id' => 'role-defaults-bulk-users-title', 'parent' => 'role-defaults-bulk-users', 'title' => __('Apply defaults to users', 'view-admin-as'), 'href' => false, 'meta' => array('class' => 'ab-bold ab-vaa-toggle'))); $admin_bar->add_node(array('id' => 'role-defaults-bulk-users-filter', 'parent' => 'role-defaults-bulk-users', 'title' => '<input id="role-defaults-bulk-users-filter" name="vaa-filter" placeholder="' . esc_attr__('Filter', 'view-admin-as') . ' (' . strtolower(__('Username')) . ')" />', 'href' => false, 'meta' => array('class' => 'ab-vaa-filter'))); $bulk_users_select_content = ''; foreach ($this->get_users() as $user) { foreach ($user->roles as $role) { if ($role_data = $this->get_roles($role)) { $role_name = translate_user_role($role_data->name); $bulk_users_select_content .= '<div class="ab-item vaa-item"> <input class="checkbox" value="' . $user->ID . '|' . $role . '" id="role-defaults-bulk-users-select-' . $user->ID . '" name="role-defaults-bulk-users-select[]" type="checkbox"> <label for="role-defaults-bulk-users-select-' . $user->ID . '"><span class="user-name">' . $user->display_name . '</span> <span class="user-role">(' . $role_name . ')</span></label> </div>'; } } } $admin_bar->add_node(array('id' => 'role-defaults-bulk-users-select', 'parent' => 'role-defaults-bulk-users', 'title' => $bulk_users_select_content, 'href' => false, 'meta' => array('class' => 'ab-vaa-multipleselect max-height'))); $admin_bar->add_node(array('id' => 'role-defaults-bulk-users-apply', 'parent' => 'role-defaults-bulk-users', 'title' => '<button id="role-defaults-bulk-users-apply" class="button button-primary" name="role-defaults-bulk-users-apply">' . __('Apply', 'view-admin-as') . '</button>', 'href' => false, 'meta' => array('class' => 'vaa-button-container', 'html' => ''))); } if ($this->get_users() && $this->get_roles()) { // Roles select $admin_bar->add_group(array('id' => 'role-defaults-bulk-roles', 'parent' => 'role-defaults', 'meta' => array('class' => 'ab-sub-secondary'))); $admin_bar->add_node(array('id' => 'role-defaults-bulk-roles-title', 'parent' => 'role-defaults-bulk-roles', 'title' => __('Apply defaults to users by role', 'view-admin-as'), 'href' => false, 'meta' => array('class' => 'ab-bold ab-vaa-toggle'))); $admin_bar->add_node(array('id' => 'role-defaults-bulk-roles-select', 'parent' => 'role-defaults-bulk-roles', 'title' => '<select id="role-defaults-bulk-roles-select" name="role-defaults-bulk-roles-select"><option value=""> --- </option><option value="all">' . __('All roles', 'view-admin-as') . '</option>' . $role_select_options . '</select>', 'href' => false, 'meta' => array('class' => 'ab-vaa-select select-role', 'html' => ''))); $admin_bar->add_node(array('id' => 'role-defaults-bulk-roles-apply', 'parent' => 'role-defaults-bulk-roles', 'title' => '<button id="role-defaults-bulk-roles-apply" class="button button-primary" name="role-defaults-bulk-roles-apply">' . __('Apply', 'view-admin-as') . '</button>', 'href' => false, 'meta' => array('class' => 'vaa-button-container', 'html' => ''))); } if ($this->get_roles()) { /* Export actions */ $admin_bar->add_group(array('id' => 'role-defaults-export', 'parent' => 'role-defaults', 'meta' => array('class' => 'ab-sub-secondary'))); $admin_bar->add_node(array('id' => 'role-defaults-export-roles', 'parent' => 'role-defaults-export', 'title' => __('Export defaults for role', 'view-admin-as'), 'href' => false, 'meta' => array('class' => 'ab-bold ab-vaa-toggle'))); $admin_bar->add_node(array('id' => 'role-defaults-export-roles-select', 'parent' => 'role-defaults-export', 'title' => '<select id="role-defaults-export-roles-select" name="role-defaults-export-roles-select"><option value="all">' . __('All roles', 'view-admin-as') . '</option>' . $role_select_options . '</select>', 'href' => false, 'meta' => array('class' => 'ab-vaa-select select-role', 'html' => ''))); $admin_bar->add_node(array('id' => 'role-defaults-export-roles-export', 'parent' => 'role-defaults-export', 'title' => '<button id="role-defaults-export-roles-export" class="button button-secondary" name="role-defaults-export-roles-export">' . __('Export', 'view-admin-as') . '</button>', 'href' => false, 'meta' => array('class' => 'vaa-button-container', 'html' => ''))); /* Import actions */ $admin_bar->add_group(array('id' => 'role-defaults-import', 'parent' => 'role-defaults', 'meta' => array('class' => 'ab-sub-secondary'))); $admin_bar->add_node(array('id' => 'role-defaults-import-roles', 'parent' => 'role-defaults-import', 'title' => __('Import defaults for role', 'view-admin-as'), 'href' => false, 'meta' => array('class' => 'ab-bold ab-vaa-toggle'))); $admin_bar->add_node(array('id' => 'role-defaults-import-roles-input', 'parent' => 'role-defaults-import', 'title' => '<textarea id="role-defaults-import-roles-input" name="role-defaults-import-roles-input" placeholder="' . esc_attr__('Paste code here', 'view-admin-as') . '"></textarea>', 'href' => false, 'meta' => array('class' => 'ab-vaa-textarea input-role', 'html' => ''))); $admin_bar->add_node(array('id' => 'role-defaults-import-roles-import', 'parent' => 'role-defaults-import', 'title' => '<button id="role-defaults-import-roles-import" class="button button-secondary" name="role-defaults-import-roles-import">' . __('Import', 'view-admin-as') . '</button>', 'href' => false, 'meta' => array('class' => 'vaa-button-container', 'html' => ''))); /* Clear actions */ $admin_bar->add_group(array('id' => 'role-defaults-clear', 'parent' => 'role-defaults', 'meta' => array('class' => 'ab-sub-secondary vaa-sub-transparent'))); $admin_bar->add_node(array('id' => 'role-defaults-clear-roles', 'parent' => 'role-defaults-clear', 'title' => __('Remove defaults for role', 'view-admin-as'), 'href' => false, 'meta' => array('class' => 'ab-bold ab-vaa-toggle'))); $admin_bar->add_node(array('id' => 'role-defaults-clear-roles-select', 'parent' => 'role-defaults-clear', 'title' => '<select id="role-defaults-clear-roles-select" name="role-defaults-clear-roles-select"><option value=""> --- </option><option value="all">' . __('All roles', 'view-admin-as') . '</option>' . $role_select_options . '</select>', 'href' => false, 'meta' => array('class' => 'ab-vaa-select select-role', 'html' => ''))); $admin_bar->add_node(array('id' => 'role-defaults-clear-roles-apply', 'parent' => 'role-defaults-clear', 'title' => '<button id="role-defaults-clear-roles-apply" class="button button-secondary" name="role-defaults-clear-roles-apply">' . __('Apply', 'view-admin-as') . '</button>', 'href' => false, 'meta' => array('class' => 'vaa-button-container', 'html' => ''))); } }
/** * Main Instance. * * Ensures only one instance of this class is loaded or can be loaded. * * @since 1.5 * @access public * @static * @param object|bool $caller The referrer class * @return VAA_View_Admin_As_Admin_Bar|bool */ public static function get_instance($caller = false) { if (is_object($caller) && 'VAA_View_Admin_As' == get_class($caller)) { if (is_null(self::$_instance)) { self::$_instance = new self(); } return self::$_instance; } return false; }