* @copyright Copyright (c) 2010 - 2016, Vladimir Garagulya **/ class URE_View { protected $lib = null; protected $editor = null; public function __construct() { $this->lib = URE_Lib::get_instance(); $this->editor = URE_Editor::get_instance(); } // end of __construct() public function display() {} public function toolbar() {} /** * display opening part of the HTML box with title and CSS style * * @param string $title * @param string $style */ public function display_box_start($title, $style = '') { ?>

get_groups_tree(); $output = ''. PHP_EOL; echo $output; } // end of show_caps_groups() private function deprecated_show_and_color($cap_id, $builtin_wp_caps, &$label_style, &$hidden_class) { if (isset($builtin_wp_caps[$cap_id])) { if (in_array('deprecated', $builtin_wp_caps[$cap_id])) { $show_deprecated_caps = $this->editor->get('show_deprecated_caps'); if (!$show_deprecated_caps) { $hidden_class = 'hidden'; } $label_style = 'style="color:#BBBBBB;"'; } } } // end of deprecated_show_and_color() private function blocked_for_single_admin_style($cap_id, &$label_style) { $blocked = false; $multisite = $this->lib->get('multisite'); if ($multisite && $this->editor->block_cap_for_single_admin($cap_id, true)) { if ($this->lib->is_super_admin()) { if (!is_network_admin()) { $label_style = 'style="color: red;"'; } } else { $blocked = true; } } return $blocked; } // end of blocked_for_single_admin_style() // Get full capabilities list and exclude Visual Composer capabilities from it // Do not take VC capabilities into account as VC stores not boolean values with them protected function get_full_capabilities() { $full_caps = $this->editor->get('full_capabilities'); foreach($full_caps as $key=>$capability) { if (strpos($key, 'vc_access_rules_')!==false) { unset($full_caps[$key]); } } return $full_caps; } // end of get_full_capabilities() /* * Output HTML-code for capabilities list * Used build output for response to AJAX request * @param boolean $for_role - if true, it is role capabilities list, else - user specific capabilities list * @param boolean $edit_mode - if false, capabilities checkboxes are shown as disable - readonly mode */ public function _show_capabilities( $for_role = true, $edit_mode=true ) { $onclick_for_admin = ''; $multisite = $this->lib->get( 'multisite' ); $current_role = $this->editor->get( 'current_role' ); $user_to_edit = $this->editor->get( 'user_to_edit' ); $roles = $this->editor->get( 'roles' ); $full_capabilities = $this->get_full_capabilities(); $built_in_wp_caps = $this->lib->get_built_in_wp_caps(); $caps_readable = $this->editor->get( 'caps_readable' ); $caps_groups_manager = URE_Capabilities_Groups_Manager::get_instance(); $key_capability = URE_Own_Capabilities::get_key_capability(); $user_is_ure_admin = current_user_can( $key_capability ); $ure_caps = URE_Own_Capabilities::get_caps(); $output = ''; foreach ($full_capabilities as $capability) { $cap_id = $capability['inner']; if (!$user_is_ure_admin) { if (isset($ure_caps[$cap_id]) || ($multisite && $cap_id=='manage_network_plugins')) { // exclude URE caps if user does not have full access to URE continue; } } $label_style = ''; $hidden_class = ''; $this->deprecated_show_and_color($cap_id, $built_in_wp_caps, $label_style, $hidden_class); $blocked = $this->blocked_for_single_admin_style($cap_id, $label_style); $classes = array('ure-cap-div'); if ($blocked) { $classes[] = 'blocked'; $hidden_class = 'hidden'; } if ($hidden_class) { $classes[] = $hidden_class; } $cap_groups = $caps_groups_manager->get_cap_groups($cap_id, $built_in_wp_caps); $classes = array_merge($classes, $cap_groups); $checked = ''; $disabled = ''; if ($for_role) { if (isset($roles[$current_role]['capabilities'][$cap_id]) && !empty($roles[$current_role]['capabilities'][$cap_id])) { $checked = 'checked="checked"'; } } else { if (empty($edit_mode)) { $disabled = 'disabled="disabled"'; } else { $disabled = ''; } if ($this->editor->user_can($cap_id)) { $checked = 'checked="checked"'; if (!isset($user_to_edit->caps[$cap_id])) { $disabled = 'disabled="disabled"'; } } } $class = 'class="' . implode(' ', $classes) .'"'; $cap_id_esc = URE_Capability::escape($cap_id); $cap_html = '
'; if ($caps_readable) { $cap_ind = 'human'; $cap_ind_alt = 'inner'; } else { $cap_ind = 'inner'; $cap_ind_alt = 'human'; } $cap_html .= '
'; $output .= $cap_html; } return $output; } // end of _show_capabilities() /** * Output HTML-code for capabilities list * Used to built full page output for usual HTTP request * @param boolean $for_role - if true, it is role capabilities list, else - user specific capabilities list * @param boolean $edit_mode - if false, capabilities checkboxes are shown as disable - readonly mode */ public function show_capabilities( $for_role = true, $edit_mode=true ) { $output = '
' . '
'; $output .= $this->_show_capabilities( $for_role, $edit_mode ); $output .= '
' ; echo $output; } // end of show_capabilities() // content of User Role Editor Pro advertisement slot - for direct call public function advertise_pro() { ?>
lib->get_option('ure_hide_pro_banner', 0); if ($hide_pro_banner) { echo 'User Role Editor Pro: extended functionality, no advertisement - from $29.'; } else { ?> User Role Editor Pro
advert = new URE_Advertisement(); $this->advert->display(); } // end of advertisement() public static function output_confirmation_dialog() { ?>
lib->get('multisite'); $current_role = $this->editor->get('current_role'); $show = true; if ($multisite) { if ($current_role=='administrator' && !$this->lib->is_super_admin()) { $show = false; } } elseif ($current_role=='administrator') { $show = false; } return $show; } // end of show_select_all() public function display_caps($for_role = true, $edit_mode=true) { $caps_columns_quant = $this->editor->get('caps_columns_quant'); ?>
(/)
show_select_all()) { ?>
       
 
show_caps_groups(); ?> show_capabilities($for_role, $edit_mode); ?> toolbar(); ?>