. */ $agca = new AGCA(); class AGCA{ private $agca_version = "7.2.2"; private $colorizer = ""; private $agca_debug = false; private $admin_capabilities; private $context = ""; private $saveAfterImport = false; const PLACEHOLDER_BLOG = '%BLOG%'; const PLACEHOLDER_PAGE = '%PAGE%'; public function __construct() { add_action( 'plugins_loaded', array(&$this,'my_load_plugin_textdomain') ); add_action('init', array(&$this,'init')); } function init(){ $this->reloadScript(); $this->checkGET(); if(function_exists("add_filter")){ add_filter('admin_title', array(&$this,'change_title'), 10, 2); add_filter('plugin_row_meta', array(&$this,'jk_filter_plugin_links'), 10, 2); } add_action('admin_init', array(&$this,'admin_init')); add_action('login_init', array(&$this,'login_init')); add_action('admin_head', array(&$this,'print_admin_css')); add_action('login_head', array(&$this,'print_login_head')); add_action('admin_menu', array(&$this,'agca_create_menu')); add_action('wp_head', array(&$this,'print_page')); register_deactivation_hook(__FILE__, array(&$this,'agca_deactivate')); add_action( 'customize_controls_enqueue_scripts', array(&$this,'agca_customizer_php') ); add_action( 'admin_bar_menu', array(&$this, 'wp_admin_bar_my_custom_account_menu'), 11 ); add_action( 'updated_option', array(&$this, 'after_update_option'), 10, 3); /*Initialize properties*/ $this->colorizer = $this->jsonMenuArray(get_option('ag_colorizer_json'),'colorizer'); if(!get_option('agca_check_js_notice') && get_option('agca_custom_js')) { add_action( 'admin_notices', array(&$this, 'agca_check_js_notice') ); } //admin bar on front end if(!is_admin() && is_admin_bar_showing()){ add_action('wp_head', array(&$this, 'hide_admin_bar_css')); $this->agca_enqueue_js(); } } function hide_admin_bar_css(){ if(is_user_logged_in() && current_user_can($this->admin_capability()) && get_option('agca_role_allbutadmin')){ return; } ?>

IMPORTANT MESSAGE FROM AGCA PLUGIN! (aka Custom Dashboard & Login Page plugin)

We are enforcing security in AGCA plugin and custom JavaScript code is currently disabled and requires your review. Please go to AGCA plugin settings (Tools > AGCA > Advanced) page and make sure that your JavaScript does not contain any unwanted code. If you are sure that the script looks good to you, please save the settings in AGCA plugin again, to dismiss this notice and re-enable the script again.

Click here to revisit and save AGCA settings again

'; } function isAGCASettingsPage() { if(!is_admin()) { return false; } if(isset($_GET['page']) && $_GET['page'] == 'ag-custom-admin/plugin.php'){ return true; } return false; } function my_load_plugin_textdomain() { load_plugin_textdomain( 'ag-custom-admin'); } // Add donate and support information function jk_filter_plugin_links($links, $file) { if ( $file == plugin_basename(__FILE__) ) { if(!is_network_admin()){ $links[] = '' . __('Settings', 'ag-custom-admin') . ''; } $links[] = '' . __('Support', 'ag-custom-admin') . ''; $links[] = '' . __('Upgrade', 'ag-custom-admin') . ''; $links[] = '' . __('Donate', 'ag-custom-admin') . ''; } return $links; } function filePath($url){ $absPath = ABSPATH; $absPath = rtrim($absPath, '/'); $url = ltrim($url, '/'); return $absPath.'/'.$url; } function change_admin_color(){ return 'default'; } //Prevent non-admin users to update sensitive options //Revert option value to previous function after_update_option( $option, $old_value, $new_value ){ if(( !current_user_can('administrator') || !current_user_can('unfiltered_html') ) && in_array($option, [ 'agca_dashboard_text_paragraph', 'agca_dashboard_text', 'agca_custom_css', 'agca_footer_left', 'agca_footer_right', 'agca_custom_js', 'agca_check_js_notice', ])) { remove_action( 'updated_option', array(&$this,'after_update_option')); update_option($option, $old_value); add_action( 'updated_option', array(&$this,'after_update_option'), 10, 3); } } function is_wp_admin(){ return current_user_can('administrator'); } function can_save_unfiltered_html(){ return current_user_can('unfiltered_html'); } function agca_customizer_php(){ $this->agca_get_includes(); } function admin_init(){ $this->agca_register_settings(); $this->agca_init_session(); $isAdminUser = current_user_can($this->admin_capability()); if(!$isAdminUser || ($isAdminUser && !get_option('agca_role_allbutadmin'))){ if(get_option('agca_profile_color_scheme')){ remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' ); } } $this->enqueue_scripts(); } function login_init(){ $this->agca_enqueue_scripts(); } function enqueue_scripts() { $wpversion = $this->get_wp_version(); if($this->isAGCASettingsPage()) { wp_register_script ( 'agca-farbtastic-script', $this->pluginUrl() . 'script/agca_farbtastic.js', array('farbtastic'), $wpversion ); wp_register_style('agca-farbtastic-style', $this->pluginUrl() . 'style/agca_farbtastic.css', array('farbtastic'), $wpversion); wp_enqueue_script ( 'farbtastic' ); wp_enqueue_style( 'farbtastic' ); wp_enqueue_script ( 'agca-farbtastic-script', array('farbtastic') ); wp_enqueue_style ( 'agca-farbtastic-style', array('farbtastic') ); } if(is_admin()) { $agcaStyleFileName = get_option('agca_no_style') == true ? 'ag_style_simple' : 'ag_style'; wp_register_style('agca-style', $this->pluginUrl() . 'style/' . $agcaStyleFileName . '.css', array('farbtastic'), $this->agca_version); wp_enqueue_style( 'agca-style' ); $this->agca_enqueue_js(); } } function agca_enqueue_js(){ wp_register_script ( 'agca-script', $this->pluginUrl() . 'script/ag_script.js', array('jquery'), $this->agca_version ); add_action('wp_print_scripts', function () { wp_enqueue_script ( 'agca-script' ); }, 2); } function agca_init_session(){ if (!session_id()){ session_start([ 'read_and_close' => true, ]); } } function checkGET(){ if(isset($_GET['agca_debug'])){ if($_GET['agca_debug'] =="true"){ $this->agca_debug = true; }else{ $this->agca_debug = false; } } } function getFieldSecurityProtected(){ if($this->is_wp_admin() && $this->can_save_unfiltered_html()){ return ''; } return "

( For security reasons, this field is available for editing only to WordPress Administrators with the allowed capability to save unfiltered HTML )

"; } function verifyPostRequest(){ if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (!is_admin()) { _e('Not allowed. This action is allowed exclusively in admin panel', 'ag-custom-admin'); exit; } //In case of problems with saving AGCA settings on MS disable verification temporary if(get_option('agca_disable_postver')){ return; } if (is_multisite()) { $blog_id = get_current_blog_id(); $user_id = get_current_user_id(); $msError = __('Please try temporary disabling POST verification. Go to Absolutely Glamorous Custom Admin -> Advanced -> Temporary disable POST verification. Do not forget to un-check this option once you are done with customizations.', 'ag-custom-admin'); if (is_user_member_of_blog($user_id, $blog_id)) { if (!current_user_can('manage_options')) { _e('Multi-site: Current user is not recognized as administrator.', 'ag-custom-admin'); echo ' '. $this->sanitize_html($msError); exit; } } else { printf( /*translators: 1: User Id 2: Blog Id*/ __('Multi-site: User (%1$s) does not have access to this blog (%2$s).', 'ag-custom-admin'), $user_id, $blog_id ); echo ' '. $this->sanitize_html($msError); exit; } } else { include_once($this->filePath('wp-includes/pluggable.php')); if (!is_user_logged_in() || !current_user_can('manage_options')) { echo !is_user_logged_in() ? __('User is not logged in.', 'ag-custom-admin').' ' : ''; echo !current_user_can('manage_options') ? __('User can not manage options.', 'ag-custom-admin').' ' : ''; exit; } } if (!wp_verify_nonce($_POST['_agca_token'], 'agca_form')) { echo __('Nonce verification failed.', 'ag-custom-admin'); exit; } } } function isGuest(){ global $user_login; if($user_login) { return false; }else{ return true; } } function change_title($admin_title, $title){ //return get_bloginfo('name').' - '.$title; if(get_option('agca_custom_title')!=""){ $blog = get_bloginfo('name'); $page = $title; $customTitle = get_option('agca_custom_title'); $customTitle = str_replace(self::PLACEHOLDER_BLOG,$blog,$customTitle); $customTitle = str_replace(self::PLACEHOLDER_PAGE,$page,$customTitle); return htmlentities(strip_tags($customTitle)); }else{ return htmlentities(strip_tags($admin_title)); } } function agca_get_includes() { if(!((get_option('agca_role_allbutadmin')==true) and (current_user_can($this->admin_capability())))){ ?> filePath('wp-admin/includes/plugins.php'); if(!file_exists($pluginPhpFilePath)){ return ''; } require_once($pluginPhpFilePath); } if(!$this->isPluginActiveForNetwork($WPSPluginName)){ return ''; } }else{ if(!$this->isPluginActive($WPSPluginName)){ return ''; } } if ( $slug = get_option( 'whl_page' ) ) { return $slug; } else if ( ( is_multisite() && $this->isPluginActiveForNetwork($WPSPluginName) && ( $slug = get_site_option( 'whl_page', 'login' ) ) ) ) { return $slug; } else if ( $slug = 'login' ) { return $slug; } $requestURI = $_SERVER['REQUEST_URI']; return $this->startsWith('/'.$slug.'/', $requestURI); } function reloadScript(){ $isAdmin = false; if(defined('WP_ADMIN') && WP_ADMIN == 1){ $isAdmin = true; } if($isAdmin || $this->WPSPluginIsLoginPage()){ $this->agca_enqueue_scripts(); } } function agca_register_settings() { register_setting( 'agca-options-group', 'agca_role_allbutadmin' ); register_setting( 'agca-options-group', 'agca_no_style' ); register_setting( 'agca-options-group', 'agca_screen_options_menu' ); register_setting( 'agca-options-group', 'agca_help_menu' ); register_setting( 'agca-options-group', 'agca_logout' ); register_setting( 'agca-options-group', 'agca_remove_your_profile' ); register_setting( 'agca-options-group', 'agca_logout_only' ); register_setting( 'agca-options-group', 'agca_custom_title' ); register_setting( 'agca-options-group', 'agca_howdy' ); register_setting( 'agca-options-group', 'agca_header' ); register_setting( 'agca-options-group', 'agca_header_show_logout' ); register_setting( 'agca-options-group', 'agca_footer' ); register_setting( 'agca-options-group', 'agca_privacy_options' ); register_setting( 'agca-options-group', 'agca_header_logo' ); register_setting( 'agca-options-group', 'agca_header_logo_custom' ); register_setting( 'agca-options-group', 'agca_wp_logo_custom' ); register_setting( 'agca-options-group', 'agca_remove_site_link' ); register_setting( 'agca-options-group', 'agca_wp_logo_custom_link' ); register_setting( 'agca-options-group', 'agca_profile_color_scheme' ); register_setting( 'agca-options-group', 'agca_site_heading' ); register_setting( 'agca-options-group', 'agca_custom_site_heading' ); register_setting( 'agca-options-group', 'agca_update_bar' ); register_setting( 'agca-options-group', 'agca_footer_left' ); register_setting( 'agca-options-group', 'agca_footer_left_hide' ); register_setting( 'agca-options-group', 'agca_footer_right' ); register_setting( 'agca-options-group', 'agca_footer_right_hide' ); register_setting( 'agca-options-group', 'agca_check_js_notice' ); register_setting( 'agca-options-group', 'agca_login_banner' ); register_setting( 'agca-options-group', 'agca_login_banner_text' ); register_setting( 'agca-options-group', 'agca_login_photo_remove' ); register_setting( 'agca-options-group', 'agca_login_photo_url' ); register_setting( 'agca-options-group', 'agca_login_photo_href' ); register_setting( 'agca-options-group', 'agca_login_round_box' ); register_setting( 'agca-options-group', 'agca_login_round_box_size' ); register_setting( 'agca-options-group', 'agca_login_round_box_skip_logo' ); register_setting( 'agca-options-group', 'agca_dashboard_icon' ); register_setting( 'agca-options-group', 'agca_dashboard_text' ); register_setting( 'agca-options-group', 'agca_dashboard_text_paragraph' ); register_setting( 'agca-options-group', 'agca_dashboard_widget_welcome' ); register_setting( 'agca-options-group', 'agca_dashboard_widget_health_status' ); register_setting( 'agca-options-group', 'agca_dashboard_widget_activity' ); register_setting( 'agca-options-group', 'agca_dashboard_widget_il' ); register_setting( 'agca-options-group', 'agca_dashboard_widget_plugins' ); register_setting( 'agca-options-group', 'agca_dashboard_widget_qp' ); register_setting( 'agca-options-group', 'agca_dashboard_widget_rn' ); register_setting( 'agca-options-group', 'agca_dashboard_widget_rd' ); register_setting( 'agca-options-group', 'agca_dashboard_widget_primary' ); register_setting( 'agca-options-group', 'agca_dashboard_widget_secondary' ); //WP3.3 register_setting( 'agca-options-group', 'agca_admin_bar_comments' ); register_setting( 'agca-options-group', 'agca_admin_bar_new_content' ); register_setting( 'agca-options-group', 'agca_admin_bar_new_content_post' ); register_setting( 'agca-options-group', 'agca_admin_bar_new_content_link' ); register_setting( 'agca-options-group', 'agca_admin_bar_new_content_page' ); register_setting( 'agca-options-group', 'agca_admin_bar_new_content_user' ); register_setting( 'agca-options-group', 'agca_admin_bar_new_content_media' ); register_setting( 'agca-options-group', 'agca_admin_bar_update_notifications' ); register_setting( 'agca-options-group', 'agca_remove_top_bar_dropdowns' ); register_setting( 'agca-options-group', 'agca_admin_bar_frontend' ); register_setting( 'agca-options-group', 'agca_admin_bar_frontend_hide' ); register_setting( 'agca-options-group', 'agca_login_register_remove' ); register_setting( 'agca-options-group', 'agca_login_register_href' ); register_setting( 'agca-options-group', 'agca_login_lostpassword_remove' ); register_setting( 'agca-options-group', 'agca_admin_capability' ); register_setting( 'agca-options-group', 'agca_disablewarning' ); /*Admin menu*/ register_setting( 'agca-options-group', 'agca_admin_menu_turnonoff' ); register_setting( 'agca-options-group', 'agca_admin_menu_agca_button_only' ); register_setting( 'agca-options-group', 'agca_admin_menu_separators' ); register_setting( 'agca-options-group', 'agca_admin_menu_icons' ); register_setting( 'agca-options-group', 'agca_admin_menu_collapse_button' ); register_setting( 'agca-options-group', 'agca_admin_menu_arrow' ); register_setting( 'agca-options-group', 'agca_admin_menu_submenu_round' ); register_setting( 'agca-options-group', 'agca_admin_menu_submenu_round_size' ); register_setting( 'agca-options-group', 'agca_admin_menu_brand' ); register_setting( 'agca-options-group', 'agca_admin_menu_brand_link' ); register_setting( 'agca-options-group', 'agca_admin_menu_autofold' ); register_setting( 'agca-options-group', 'ag_edit_adminmenu_json' ); register_setting( 'agca-options-group', 'ag_edit_adminmenu_json_new' ); register_setting( 'agca-options-group', 'ag_add_adminmenu_json' ); register_setting( 'agca-options-group', 'ag_colorizer_json' ); register_setting( 'agca-options-group', 'agca_colorizer_turnonoff' ); register_setting( 'agca-options-group', 'agca_custom_js' ); register_setting( 'agca-options-group', 'agca_custom_css' ); register_setting( 'agca-options-group', 'agca_disable_postver' ); register_setting( 'agca-options-group', 'agca_menu_remove_client_profile' ); register_setting( 'agca-options-group', 'agca_menu_remove_customize_button' ); if(!empty($_POST)){ if(isset($_POST['_agca_import_settings']) && $_POST['_agca_import_settings']=="true"){ $this->verifyPostRequest(); if(isset($_FILES) && isset($_FILES['settings_import_file']) ){ if($_FILES["settings_import_file"]["error"] > 0){ }else{ $file = $_FILES['settings_import_file']; if($this->startsWith($file['name'],'AGCA_Settings')){ if (file_exists($file['tmp_name'])) { $fh = fopen($file['tmp_name'], 'r'); $theData = ""; if(filesize($file['tmp_name']) > 0){ $theData = fread($fh,filesize($file['tmp_name'])); } fclose($fh); $this->importSettings($theData); } } } } }else if(isset($_POST['_agca_export_settings']) && $_POST['_agca_export_settings']=="true"){ $this->verifyPostRequest(); $this->exportSettings(); } } if(isset($_GET['agca_action'])){ if($_GET['agca_action'] == "disablewarning"){ update_option('agca_disablewarning', true); } } } function agca_deactivate() { } function getOptions(){ return Array( 'agca_role_allbutadmin', 'agca_no_style', 'agca_admin_bar_frontend', 'agca_admin_bar_frontend_hide', 'agca_login_register_remove', 'agca_login_register_href', 'agca_login_lostpassword_remove', 'agca_admin_capability', 'agca_screen_options_menu', 'agca_help_menu', 'agca_logout', 'agca_remove_your_profile', 'agca_logout_only', 'agca_custom_title', 'agca_howdy', 'agca_header', 'agca_header_show_logout', 'agca_footer', 'agca_privacy_options', 'agca_header_logo', 'agca_header_logo_custom', 'agca_remove_site_link', 'agca_wp_logo_custom', 'agca_wp_logo_custom_link', 'agca_profile_color_scheme', 'agca_site_heading', 'agca_custom_site_heading', 'agca_update_bar', 'agca_footer_left', 'agca_footer_left_hide', 'agca_footer_right', 'agca_footer_right_hide', 'agca_check_js_notice', 'agca_login_banner', 'agca_login_banner_text', 'agca_login_photo_remove', 'agca_login_photo_url', 'agca_login_photo_href', 'agca_login_round_box', 'agca_login_round_box_size', 'agca_login_round_box_skip_logo', 'agca_dashboard_icon', 'agca_dashboard_text', 'agca_dashboard_text_paragraph', 'agca_dashboard_widget_welcome', 'agca_dashboard_widget_health_status', 'agca_dashboard_widget_activity', 'agca_dashboard_widget_il', 'agca_dashboard_widget_plugins', 'agca_dashboard_widget_qp', 'agca_dashboard_widget_rn', 'agca_dashboard_widget_rd', 'agca_dashboard_widget_primary', 'agca_dashboard_widget_secondary', 'agca_admin_bar_comments', 'agca_admin_bar_new_content', 'agca_admin_bar_new_content_post', 'agca_admin_bar_new_content_link', 'agca_admin_bar_new_content_page', 'agca_admin_bar_new_content_user', 'agca_admin_bar_new_content_media', 'agca_admin_bar_update_notifications', 'agca_remove_top_bar_dropdowns', 'agca_admin_menu_turnonoff', 'agca_admin_menu_agca_button_only', 'agca_admin_menu_separators', 'agca_admin_menu_icons', 'agca_admin_menu_arrow', 'agca_admin_menu_submenu_round', 'agca_admin_menu_submenu_round_size', 'agca_admin_menu_brand', 'agca_admin_menu_brand_link', 'agca_admin_menu_autofold', 'agca_admin_menu_collapse_button', 'ag_edit_adminmenu_json', 'ag_edit_adminmenu_json_new', 'ag_add_adminmenu_json', 'ag_colorizer_json', 'agca_colorizer_turnonof', 'agca_custom_js', 'agca_custom_css', 'agca_colorizer_turnonoff', 'agca_disablewarning', 'agca_disable_postver', 'agca_menu_remove_client_profile', 'agca_menu_remove_customize_button', ); } function getTextEditor($name){ $settings = array( 'textarea_name' => $name, 'media_buttons' => true, 'tinymce' => array( 'theme_advanced_buttons1' => 'formatselect,|,bold,italic,underline,|,' . 'bullist,blockquote,|,justifyleft,justifycenter' . ',justifyright,justifyfull,|,link,unlink,|' . ',spellchecker,wp_fullscreen,wp_adv' ) ); wp_editor( get_option($name), $name, $settings ); } function importSettings($settings){ $exploaded = explode("|^|^|", $settings); // $str = "EEE: "; $str = ''; $savedOptions = array(); foreach ($exploaded as $setting){ $key = current(explode(':', $setting)); $value = substr($setting, strlen($key)+1); $cleanedValue = str_replace('|^|^|','',$value); $savedOptions[$key] = $cleanedValue; } // print_r($savedOptions); $optionNames = $this->getOptions(); foreach ($optionNames as $optionName){ $optionValue = $savedOptions[$optionName]; if($optionName == "ag_edit_adminmenu_json" || "ag_edit_adminmenu_json_new"|| $optionName == "ag_add_adminmenu_json" ||$optionName == "ag_colorizer_json"){ $optionValue = str_replace("\\\"", "\"", $optionValue); $optionValue = str_replace("\\\'", "\'", $optionValue); }else if($optionName == "agca_custom_js" || $optionName == "agca_custom_css"){ $optionValue = htmlspecialchars_decode($optionValue); $optionValue = str_replace("\'", '"', $optionValue); $optionValue = str_replace('\"', "'", $optionValue); } update_option($optionName, $optionValue); $str.="/".$optionName."/".$optionValue."\n"; } //Migration from 1.2.6. to 1.2.5.1 - remove in later versions //agca_script_css // // fb($savedOptions); if($savedOptions['agca_script_css'] != null){ $optionValue = ""; $optionValue = str_replace("\'", '"', $savedOptions['agca_script_css']); $optionValue = str_replace('\"', "'", $optionValue); update_option('agca_custom_css', $optionValue); } if($savedOptions['agca_script_js'] != null){ $optionValue = ""; $optionValue = str_replace("\'", '"', $savedOptions['agca_script_js']); $optionValue = str_replace('\"', "'", $optionValue); update_option('agca_custom_js', $optionValue); } //echo $str; //save imported settings $this->saveAfterImport = true; } function exportSettings(){ $str = ""; $include_menu_settings = false; if(isset($_POST['export_settings_include_admin_menu'])){ if($_POST['export_settings_include_admin_menu'] == 'on'){ $include_menu_settings = true; } } foreach ($_POST as $key => $value) { if ($this->startsWith($key,'ag')||$this->startsWith($key,'color')) { if($this->startsWith($key,'ag_edit_adminmenu')){ if($include_menu_settings) $str .=$key. ":".$value."|^|^|"; }else{ $str .=$key. ":".$value."|^|^|"; } } } $filename = __('AGCA_Settings', 'ag-custom-admin').'_'.date("Y-M-d_H-i-s").'.agca'; header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename=$filename"); header("Content-Type: text/plain; "); header("Content-Transfer-Encoding: binary"); echo wp_kses_post($str); die(); } function startsWith($haystack, $needle) { $length = strlen($needle); return (substr($haystack, 0, $length) === $needle); } function agca_create_menu() { add_management_page('AGCA', 'AGCA', 'administrator', __FILE__, array(&$this,'agca_admin_page') ); } function filter_url($url = ''){ if (filter_var($url, FILTER_VALIDATE_URL)) { return $url; } return $url; } function filter_target($target = '_self'){ return $target === '_blank' ? '_blank' : '_self'; } function agca_create_admin_button($name,$arr) { $href = $this->filter_url($arr["value"]); $target = $this->filter_target($arr["target"]); $button ="
  • sanitize_html($name) . "\">sanitize_html($href)."\" target=\"".$this->sanitize_html($target)."\" class=\"wp-not-current-submenu menu-top\">
    sanitize_html($name)."\" style=\"width:15px\">
    ".$this->sanitize_html($name)."
  • "; return $button; } function agca_decode($code){ $code = str_replace("{","",$code); $code = str_replace("}","",$code); $code = str_replace("\", \"","\"|||\"",$code); $elements = explode("|||",$code); return $elements; } function jsonMenuArray($json,$type){ $arr = explode("|",$json); $elements = ""; $array =""; $first = true; //print_r($json); if($type == "colorizer"){ $elements = json_decode($arr[0],true); if($elements !=""){ return $elements; } }else if($type == "buttons"){ $elements = json_decode($arr[0],true); if($elements !=""){ foreach($elements as $k => $v){ $array.=$this->agca_create_admin_button($k,$v); } } }else if($type == "buttonsJq"){ $elements = json_decode($arr[0],true); if($elements !=""){ foreach($elements as $k => $v){ $array.='  '; } } }else{ if(isset($arr[$type])){ $elements = $this->agca_decode($arr[$type]); } if($elements !=""){ foreach($elements as $element){ if(!$first){ $array .=","; } $parts = explode(" : ",$element); if(isset($parts[0]) && isset($parts[1])){ $array.="[".$parts[0].", ".$parts[1]."]"; } $first=false; } } } return $array; } function remove_dashboard_widget($widget,$side) { //side can be 'normal' or 'side' remove_meta_box($widget, 'dashboard', $side); } function get_wp_version(){ global $wp_version; $array = explode('-', $wp_version); $version = $array[0]; return $version; } function print_page() { if($this->isGuest() && get_option('agca_admin_bar_frontend_hide') or $this->isCusminActive()){ return false; } if(!$this->isGuest()){ ?>admin_capability())))) { add_filter( 'show_admin_bar', '__return_false' ); ?> context = "page"; //$wpversion = $this->get_wp_version(); ?> jQuery("#wpadminbar #wp-admin-bar-root-default > #wp-admin-bar-wp-logo .ab-sub-wrapper").hide(); jQuery("#wpadminbar #wp-admin-bar-root-default > #wp-admin-bar-site-name .ab-sub-wrapper").hide(); jQuery("#wpadminbar #wp-admin-bar-root-default > #wp-admin-bar-wp-logo .ab-item").attr('title',''); jQuery(".new_content_header_submenu").hide(); jQuery("ul#wp-admin-bar-root-default li#wp-admin-bar-comments").css("display","none"); jQuery("ul#wp-admin-bar-root-default li#wp-admin-bar-new-content").css("display","none"); jQuery("ul#wp-admin-bar-root-default li#wp-admin-bar-new-content li#wp-admin-bar-new-post").css("display","none"); jQuery("ul#wp-admin-bar-root-default li#wp-admin-bar-new-content li#wp-admin-bar-new-link").css("display","none"); jQuery("ul#wp-admin-bar-root-default li#wp-admin-bar-new-content li#wp-admin-bar-new-page").css("display","none"); jQuery("ul#wp-admin-bar-root-default li#wp-admin-bar-new-content li#wp-admin-bar-new-user").css("display","none"); jQuery("ul#wp-admin-bar-root-default li#wp-admin-bar-new-content li#wp-admin-bar-new-media").css("display","none"); jQuery("ul#wp-admin-bar-root-default li#wp-admin-bar-updates").css("display","none"); jQuery("#wphead #header-logo").css("display","none"); jQuery("ul#wp-admin-bar-root-default li#wp-admin-bar-wp-logo").css("display","none"); var img_url = 'sanitize_html($this->sanitize_html(get_option('agca_header_logo_custom'))); ?>'; advanced_url = img_url; image = jQuery("").attr("src",advanced_url); jQuery(image).on('load', function() { jQuery("#wpbody-content").prepend(image); }); jQuery("li#wp-admin-bar-wp-logo a.ab-item span.ab-icon") .html("\"Logo\"sanitize_html(get_option('agca_wp_logo_custom')); ?>\" />") .css('background-image','none') .css('width','auto'); jQuery("li#wp-admin-bar-wp-logo > a.ab-item") .attr('href',"sanitize_html(get_bloginfo('wpurl')); ?>") .css('padding', 0); jQuery("#wpadminbar #wp-admin-bar-root-default > #wp-admin-bar-wp-logo .ab-item:before").attr('title',''); jQuery('body #wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon').attr('class','ab-icon2'); jQuery("#wp-admin-bar-wp-logo").show(); jQuery("#wp-admin-bar-site-name").css("display","none"); var href = ""; if(href == "%SWITCH%"){ href = "sanitize_html(get_bloginfo('wpurl')); ?>"; context == "page"){ ?>href+="/wp-admin"; } jQuery("li#wp-admin-bar-wp-logo a.ab-item").attr('href',href); jQuery("#wphead #site-heading").css("display","none"); jQuery("#wp-admin-bar-site-name a:first").html(""); context =='admin'){ ?> jQuery("#wpadminbar").css("display","none"); jQuery("body.admin-bar").css("padding-top","0"); jQuery("#wphead").css("display","none"); jQuery('html.wp-toolbar').css("padding-top","0"); jQuery("#wpbody-content").prepend('sanitize_html(strip_tags($agca_logout_text)); ?>'); jQuery("ul#wp-admin-bar-user-actions li#wp-admin-bar-logout a").html("sanitize_html(strip_tags(get_option('agca_logout'))); ?>"); jQuery("ul#wp-admin-bar-user-actions li#wp-admin-bar-edit-profile").css("visibility","hidden"); jQuery("ul#wp-admin-bar-user-actions li#wp-admin-bar-edit-profile").css("height","10px"); jQuery('#wpadminbar #wp-admin-bar-top-secondary > #wp-admin-bar-my-account > a').attr('href','#'); jQuery('#wpadminbar #wp-admin-bar-top-secondary #wp-admin-bar-user-info > a').attr('href','#'); jQuery('#wpadminbar #wp-admin-bar-top-secondary #wp-admin-bar-edit-profile > a').attr('href','#'); var logout_content = jQuery("li#wp-admin-bar-logout").html(); jQuery("ul#wp-admin-bar-top-secondary").html('
  • '+ logout_content +'
  • '); jQuery("#wp-admin-bar-logout a").css('padding','0 8px'); isCusminActive()){ $user_id = get_current_user_id(); $current_user = wp_get_current_user(); $profile_url = get_edit_profile_url( $user_id ); if ( 0 != $user_id ) { /* Add the "My Account" menu */ $avatar = get_avatar( $user_id, 28 ); $howdy = sprintf( __(get_option('agca_howdy').', %1$s'), $current_user->display_name ); $class = empty( $avatar ) ? '' : 'with-avatar'; $wp_admin_bar->add_menu( array( 'id' => 'my-account', 'parent' => 'top-secondary', 'title' => htmlentities(strip_tags($howdy)) . $avatar, 'href' => $profile_url, 'meta' => array( 'class' => $class, ), ) ); } } } function updateAllColors(){ ?> function updateAllColors(){ colorizer as $k => $v){ if(($k !="") and ($v !="")){ ?> updateTargetColor("sanitize_html($k);?>","sanitize_html($v);?>"); jQuery('.color_picker').each(function(){ updateColor(jQuery(this).attr('id'),jQuery(this).val()) }); jQuery('label,h1,h2,h3,h4,h5,h6,a,p,.form-table th,.form-wrap label').css('text-shadow','none'); jQuery('#adminmenu li.wp-menu-open').css('border','none'); jQuery('#adminmenu li.wp-menu-open .wp-submenu').css({'border':'none','margin':'0px','border-radius':'0px'}); }roles['administrator']['capabilities']; $capabilitySelector = ""; $selectedValue = get_option('agca_admin_capability'); if($selectedValue == ""){ $selectedValue = "edit_dashboard"; } ksort($capabs); foreach($capabs as $k=>$v){ $selected = ""; if($this->startsWith($k, 'level_')) continue; if($selectedValue == $k){ $selected = " selected=\"selected\" "; } $capabilitySelector .="\n"; } $this->admin_capabilities = ""; } function admin_capability(){ $selectedValue = get_option('agca_admin_capability'); if($selectedValue == ""){ $selectedValue = "edit_dashboard"; } return $selectedValue; } function enableSpecificWPVersionCustomizations($customizations){ /*enable special CSS for this WP version*/ $ver = $this->get_wp_version(); $customizations = str_replace("/*".$ver," ", $customizations); $customizations = str_replace($ver."*/"," ", $customizations); return $customizations; } function removeCSSComments($customizations){ $customizations = preg_replace('#/\*.*?\*/#si','',$customizations); return $customizations; } function agcaAdminSession(){ if(!isset($_SESSION["AGCA"])){ $_SESSION["AGCA"] = array(); } } function getAGCAColor($name){ if(isset($this->colorizer[$name])){ echo $this->sanitize_html($this->colorizer[$name]); } } function agca_error_check(){ ?> menu_item_cleartext($name)); //apply previous submenu customizations if($customizationsSet && isset($previousCustomizations[$url])){ $pc = $previousCustomizations[$url]; } //get submenu $s = array(); if(isset($submenu[$url])){ $sitems = $submenu[$url]; foreach($sitems as $key=>$sub){ $nameSub = $sub[0]; $urlSub = htmlentities($sub[2]); $removeSub = false; $nameSub = htmlentities($this->menu_item_cleartext($nameSub)); $s[$key]=array( 'name'=>$nameSub, 'new'=>'', 'remove'=>$removeSub, 'url'=>htmlentities($urlSub) ); if(isset($pc['submenus'][$key])){ $s[$key]['new'] = htmlentities($pc['submenus'][$key]['new']); $s[$key]['remove'] = $pc['submenus'][$key]['remove']; if($s[$key]['new'] == null){ $s[$key]['new'] = ''; } if($s[$key]['remove'] == null){ $s[$key]['remove'] = false; } } } } $m[$url]=array( 'name'=>$name, 'remove'=>$remove, 'new'=>'', 'url'=>htmlentities($url), 'cls'=>$cls, 'submenus'=>$s ); //apply previous top menu customizations if($customizationsSet && isset($previousCustomizations[$url])){ $pc = $previousCustomizations[$url]; if(isset($pc)){ $m[$url]['remove'] = $pc['remove']; $m[$url]['new'] = htmlentities($pc['new']); } } } return $m; } /** * Applies customizations to admin menu */ function customized_menu(){ $customizations = $this->get_menu_customizations(); global $menu; global $submenu; //apply customizations to original admin menu foreach($menu as $key=>$top){ $url = $top[2]; if(isset($customizations[$url])){ $topCustomized = $customizations[$url]; if($topCustomized['new']) { $menu[$key][0] = $topCustomized['new']; } if($topCustomized['remove']){ unset($menu[$key]); } } } foreach($submenu as $topkey=>$subs){ foreach($subs as $subkey=>$sub){ if(isset($customizations[$topkey]['submenus'][$subkey])){ $cs = $customizations[$topkey]['submenus'][$subkey]; if($cs['new']) { $submenu[$topkey][$subkey][0] = preg_replace("/".$cs['name']."/",$cs['new'], $submenu[$topkey][$subkey][0],1); } if($cs['remove']){ unset($submenu[$topkey][$subkey]); } } } } } /** * Used only for removing admin menu customizations to AGCA 1.5 version or later * @param $checkboxes * @param $textboxes */ function migrate_menu_customizations($checkboxes, $textboxes){ $customizations = $this->get_menu_customizations(); global $menu; $oldTopValue = ""; //Migrate checkboxes foreach($checkboxes as $key=>$value){ $isTop = false; $oldSubValue = ""; if (strpos($key,'<-TOP->') !== false) { $oldTopValue = str_replace('<-TOP->','',$key); $isTop = true; }else{ $oldSubValue = $key; } if($value == 'checked'){ $topIndex = ""; foreach($customizations as $k=>$c){ if($c['cls'] == $oldTopValue){ $topIndex = $k; break; } } if($topIndex == "") continue; if($isTop){ $customizations[$topIndex]['remove'] = true; }else{ if(is_array($customizations[$topIndex]['submenus'])){ foreach($customizations[$topIndex]['submenus'] as $skey=>$sval){ if($sval['name'] == $oldSubValue){ $customizations[$topIndex]['submenus'][$skey]['remove'] = true; } } } } } } //Migrate textboxes foreach($textboxes as $key=>$value){ $isTop = false; $oldSubValue = ""; if (strpos($key,'<-TOP->') !== false) { $oldTopValue = str_replace('<-TOP->','',$key); $isTop = true; }else{ $oldSubValue = $key; } if($value != ''){ $topIndex = ""; foreach($customizations as $k=>$c){ if($c['cls'] == $oldTopValue){ $topIndex = $k; break; } } if($topIndex == "") continue; if($isTop){ $customizations[$topIndex]['new'] = $value; }else{ if(is_array($customizations[$topIndex]['submenus'])){ foreach($customizations[$topIndex]['submenus'] as $skey=>$sval){ if($sval['name'] == $oldSubValue){ if($customizations[$topIndex]['submenus'][$skey]['name'] != $value){ $customizations[$topIndex]['submenus'][$skey]['new'] = $value; } } } } } } } update_option('ag_edit_adminmenu_json','');//remove previous admin menu configuration update_option('ag_edit_adminmenu_json_new',json_encode($customizations)); } //Checks for Cusmin active status on back-end and front-end function isCusminActive(){ //return $this->isPluginActive('cusmin/cusmin.php'); try { if(!is_admin()) { //if cusmin option don't exist in DB, it's not active if(empty(get_option('cusmin'))) { return false; }else { //if cusmin options exist, then include script to check if cusmin is active or not include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); } } if(!function_exists('is_plugin_active')) { return false; } return is_plugin_active('cusmin/cusmin.php'); }catch (\Exception $e){ return false; } } function isPluginActive($plugin){ if(!is_admin()){ return false; } return is_plugin_active($plugin); } function isPluginActiveForNetwork($plugin){ return is_plugin_active_for_network($plugin); } function sanitize($content){ return addslashes(wp_kses_post($content)); } function sanitize_html($content){ return htmlentities(wp_kses_post($content)); } function print_admin_css() { global $wp_roles; $wpversion = $this->get_wp_version(); $this->context = "admin"; $currentScreen = get_current_screen(); ?> agca_get_includes(); $this->admin_capabilities(); wp_get_current_user() ; ?> admin_capability())){ ?> id == 'tools_page_ag-custom-admin/plugin'){ ?>
    isCusminActive()){ return false; } $this->context = "login"; ?> agca_get_includes(); ?> get_wp_version(); $this->agca_error_check(); ?>

    absolutely glamorous custom admin (vsanitize_html($this->agca_version); ?>)

     

    Your feedback:

    Unlock all features
    show_save_button(); ?>
    show_save_button() ?>

    $val){ $strAttributes.=' '.$this->sanitize_html($key).'="'.$this->sanitize_html($val).'"'; } } if(isset($data['input-class'])){ $strInputClass = $this->sanitize_html($data['input-class']); } if(isset($data['hide'])){ $strInputClass .= " visibility"; } if(isset($data['input-attributes'])){ $strInputAttributes = $data['input-attributes']; } if(isset($data['onchange'])){ $strOnchange = $this->sanitize_html($data['onchange']); } if(!isset($data['title'])){ $data['title'] = $this->sanitize_html($data['label']); } if(isset($data['checked'])){ $isChecked = (bool) $data['checked']; }else{ //use default check with the option $isChecked = get_option($data['name'])==true; } ?> > sanitize_html($strOnchange) ?> sanitize_html($strInputAttributes) ?> title='' name="sanitize_html($data['name']) ?>" value="true" /> '.$this->sanitize($data['hint']).'

    '; } if(!isset($data['title'])){ $data['title'] = $data['label']; } if(!isset($data['disabled'])){ $data['disabled'] = false; } if(isset($data['suffix'])){ $suffix = $data['suffix']; } if(isset($data['link']) && $data['link']){ $isLink = true; } if(isset($data['attributes'])){ foreach($data['attributes'] as $key=>$val){ $strAttributes.=' '.$this->sanitize_html($key).'="'.$this->sanitize_html($val).'"'; } } ?> > /> sanitize($suffix) ?> sanitize($strHint) ?> '.$this->sanitize_html($data['hint']).'.

    '; } if(!isset($data['title'])){ $data['title'] = $data['label']; } if(isset($data['class'])){ $strClass = $data['class']; } if(!isset($data['disabled'])){ $data['disabled'] = false; } if($data['disabled']){ $strClass .= ' disabled'; } ?> sanitize($strHint) ?>

    sanitize_html($title) ?>