ACC SHELL
<?php
/**
* Plugin Name: WP Edit
* Plugin URI: https://wpeditpro.com
* Description: Ultimate WordPress Content Editing.
* Version: 4.0
* Author: Josh Lobe
* Author URI: https://wpeditpro.com
* License: GPL2
* Text Domain: wp-edit
* Domain Path: /langs
*/
/*
****************************************************************
Define plugin url
****************************************************************
*/
define('WPEDIT_PLUGIN_URL', plugins_url('', __FILE__).'/');
define('WPEDIT_PLUGIN_PATH', plugin_dir_path(__FILE__));
/*
****************************************************************
Begin Plugin Class
****************************************************************
*/
class wp_edit_class {
/*
****************************************************************
Define WP Edit Plugin Options
****************************************************************
*/
public $global_options_buttons = array(
'toolbar1' => 'bold italic strikethrough bullist numlist blockquote alignleft aligncenter alignright link unlink wp_more hr',
'toolbar2' => 'formatselect underline alignjustify forecolor pastetext removeformat charmap outdent indent undo redo wp_help',
'toolbar3' => '',
'toolbar4' => '',
'tmce_container' => 'fontselect fontsizeselect styleselect backcolor media rtl ltr table anchor code emoticons inserttime wp_page preview print searchreplace visualblocks subscript superscript image_orig advlink acheck abbr columnShortcodes nonbreaking eqneditor'
);
public $global_options_global = array(
'jquery_theme' => 'smoothness',
'disable_admin_links' => '0',
'disable_fancy_tooltips' => '0'
);
public $global_options_general = array(
'linebreak_shortcode' => '0',
'shortcodes_in_widgets' => '0',
'shortcodes_in_excerpts' => '0',
'post_excerpt_editor' => '0',
'page_excerpt_editor' => '0',
'profile_editor' => '0',
'cpt_excerpt_editor' => array()
);
public $global_options_posts = array(
'post_title_field' => 'Enter title here',
'max_post_revisions' => '',
'max_page_revisions' => '',
'delete_revisions' => '0',
'hide_admin_posts' => '',
'hide_admin_pages' => '',
'disable_wpautop' => '0',
'column_shortcodes' => '0'
);
public $global_options_editor = array(
'editor_add_pre_styles' => '0',
'default_editor_fontsize_type' => 'pt',
'default_editor_fontsize_values' => '',
'bbpress_editor' => '0'
);
public $global_options_extras = array(
'signoff_text' => 'Please enter text here...'
);
public $global_options_user_specific = array(
'id_column' => '0',
'thumbnail_column' => '0',
'hide_text_tab' => '0',
'default_visual_tab' => '0',
'dashboard_widget' => '0',
'enable_highlights' => '0',
'draft_highlight' => '#FFFFFF',
'pending_highlight' => '#FFFFFF',
'published_highlight' => '#FFFFFF',
'future_highlight' => '#FFFFFF',
'private_highlight' => '#FFFFFF'
);
// Prepare global settings array (for future use)
public $wpedit_options_array = array();
public $filtered_buttons = array();
public $new_plugin_array = array();
public $default_buttons_array = array();
public $filtered_plugin_buttons = array();
/*
****************************************************************
Class construct
****************************************************************
*/
public function __construct() {
register_activation_hook( __FILE__, array( $this, 'plugin_activate' ) ); // Plugin activation hook
add_action('plugins_loaded', array($this, 'wp_edit_load_translation')); // Language localization
add_filter('plugin_action_links_'.plugin_basename(__FILE__), array($this, 'plugin_settings_link')); // Set plugin settings links
add_action('admin_init', array($this, 'upgrade_notice')); // Dismissable upgrade notice
add_action('admin_menu', array($this, 'add_page')); // Register main admin page
add_action('admin_init', array($this, 'process_activation_redirect')); // Redirect after plugin activation
add_action('admin_init', array($this, 'process_settings_export')); // Export db options
add_action('admin_init', array($this, 'process_settings_import')); // Import db options
add_action('admin_enqueue_scripts', array($this, 'admin_plugins_page_stylesheet'));
add_action('before_wp_tiny_mce', array($this, 'before_wp_tiny_mce')); // Add dashicons to tinymce
add_filter('tiny_mce_before_init', array($this, 'wp_edit_tiny_mce_before_init')); // Before tinymce initialization
add_action('init', array($this, 'wp_edit_init_tinymce')); // Tinymce initialization
add_filter('format_for_editor', array($this, 'htlmedit_pre')); // Filter html content if wpautop is disabled
$plugin_file = basename( __FILE__ );
$plugin_folder = basename( dirname( __FILE__ ) );
$plugin_hook = "in_plugin_update_message-{$plugin_folder}/{$plugin_file}";
add_action($plugin_hook, array($this, 'wpedit_plugin_update_cb'), 10, 2); // Plugin update message
add_action('admin_footer', array($this, 'wpedit_plugin_update_js')); // Plugin update message javascript
// Populate this plugin filtered buttons
$filter_args = array();
$get_filters = apply_filters( 'wp_edit_custom_buttons', $filter_args );
$filters_array = array();
// If the array set is not empty (filters being applied)
if( ! empty( $get_filters ) ) {
foreach( $get_filters as $key => $values ) {
$filters_array[] = $values;
}
}
$this->filtered_buttons = $filters_array;
}
/*
****************************************************************
Activation hook
****************************************************************
*/
public function plugin_activate() {
global $current_user;
// Get DB values
$options_buttons = get_option('wp_edit_buttons');
$options_global = get_option('wp_edit_global');
$options_general = get_option('wp_edit_general');
$options_posts = get_option('wp_edit_posts');
$options_editor = get_option('wp_edit_editor');
$options_extras = get_option('wp_edit_extras');
$options_user_specific = get_user_meta($current_user->ID, 'aaa_wp_edit_user_meta', true);
// Check if DB value exists.. if YES, then keep value.. if NO, then replace with protected defaults
$options_buttons = $options_buttons ? $options_buttons : $this->global_options_buttons;
$options_global = $options_global ? $options_global : $this->global_options_global;
$options_general = $options_general ? $options_general : $this->global_options_general;
$options_posts = $options_posts ? $options_posts : $this->global_options_posts;
$options_editor = $options_editor ? $options_editor : $this->global_options_editor;
$options_extras = $options_extras ? $options_extras : $this->global_options_extras;
$options_user_specific = $options_user_specific ? $options_user_specific : $this->global_options_user_specific;
// Set DB values
update_option('wp_edit_buttons', $options_buttons);
update_option('wp_edit_global', $options_global);
update_option('wp_edit_general', $options_general);
update_option('wp_edit_posts', $options_posts);
update_option('wp_edit_editor', $options_editor);
update_option('wp_edit_extras', $options_extras);
update_user_meta($current_user->ID, 'aaa_wp_edit_user_meta', $options_user_specific);
// Add option for redirect
add_option('wp_edit_activation_redirect', true);
}
/*
****************************************************************
Language localization
****************************************************************
*/
public function wp_edit_load_translation() {
load_plugin_textdomain( 'wp-edit' );
}
/*
****************************************************************
Plugin settings links
****************************************************************
*/
public function plugin_settings_link($links) {
$settings_link = '<a href="admin.php?page=wp_edit_options">'.__('Settings', 'wp-edit').'</a>';
$settings_link2 = '<a target="_blank" href="https://wpeditpro.com">'.__('Go Pro!', 'wp-edit').'</a>';
array_push( $links, $settings_link, $settings_link2 );
return $links;
}
/*
****************************************************************
Dismissable upgrade notice
****************************************************************
*/
public function upgrade_notice() {
// Define variables
global $pagenow;
global $current_user;
$userid = $current_user->ID;
// If we are only on plugins.php admin page...
if($pagenow === 'plugins.php') {
//******************************************************/
// Check 30 day installation notice
//******************************************************/
// Check if plugin install date is set in database
$opt_install = get_option('wp_edit_install');
if($opt_install === false) {
// Set install date to today
update_option('wp_edit_install', date('Y-m-d'));
}
// Compare install date with today
$date_install = isset($opt_install) ? $opt_install : date('Y-m-d');
// If install date is more than 30 days old...
if(strtotime($date_install) < strtotime('-30 days')){
// If the user clicked to dismiss notice...
if ( isset( $_GET['dismiss_wpedit_ug_notice'] ) && 'yes' == $_GET['dismiss_wpedit_ug_notice'] ) {
// Update user meta
add_user_meta( $userid, 'ignore_wpedit_ag_notice', 'yes', true );
}
// If user meta is not set...
if ( !get_user_meta( $userid, 'ignore_wpedit_ag_notice' ) ) {
// Alert plugin update message
function wpedit_wordpress_version_notice() {
global $pagenow;
echo '<div class="updated" style="padding: 0; margin: 0; border: none; background: none;">
<div class="wpedit_plugins_page_banner">
<a href="'.$pagenow.'?dismiss_wpedit_ug_notice=yes"><img class="close_icon" title="" src="'. plugins_url( 'images/close_banner.png', __FILE__ ) .'" alt=""/></a>
<div class="button_div">
<a class="button" target="_blank" href="https://wpeditpro.com">Learn More</a>
</div>
<div class="text">
It\'s time to consider upgrading <strong>WP Edit</strong> to the <strong>PRO</strong> version.<br />
<span>Extend standard plugin functionality with new, enhanced options.</span>
</div>
</div>
</div>';
}
add_action('admin_notices', 'wpedit_wordpress_version_notice');
}
}
//******************************************************/
// Check Custom Buttons API notice
//******************************************************/
// If the user clicked to dismiss notice...
if ( isset( $_GET['dismiss_wpedit_custom_buttons_notice'] ) && 'yes' == $_GET['dismiss_wpedit_custom_buttons_notice'] ) {
// Update user meta
add_user_meta( $userid, 'ignore_wpedit_custom_buttons_notice', 'yes', true );
}
// If user meta is not set...
if ( !get_user_meta( $userid, 'ignore_wpedit_custom_buttons_notice' ) ) {
// Alert plugin update message
function wpedit_custom_buttons_notice() {
global $pagenow;
echo '<div class="updated" style="padding: 0; margin: 0; border: none; background: none;">
<div class="wpedit_plugins_page_banner">
<a href="'.$pagenow.'?dismiss_wpedit_custom_buttons_notice=yes"><img class="close_icon" title="" src="'. plugins_url( 'images/close_banner.png', __FILE__ ) .'" alt=""/></a>
<div class="button_div">
<a class="button" target="_blank" href="http://learn.wpeditpro.com/custom-buttons-api/">Learn More</a>
</div>
<div class="text">
Introducing the WP Edit Custom Buttons API<br />
<span>Tell all your favorite plugin/theme developers they can now add their editor buttons to WP Edit and WP Edit Pro.</span>
</div>
</div>
</div>';
}
add_action('admin_notices', 'wpedit_custom_buttons_notice');
}
}
}
public function admin_plugins_page_stylesheet( $hook ) {
if( $hook == 'plugins.php' ) {
wp_register_style( 'wp_edit_admin_plugins_page_styles', plugin_dir_url( __FILE__ ) . 'css/admin_plugins_page.css', array() ); // Main Admin Page Script File
wp_enqueue_style( 'wp_edit_admin_plugins_page_styles' );
}
}
/*
****************************************************************
Page Functions
****************************************************************
*/
public function add_page() {
$wp_edit_page = add_menu_page(__('WP Edit', 'wp-edit'), __('WP Edit', 'wp-edit'), 'manage_options', 'wp_edit_options', array($this, 'options_do_page'));
add_action('admin_print_scripts-'.$wp_edit_page, array($this, 'admin_scripts'));
add_action('admin_print_styles-'.$wp_edit_page, array($this, 'admin_styles'));
add_action('load-'.$wp_edit_page, array($this, 'load_page'));
}
public function admin_scripts() {
wp_enqueue_script('jquery-ui-core');
wp_enqueue_script('jquery-ui-sortable');
wp_enqueue_script('jquery-ui-dialog');
wp_enqueue_script('jquery-ui-tooltip');
wp_enqueue_script('jquery-ui-tabs');
wp_enqueue_script('wp-color-picker');
wp_register_script( 'wp_edit_js', plugin_dir_url( __FILE__ ) . 'js/admin.js', array() ); // Main Admin Page Script File
wp_enqueue_script( 'wp_edit_js' );
// Pass WP variables to main JS script
$wp_vars = array( 'jwl_plugin_url' => plugin_dir_url( __FILE__ ));
wp_localize_script( 'wp_edit_js', 'jwlWpVars', $wp_vars); // Set wp-content
}
public function admin_styles() {
$options = get_option('wp_edit_global');
$select_theme = isset($options['jquery_theme']) ? $options['jquery_theme'] : 'smoothness';
wp_enqueue_style( 'wp-color-picker' );
wp_enqueue_style('dashicons');
?><link rel="stylesheet" href="//code.jquery.com/ui/1.10.3/themes/<?php echo $select_theme; ?>/jquery-ui.css"><?php
?><link rel="stylesheet" href="<?php echo includes_url().'js/tinymce/skins/lightgray/skin.min.css' ?>"><?php
wp_register_style('wp_edit_css', plugin_dir_url( __FILE__ ) . ('css/admin.css'), array()); // css for admin panel presentation
wp_enqueue_style('wp_edit_css');
}
/*
****************************************************************
Display Page
****************************************************************
*/
public function options_do_page() {
?>
<div class="wrap">
<div id="icon-themes" class="icon32"></div>
<h2><?php _e('WP Edit Settings', 'wp-edit'); ?></h2>
<?php
settings_errors();
$active_tab = isset($_GET['tab']) ? $_GET['tab'] : 'buttons';
/******************************************************************************/
// Make filtered button comparison; alert users if counts do not match
/******************************************************************************/
// First; get all buttons saved in database
$plugin_buttons = get_option('wp_edit_buttons');
$plugin_buttons_string = '';
foreach( $plugin_buttons as $key => $button_string ) {
if( !empty( $button_string ) )
$plugin_buttons_string .= $button_string. ' ';
}
$plugin_buttons_string = rtrim( $plugin_buttons_string, ' ' );
$explode_buttons_string = explode( ' ', $plugin_buttons_string );
// Second; get all plugin default buttons
$plugin_buttons = $this->global_options_buttons;
// Merge all default plugin buttons into single array
$all_array = '';
foreach($plugin_buttons as $slot_array) {
if(!empty($slot_array) && $slot_array != '') { // Skip containter array if empty
$all_array .= $slot_array.' '; // Create single string of all default plugin buttons
}
}
$all_array = rtrim($all_array, ' '); // Remove trailing right space
$plugin_array = explode(' ', $all_array); // Explode at spaces to make single array (this is an array of all current plugin buttons)
// Third; add filtered buttons to second array
$get_filters = $this->filtered_buttons;
// If the array set is not empty (filters being applied)
if( ! empty( $get_filters ) ) {
foreach( $get_filters as $key => $values ) {
$plugin_array[] = $values['button_id'];
}
}
// Create an array of buttons that have been removed
$array_diff = array_diff( $explode_buttons_string, $plugin_array );
// Fourth; make comparison and alert user if filtered buttons have been removed (deactivated)
if( count( $plugin_array ) < count( $explode_buttons_string ) ) {
?>
<div class="error wpep_info">
<p>
<?php _e('The following buttons have been removed:', 'wp_edit_pro'); ?><br />
<strong>
<?php
$buttons = '';
foreach( $array_diff as $key => $button ) { $buttons .= $button . ', '; }
$buttons = rtrim( $buttons, ', ' );
echo $buttons;
?>
</strong><br /><br />
<?php _e('These buttons came from a plugin or theme that has been deactivated.', 'wp_edit_pro'); ?><br />
<?php _e('To remove this message; simply visit the "Buttons" tab and save the buttons.', 'wp_edit_pro'); ?><br />
</p>
</div>
<?php
}
?>
<h2 class="nav-tab-wrapper">
<a href="?page=wp_edit_options&tab=buttons" class="nav-tab <?php echo $active_tab == 'buttons' ? 'nav-tab-active' : ''; ?>"><?php _e('Buttons', 'wp-edit'); ?></a>
<a href="?page=wp_edit_options&tab=global" class="nav-tab <?php echo $active_tab == 'global' ? 'nav-tab-active' : ''; ?>"><?php _e('Global', 'wp-edit'); ?></a>
<a href="?page=wp_edit_options&tab=general" class="nav-tab <?php echo $active_tab == 'general' ? 'nav-tab-active' : ''; ?>"><?php _e('General', 'wp-edit'); ?></a>
<a href="?page=wp_edit_options&tab=posts" class="nav-tab <?php echo $active_tab == 'posts' ? 'nav-tab-active' : ''; ?>"><?php _e('Posts/Pages', 'wp-edit'); ?></a>
<a href="?page=wp_edit_options&tab=editor" class="nav-tab <?php echo $active_tab == 'editor' ? 'nav-tab-active' : ''; ?>"><?php _e('Editor', 'wp-edit'); ?></a>
<a href="?page=wp_edit_options&tab=extras" class="nav-tab <?php echo $active_tab == 'extras' ? 'nav-tab-active' : ''; ?>"><?php _e('Extras', 'wp-edit'); ?></a>
<a href="?page=wp_edit_options&tab=user_specific" class="nav-tab <?php echo $active_tab == 'user_specific' ? 'nav-tab-active' : ''; ?>"><?php _e('User Specific', 'wp-edit'); ?></a>
<a href="?page=wp_edit_options&tab=database" class="nav-tab <?php echo $active_tab == 'database' ? 'nav-tab-active' : ''; ?>"><?php _e('Database', 'wp-edit'); ?></a>
<a href="?page=wp_edit_options&tab=about" class="nav-tab <?php echo $active_tab == 'about' ? 'nav-tab-active' : ''; ?>"><?php _e('About', 'wp-edit'); ?></a>
</h2>
<?php
/*
****************************************************************
Buttons Tab
****************************************************************
*/
if($active_tab == 'buttons'){
$options_buttons = get_option('wp_edit_buttons');
echo '<div class="main_container">';
echo '<div id="main_buttons_container" class="main_buttons_container_float">';
echo '<h3>';
_e('WP Edit Buttons', 'wp-edit');
echo '</h3>';
?>
<div class="metabox-holder">
<div class="postbox">
<div class="inside wpep_act_button_area" id="inside_button_hover">
<h3><?php _e('Button Rows', 'wp-edit'); ?></h3>
<?php
$no_tooltips = false;
$icons_filter = '';
$options_global = get_option('wp_edit_global');
if(isset($options_global['disable_fancy_tooltips']) && $options_global['disable_fancy_tooltips'] === '1') {
$no_tooltips = true;
}
// Loop each toolbar and create array of icons (for later comparison)
foreach( $options_buttons as $toolbar => $icons ) {
if(!empty($icons)) {
$icons_filter .= ' ' . $icons;
}
}
// Loop all buttons and create sortable divs
foreach ($options_buttons as $toolbar => $icons) {
if($toolbar === 'tmce_container') {
?><h3><?php _e('Button Container', 'wp-edit'); ?></h3><?php
}
// Disregard rows 3 and 4
if($toolbar === 'toolbar1' || $toolbar === 'toolbar2' || $toolbar === 'tmce_container') {
echo '<div id="'.$toolbar.'" class="ui-state-default sortable">';
// Create array of icons
if(!empty($icons)) {
$icons = explode(' ', $icons);
}
// Loop icons (if is array)
if(is_array($icons)) {
foreach ($icons as $icon) {
$class = ''; $title = ''; $text = ''; $style = ''; $tooltip = array('title' => '', 'content' => '');
// WP Buttons included by default
if($icon === 'bold') {
$class = 'dashicons dashicons-editor-bold';
$title = 'Bold';
$tooltip['title'] = 'Bold';
$tooltip['content'] = '<p>Apply <strong>bold</strong> to editor text.</p>';
}
else if($icon === 'italic') {
$class = 'dashicons dashicons-editor-italic';
$title = 'Italic';
$tooltip['title'] = 'Italic';
$tooltip['content'] = '<p>Apply <em>italic</em> to editor text.</p>';
}
else if($icon === 'strikethrough') {
$class = 'dashicons dashicons-editor-strikethrough';
$title = 'Strikethrough';
$tooltip['title'] = 'Strikethrough';
$tooltip['content'] = '<p>Apply <strike>strikethrough</strike> to editor text.</p>';
}
else if($icon === 'bullist') {
$class = 'dashicons dashicons-editor-ul';
$title = 'Bullet List';
$tooltip['title'] = 'Bullet List';
$tooltip['content'] = '<p>Create a list of bulleted items.</p>';
}
else if($icon === 'numlist') {
$class = 'dashicons dashicons-editor-ol';
$title = 'Numbered List';
$tooltip['title'] = 'Numbered List';
$tooltip['content'] = '<p>Create a list of numbered items.</p>';
}
else if($icon === 'blockquote') {
$class = 'dashicons dashicons-editor-quote';
$title = 'Blockquote';
$tooltip['title'] = 'Blockquote';
$tooltip['content'] = '<p>Insert a block level quotation.</p>';
}
else if($icon === 'hr') {
$class = 'dashicons dashicons-minus';
$title = 'Horizontal Rule';
$tooltip['title'] = 'Horizontal Rule';
$tooltip['content'] = '<p>Insert a horizontal rule.</p>';
}
else if($icon === 'alignleft') {
$class = 'dashicons dashicons-editor-alignleft';
$title = 'Align Left';
$tooltip['title'] = 'Align Left';
$tooltip['content'] = '<p>Align editor content to the left side of the editor.</p>';
}
else if($icon === 'aligncenter') {
$class = 'dashicons dashicons-editor-aligncenter';
$title = 'Align Center';
$tooltip['title'] = 'Align Center';
$tooltip['content'] = '<p>Align editor content to the center of the editor.</p>';
}
else if($icon === 'alignright') {
$class = 'dashicons dashicons-editor-alignright';
$title = 'Align Right';
$tooltip['title'] = 'Align Right';
$tooltip['content'] = '<p>Align editor content to the right side of the editor.</p>';
}
else if($icon === 'link') {
$class = 'dashicons dashicons-admin-links';
$title = 'Link';
$tooltip['title'] = 'Link';
$tooltip['content'] = '<p>Insert a link around currently selected content.</p>';
}
else if($icon === 'unlink') {
$class = 'dashicons dashicons-editor-unlink';
$title = 'Unlink';
$tooltip['title'] = 'Unlink';
$tooltip['content'] = '<p>Remove the link around currently selected content.</p>';
}
else if($icon === 'wp_more') {
$class = 'dashicons dashicons-editor-insertmore';
$title = 'More';
$tooltip['title'] = 'More';
$tooltip['content'] = '<p>Inserts the read_more() WordPress function; commonly used for excerpts.</p>';
}
else if($icon === 'formatselect') {
$title = 'Format Select';
$text = 'Paragraph';
$tooltip['title'] = 'Paragraph';
$tooltip['content'] = '<p>Adds the Format Select dropdown button; used to select different styles.</p>';
}
else if($icon === 'underline') {
$class = 'dashicons dashicons-editor-underline';
$title = 'Underline';
$tooltip['title'] = 'Underline';
$tooltip['content'] = '<p>Apply <u>underline</u> to editor text.</p>';
}
else if($icon === 'alignjustify') {
$class = 'dashicons dashicons-editor-justify';
$title = 'Align Full';
$tooltip['title'] = 'Align Full';
$tooltip['content'] = '<p>Align selected content to full width of the page.</p>';
}
else if($icon === 'forecolor') {
$class = 'dashicons dashicons-editor-textcolor';
$title = 'Foreground Color';
$tooltip['title'] = 'Foreground Color';
$tooltip['content'] = '<p>Change the foreground color of selected content; commonly used to change text color.</p>';
}
else if($icon === 'pastetext') {
$class = 'dashicons dashicons-editor-paste-text';
$title = 'Paste Text';
$tooltip['title'] = 'Paste Text';
$tooltip['content'] = '<p>Paste content as plain text.</p>';
}
else if($icon === 'removeformat') {
$class = 'dashicons dashicons-editor-removeformatting';
$title = 'Remove Format';
$tooltip['title'] = 'Remove Format';
$tooltip['content'] = '<p>Remove all current formatting from selected content.</p>';
}
else if($icon === 'charmap') {
$class = 'dashicons dashicons-editor-customchar';
$title = 'Character Map';
$tooltip['title'] = 'Character Map';
$tooltip['content'] = '<p>Display a characted map used for inserting special characters.</p>';
}
else if($icon === 'outdent') {
$class = 'dashicons dashicons-editor-outdent';
$title = 'Outdent';
$tooltip['title'] = 'Outdent';
$tooltip['content'] = '<p>Outdent selected content; primary used for paragraph elements.</p>';
}
else if($icon === 'indent') {
$class = 'dashicons dashicons-editor-indent';
$title = 'Indent';
$tooltip['title'] = 'Indent';
$tooltip['content'] = '<p>Indent selected content; primary used for paragraph elements.</p>';
}
else if($icon === 'undo') {
$class = 'dashicons dashicons-undo';
$title = 'Undo';
$tooltip['title'] = 'Undo';
$tooltip['content'] = '<p>Undo last editor action.</p>';
}
else if($icon === 'redo') {
$class = 'dashicons dashicons-redo';
$title = 'Redo';
$tooltip['title'] = 'Redo';
$tooltip['content'] = '<p>Redo last editor action.</p>';
}
else if($icon === 'wp_help') {
$class = 'dashicons dashicons-editor-help';
$title = 'Help';
$tooltip['title'] = 'Help';
$tooltip['content'] = '<p>Displays helpful information such as editor information and keyboard shortcuts.</p>';
}
// WP Buttons not included by default
else if($icon === 'fontselect') {
$title = 'Font Select';
$text = 'Font Family';
$tooltip['title'] = 'Font Select';
$tooltip['content'] = '<p>Apply various fonts to the editor selection.</p><p>Also displays fonts from Google Fonts options (if activated).</p>';
}
else if($icon === 'fontsizeselect') {
$title = 'Font Size Select';
$text = 'Font Sizes';
$tooltip['title'] = 'Font Size Select';
$tooltip['content'] = '<p>Apply various font sizes to the editor selection.</p><p>Default values can be switched from "pt" to "px" via the Editor tab.</p>';
}
else if($icon === 'styleselect') {
$title = 'Formats';
$text = 'Formats';
$tooltip['title'] = 'Formats';
$tooltip['content'] = '<p>Displays quick access to formats like "Headings", "Inline", "Blocks" and "Alignment".</p><p>Any custom styles created (Styles Tab) will also be shown here.</p>';
}
else if($icon === 'backcolor') {
$title = 'Background Color Picker';
$text = '<i class="mce-ico mce-i-backcolor"></i>';
$tooltip['title'] = 'Background Color Picker';
$tooltip['content'] = '<p>Change the background color of selected content; commonly used for high-lighting text.</p>';
}
else if($icon === 'media') {
$class = 'dashicons dashicons-format-video';
$title = 'Media';
$tooltip['title'] = 'Media';
$tooltip['content'] = '<p>Insert media from an external resource (by link); or embed media content into editor.</p>';
}
else if($icon === 'rtl') {
$title = 'Text Direction Right to Left';
$text = '<i class="mce-ico mce-i-rtl"></i>';
$tooltip['title'] = 'Text Direction Right to Left';
$tooltip['content'] = '<p>Forces the text direction from right to left on selected block element.</p>';
}
else if($icon === 'ltr') {
$title = 'Text Direction Left to Right';
$text = '<i class="mce-ico mce-i-ltr"></i>';
$tooltip['title'] = 'Text Direction Left to Right';
$tooltip['content'] = '<p>Forces the text direction from left to right on selected block element.</p>';
}
else if($icon === 'table') {
$title = 'Tables';
$text = '<i class="mce-ico mce-i-table"></i>';
$tooltip['title'] = 'Tables';
$tooltip['content'] = '<p>Insert, edit and modify html tables.</p>';
}
else if($icon === 'anchor') {
$title = 'Anchor';
$text = '<i class="mce-ico mce-i-anchor"></i>';
$tooltip['title'] = 'Anchor';
$tooltip['content'] = '<p>Create an anchor link on the page.</p>';
}
else if($icon === 'code') {
$title = 'HTML Code';
$text = '<i class="mce-ico mce-i-code"></i>';
$tooltip['title'] = 'HTML Code';
$tooltip['content'] = '<p>Displays the html code of the editor content; in a popup window.</p><p>This can be helpful when editing code is necessary, but switching editor views is undesirable.</p><p>Also, the "Code Magic" button provides a much better interface.</p>';
}
else if($icon === 'emoticons') {
$title = 'Emoticons';
$text = '<i class="mce-ico mce-i-emoticons"></i>';
$tooltip['title'] = 'Emoticons';
$tooltip['content'] = '<p>Opens an overlay window with access to common emoticons.</p>';
}
else if($icon === 'inserttime') {
$title = 'Insert Date Time';
$text = '<i class="mce-ico mce-i-insertdatetime"></i>';
$tooltip['title'] = 'Insert Date Time';
$tooltip['content'] = '<p>Inserts the current date and time into the content editor.</p><p>The date format can be adjusted using the "Configuration" tab.</p>';
}
else if($icon === 'wp_page') {
$title = 'Page Break';
$text = '<i class="mce-ico mce-i-pagebreak"></i>';
$tooltip['title'] = 'Page Break';
$tooltip['content'] = '<p>Inserts a page break; which can created "paged" sections of the content.</p>';
}
else if($icon === 'preview') {
$title = 'Preview';
$text = '<i class="mce-ico mce-i-preview"></i>';
$tooltip['title'] = 'Preview';
$tooltip['content'] = '<p>A quick preview of the editor content.</p>';
}
else if($icon === 'print') {
$title = 'Print';
$text = '<i class="mce-ico mce-i-print"></i>';
$tooltip['title'] = 'Print';
$tooltip['content'] = '<p>Print the editor content directly to a printer.</p>';
}
else if($icon === 'searchreplace') {
$title = 'Search and Replace';
$text = '<i class="mce-ico mce-i-searchreplace"></i>';
$tooltip['title'] = 'Search and Replace';
$tooltip['content'] = '<p>Search and/or replace the editor content with specific characters.</p>';
}
else if($icon === 'visualblocks') {
$title = 'Show Blocks';
$text = '<i class="mce-ico mce-i-visualblocks"></i>';
$tooltip['title'] = 'Show Blocks';
$tooltip['content'] = '<p>Shows all block level editor elements with a light border.</p>';
}
else if($icon === 'subscript') {
$title = 'Subscript';
$text = '<i class="mce-ico mce-i-subscript"></i>';
$tooltip['title'] = 'Subscript';
$tooltip['content'] = '<p>Adds a <sub>subscript</sub> to selected editor content (mainly used with text).</p>';
}
else if($icon === 'superscript') {
$title = 'Superscript';
$text = '<i class="mce-ico mce-i-superscript"></i>';
$tooltip['title'] = 'Superscript';
$tooltip['content'] = '<p>Adds a <sup>superscript</sup> to selected editor content (mainly used with text).</p>';
}
else if($icon === 'image_orig') {
$class = 'dashicons dashicons-format-image';
$title = 'Image';
$tooltip['title'] = 'Image';
$tooltip['content'] = '<p>Insert images (by link).</p>';
}
else if($icon === 'p_tags_button') {
$title = 'Paragraph Tag';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/ptags/p_tag.png);width:20px;height:20px;';
$tooltip['title'] = 'Paragraph Tag';
$tooltip['content'] = '<p>Insert paragraph tags (along with attributes); which will not be removed from the editor.</p>';
}
else if($icon === 'line_break_button') {
$title = 'Line Break';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/linebreak/line_break.png);width:20px;height:20px;';
$tooltip['title'] = 'Line Break';
$tooltip['content'] = '<p>Insert line breaks; which will not be removed from the editor.</p><p>This is done by adding a class of "none" to the tag.</p>';
}
else if($icon === 'mailto') {
$title = 'MailTo Link';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/mailto/mailto.gif);width:20px;height:20px;';
$tooltip['title'] = 'MailTo Link';
$tooltip['content'] = '<p>Turns an email address into an active mail link.</p><p>When clicked, it will open the users default mail client to send a message.</p>';
}
else if($icon === 'loremipsum') {
$title = 'Lorem Ipsum';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/loremipsum/loremipsum.png);width:20px;height:20px;';
$tooltip['title'] = 'Lorem Ipsum';
$tooltip['content'] = '<p>Esaily insert placeholder text into the editor.</p><p>Select from multiple languages; and choose the number of elements to add.</p>';
}
else if($icon === 'shortcodes') {
$title = 'Shortcodes';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/shortcodes/shortcodes.gif);width:20px;height:20px;';
$tooltip['title'] = 'Shortcodes';
$tooltip['content'] = '<p>Gathers all available shortcodes and adds them to a dropdown list; for easy editor insertion.</p><p>Note: The shortcodes gathered here do not include any shortcode attributes.</p><p>If shortcode attributes are necessary, they will need to be entered into the shortcode manually.</p>';
}
else if($icon === 'youTube') {
$title = 'YouTube Video';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/youTube/images/youtube.png);width:20px;height:20px;';
$tooltip['title'] = 'YouTube Video';
$tooltip['content'] = '<p>Browse and insert YouTube videos without ever leaving the editor.</p><p>A custom interface allows browsing YouTube videos directly from the editor.</p>';
}
else if($icon === 'clker') {
$title = 'Clker Images';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/clker/img/clker.png);width:20px;height:20px;';
$tooltip['title'] = 'Clker Images';
$tooltip['content'] = '<p>Browse and insert images from the Clker.com website.</p>';
}
else if($icon === 'cleardiv') {
$title = 'Clear Div';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/cleardiv/images/cleardiv.png);width:20px;height:20px;';
$tooltip['title'] = 'Clear Div';
$tooltip['content'] = '<p>Clear editor divs. Selections include "left", "right" and "both".</p>';
}
else if($icon === 'codemagic') {
$title = 'Code Magic';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/codemagic/images/codemagic.png);width:20px;height:20px;';
$tooltip['title'] = 'Code Magic';
$tooltip['content'] = '<p>An advanced html code editor; view and edit the html code from an overlay window.</p><p>Includes syntax highlighting; search and replace; and proper element spacing.</p><p>This is a great option when editing html code is necessary; but swtiching editor views is undesirable.</p>';
}
else if($icon === 'acheck') {
$title = 'Accessibility Checker';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/acheck/img//acheck.png);width:20px;height:20px;';
$tooltip['title'] = 'Accessibility Checker';
$tooltip['content'] = '<p>Checks the editor content for accessibility by other devices.</p>';
}
else if($icon === 'advlink') {
$title = 'Insert/Edit Advanced Link';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/advlink/images/advlink.png);width:20px;height:20px;';
$tooltip['title'] = 'Insert/Edit Advanced Link';
$tooltip['content'] = '<p>Insert and edit links; along with various atttributes.</p><p>Populates with all posts and pages; so linking to current content is a one-click process.</p><p>Also includes javascript attributes (onclick, onmouseover, etc.); which can be used for executing javascript functions.</p>';
}
else if($icon === 'advhr') {
$title = 'Advanced Horizontal Line';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/advhr/images/advhr.png);width:20px;height:20px;';
$tooltip['title'] = 'Advanced Horizontal Line';
$tooltip['content'] = '<p>Modify various options of the horizontal line; like shadow and width.</p>';
}
else if($icon === 'advimage') {
$title = 'Advanced Insert/Edit Image';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/advimage/images//advimage.png);width:20px;height:20px;';
$tooltip['title'] = 'Advanced Insert/Edit Image';
$tooltip['content'] = '<p>Insert/Edit images with more control.</p><p>Define image attributes, image margin, image padding and image border.</p><p>Also includes javascript attributes (onclick, onmouseover, etc.); which can be used for executing javascript functions.</p>';
}
else if($icon === 'formatPainter') {
$class = 'dashicons dashicons-admin-appearance';
$title = 'Format Painter';
$tooltip['title'] = 'Format Painter';
$tooltip['content'] = '<p>Copies styling from one element; and applies the same styling to another element.</p>';
}
else if($icon === 'googleImages') {
$title = 'Google Images';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/googleImages/images/googleImages.png);width:20px;height:20px;';
$tooltip['title'] = 'Google Images';
$tooltip['content'] = '<p>Browse and insert Google images without ever leaving the content editor.</p>';
}
else if($icon === 'abbr') {
$title = 'Abbreviation';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/abbr/abbr.png);width:20px;height:20px;';
$tooltip['title'] = 'Abbreviation';
$tooltip['content'] = '<p>Add an abbreviation to selected editor content.</p>';
}
else if($icon === 'imgmap') {
$title = 'Image Map';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/imgmap/images/imgmap.png);width:20px;height:20px;';
$tooltip['title'] = 'Image Map';
$tooltip['content'] = '<p>Create an image map from an image.</p><p>Allows multiple "hot spots" on a single image. Each "hot spot" can link to a different url.</p>';
}
else if($icon === 'columnShortcodes') {
$class = 'dashicons dashicons-schedule';
$title = 'Column Shortcodes';
$tooltip['title'] = 'Column Shortcodes';
$tooltip['content'] = '<p>A tool for easily inserting column shortcode templates.</p>';
}
else if($icon === 'nonbreaking') {
$title = 'Nonbreaking Space';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/nonbreaking/nonbreaking.png);width:20px;height:20px;';
$tooltip['title'] = 'Nonbreaking Space';
$tooltip['content'] = '<p>Insert a nonbreaking space; which will not be removed from the editor.</p>';
}
else if($icon === 'eqneditor') {
$title = 'CodeCogs Equation Editor';
$style='background-image:url('.WPEDIT_PLUGIN_URL.'plugins/eqneditor/img/eqneditor.png);width:20px;height:20px;';
$tooltip['title'] = 'CodeCogs Equation Editor';
$tooltip['content'] = '<p>Create complex math equations from a simple interface.</p>';
}
else {
$get_filters = $this->filtered_buttons;
// If the array set is not empty (filters being applied)
if( ! empty( $get_filters ) ) {
$check_filter = array();
foreach( $get_filters as $key => $values ) {
$check_filter[$values['button_id']] = $values;
}
// If this button is in filtered array
if( array_key_exists( $icon, $check_filter ) ) {
$array_key = $check_filter[$icon];
$title = isset( $array_key['tooltip_title'] ) && $array_key['tooltip_title'] !== '' ? $array_key['tooltip_title'] : '';
$class = isset( $array_key['dashicon'] ) && $array_key['dashicon'] !== '' ? $array_key['dashicon'] : '';
$text = isset( $array_key['button_text'] ) && $array_key['button_text'] !== '' ? $array_key['button_text'] : '';
$style = isset( $array_key['custom_icon'] ) && $array_key['custom_icon'] !== '' ? 'background-image:url(' . $array_key['custom_icon'] . ');width:20px;height:20px;' : '';
$tooltip['title'] = isset( $array_key['tooltip_title'] ) && $array_key['tooltip_title'] !== '' ? $array_key['tooltip_title'] : '';
$tooltip['content'] = isset( $array_key['tooltip_content'] ) && $array_key['tooltip_content'] !== '' ? $array_key['tooltip_content'] : '';
}
}
}
// Process tooltips
$tooltip_title = isset($tooltip['title']) ? $tooltip['title'] : 'Title not found';
$tooltip_content = isset($tooltip['content']) ? $tooltip['content'] : '<p>Content not found. Please report to the plugin developer.</p>';
// Are we displaying fancy tooltips?
$tooltip_att = ($no_tooltips === false) ? 'data-tooltip="<h4 class=\'data_tooltip_title\'>'.htmlspecialchars($tooltip_title).'</h4><hr />'.htmlspecialchars($tooltip_content).'" ' : '';
// ARRAY CHECKING BEFORE DISPLAYING BUTTON FROM DATABASE
// This will keep saved filtered buttons from displaying (and removes when user saves); if their parent was deactivated
// Create array of default buttons (and filter buttons)
$plugin_buttons = $this->global_options_buttons;
$check_array = '';
foreach( $plugin_buttons as $button ) {
if( !empty( $button ) && $button != '' ) { // Skip containter array if empty
$check_array .= $button . ' '; // Create single string of all default plugin buttons
}
}
$get_filters = $this->filtered_buttons;
// If the array set is not empty (filters being applied)
if( ! empty( $get_filters ) ) {
foreach( $get_filters as $key => $values ) {
$check_array .= $values['button_id'] . ' ';
}
}
$trim_check_array = rtrim( $check_array, ' ' );
$explode_check_array = explode( ' ', $trim_check_array );
// If button is in active array; display div
if( in_array( $icon, $explode_check_array ) ) {
// Display button
echo '<div '.$tooltip_att.' id="'.$icon.'" class="ui-state-default draggable '.$class.'" title="'.$title.'"><span style="'.esc_attr($style).'">'.$text.'</span></div>';
}
}
}
/**************************************/
// Button filter for plugins/themes
/**************************************/
$filter_flag = false;
// Create array of saved buttons
if( $icons_filter !== '' ) {
$trim_filter = trim( $icons_filter );
$icons_filter_array = explode( ' ', $trim_filter );
}
$get_filters = $this->filtered_buttons;
// If the array set is not empty (filters being applied)
if( ! empty( $get_filters ) ) {
foreach( $get_filters as $key => $values ) {
if( ! in_array( $values['button_id'], $icons_filter_array ) ) {
$title = isset( $values['tooltip_title'] ) && $values['tooltip_title'] !== '' ? $values['tooltip_title'] : '';
$content = isset( $values['tooltip_content'] ) && $values['tooltip_content'] !== '' ? $values['tooltip_content'] : '';
$class = isset( $values['dashicon'] ) && $values['dashicon'] !== '' ? $values['dashicon'] : '';
$text = isset( $values['button_text'] ) && $values['button_text'] !== '' ? $values['button_text'] : '';
$style = isset( $values['custom_icon'] ) && $values['custom_icon'] !== '' ? 'background-image:url(' . $values['custom_icon'] . ');width:20px;height:20px;' : '';
$span = $style !== '' ? '<span style="' . $style . '">' . $text . '</span>' : '<span>' . $text . '</span>';
$row = isset( $values['editor_row'] ) && $values['editor_row'] !== '' ? $values['editor_row'] : 'tmce_container';
/// Filter buttons by row
if( $toolbar === $row ) {
echo '<div
data-tooltip="<h4 class=\'data_tooltip_title\'>'.htmlspecialchars( $title ) . '</h4>
<hr /><p>'.htmlspecialchars( $content ).'</p>"
id="' . $values['button_id'] . '"
class="ui-state-default draggable new_button ' . $class . '"
title="' . $title . '">' . $span .
'</div>'
;
}
$filter_flag = true;
}
}
}
echo '</div>'; // End foreach .sortable
} // End not rows 3 and 4
}
if( $filter_flag === true ) {
echo '<div class="error">';
echo '<h4>';
_e('New buttons have been added via other plugins (or theme).', 'wp_edit_pro');
echo '<br />';
_e('Move them to a new location (if desired) and click "Save Buttons".', 'wp_edit_pro');
echo '</h4>';
echo '</div>';
}
?>
</div> <!-- End #inside_button_hover -->
</div> <!-- End .postbox -->
</div> <!-- End .metabox -->
</div> <!-- End .main_buttons_container_float -->
<?php
// Build input for passing button arrangements
echo '<form method="post" action="">';
echo '<input type="hidden" class="get_sorted_array" name="get_sorted_array_results" value="" />';
// Submit save buttons
echo '<input type="submit" value="'.__('Save Buttons', 'wp-edit').'" name="wpep_save_buttons" class="button-primary" />';
// Submit reset buttons
echo '<span style="margin-left:10px;"></span>';
echo '<input type="button" value="'.__('Reset Buttons', 'wp-edit').'" class="button-primary reset_dd_buttons" />';
echo '<input type="submit" name="wpep_reset_buttons" class="button-primary wpep_reset_buttons" style="display:none;" />';
// Create nonce
wp_nonce_field( 'wpe_save_buttons_opts' );
echo '</form>';
echo '</div>';
echo '<div class="main_container">';
echo '<h3>';
_e('Buttons Tips', 'wp-edit');
echo '</h3>';
?>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<div id="button_help_tabs">
<ul>
<li><a href="#dragdrop"><?php _e('Drag/Drop', 'wp-edit'); ?></a></li>
<li><a href="#multiselect"><?php _e('Multi Select', 'wp-edit'); ?></a></li>
<li><a href="#reset"><?php _e('Reset', 'wp-edit'); ?></a></li>
<li><a href="#custom_api"><?php _e('Custom Buttons API', 'wp-edit'); ?></a></li>
</ul>
<div id="dragdrop">
<p>
<?php _e('Buttons can be dragged and dropped into desired button rows.', 'wp-edit'); ?><br />
<?php _e('The "Button Container" is a placeholder for buttons not used in the editor; these buttons will not appear when editing a post or page.', 'wp-edit'); ?>
</p>
</div>
<div id="multiselect">
<p>
<?php _e('Buttons may also be selected in quantities; or multiple selections, before being moved.', 'wp-edit'); ?>
</p>
<p>
<?php _e('Clicking a button will set it as "active"; a yellowish highlight color. Multiple buttons can be clicked and set as "active".', 'wp-edit'); ?><br />
<?php _e('Clicking and dragging one of the "active" buttons will move the entire "active" selection.', 'wp-edit'); ?><br />
<?php _e('Clicking outside the button area will remove all currently active button selections.', 'wp-edit'); ?>
</p>
</div>
<div id="reset">
<p>
<?php _e('Clicking "Reset Buttons" will restore the editor buttons to their original default values.', 'wp-edit'); ?><br />
<?php _e('All button rows will get the default WordPress button arrangements; and the extra buttons will be added to the "Button Container".', 'wp-edit'); ?>
</p>
</div>
<div id="custom_api">
<p>
<?php _e('WP Edit now uses a Custom Buttons API which allows other plugin/theme developers to add their editor buttons into the system.', 'wp-edit'); ?><br />
<?php printf( __('Please direct all your favorite plugin/theme developers to the <a target="_blank" href="%s">Custom Buttons API</a> documentation.', 'wp-edit'), 'http://learn.wpeditpro.com/custom-buttons-api/'); ?>
</p>
</div>
</div>
</div>
</div>
</div>
<?php
echo '</div>';
}
/*
****************************************************************
Global Tab
****************************************************************
*/
else if($active_tab == 'global') {
echo '<div class="main_container">';
?>
<h3><?php _e('Global Options', 'wp-edit'); ?></h3>
<form method="post" action="">
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<?php
$options_global = get_option('wp_edit_global');
$jquery_theme = isset($options_global['jquery_theme']) ? $options_global['jquery_theme'] : 'smoothness';
$disable_admin_links = isset($options_global['disable_admin_links']) && $options_global['disable_admin_links'] === '1' ? 'checked="checked"' : '';
$disable_fancy_tooltips = isset($options_global['disable_fancy_tooltips']) && $options_global['disable_fancy_tooltips'] === '1' ? 'checked="checked"' : '';
?>
<table cellpadding="10">
<tbody>
<tr><td><?php _e('jQuery Theme', 'wp-edit'); ?></td>
<td>
<select id="jquery_theme" name="jquery_theme"/>
<?php
$jquery_themes = array('base','black-tie','blitzer','cupertino','dark-hive','dot-luv','eggplant','excite-bike','flick','hot-sneaks','humanity','le-frog','mint-choc','overcast','pepper-grinder','redmond','smoothness','south-street','start','sunny','swanky-purse','trontastic','ui-darkness','ui-lightness','vader');
foreach($jquery_themes as $jquery_theme) {
$selected = ($options_global['jquery_theme']==$jquery_theme) ? 'selected="selected"' : '';
echo "<option value='$jquery_theme' $selected>$jquery_theme</option>";
}
?>
</select>
<label for="jquery_theme"> <?php _e('Selects the jQuery theme for plugin alerts and notices.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Disable Admin Links', 'wp-edit'); ?></td>
<td>
<input id="disable_admin_links" type="checkbox" value="1" name="disable_admin_links" <?php echo $disable_admin_links; ?> />
<label for="disable_admin_links"><?php _e('Disables the WP Edit top admin bar links.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Disable Fancy Tooltips', 'wp-edit'); ?></td>
<td>
<input id="disable_fancy_tooltips" type="checkbox" value="1" name="disable_fancy_tooltips" <?php echo $disable_fancy_tooltips; ?> />
<label for="disable_fancy_tooltips"><?php _e('Disables the fancy tooltips used on button hover.', 'wp-edit'); ?></label>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<input type="submit" value="<?php _e('Save Global Options', 'wp-edit'); ?>" class="button button-primary" id="submit_global" name="submit_global">
<?php wp_nonce_field( 'wpe_save_global_opts' ); ?>
</form>
<?php
echo '</div>';
}
/*
****************************************************************
General Tab
****************************************************************
*/
else if($active_tab == 'general'){
// Get all cpt's (_builtin will exclude default post types)
$post_types = get_post_types( array( 'public' => true, '_builtin' => false ), 'names' );
echo '<div class="main_container">';
?>
<h3><?php _e('General Options', 'wp-edit'); ?></h3>
<form method="post" action="">
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<?php
$options_general = get_option('wp_edit_general');
$linebreak_shortcode = isset($options_general['linebreak_shortcode']) && $options_general['linebreak_shortcode'] === '1' ? 'checked="checked"' : '';
$shortcodes_in_widgets = isset($options_general['shortcodes_in_widgets']) && $options_general['shortcodes_in_widgets'] === '1' ? 'checked="checked"' : '';
$shortcodes_in_excerpts = isset($options_general['shortcodes_in_excerpts']) && $options_general['shortcodes_in_excerpts'] === '1' ? 'checked="checked"' : '';
$post_excerpt_editor = isset($options_general['post_excerpt_editor']) && $options_general['post_excerpt_editor'] === '1' ? 'checked="checked"' : '';
$page_excerpt_editor = isset($options_general['page_excerpt_editor']) && $options_general['page_excerpt_editor'] === '1' ? 'checked="checked"' : '';
$profile_editor = isset($options_general['profile_editor']) && $options_general['profile_editor'] === '1' ? 'checked="checked"' : '';
$cpt_excerpts = isset($options_general['cpt_excerpt_editor']) ? $options_general['cpt_excerpt_editor'] : array();
?>
<table cellpadding="8">
<tbody>
<tr><td><?php _e('Linebreak Shortcode', 'wp-edit'); ?></td>
<td>
<input id="linebreak_shortcode" type="checkbox" value="1" name="linebreak_shortcode" <?php echo $linebreak_shortcode; ?> />
<label for="linebreak_shortcode"><?php _e('Use the [break] shortcode to insert linebreaks in the editor.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Shortcodes in Widgets', 'wp-edit'); ?></td>
<td>
<input id="shortcodes_in_widgets" type="checkbox" value="1" name="shortcodes_in_widgets" <?php echo $shortcodes_in_widgets; ?> />
<label for="shortcodes_in_widgets"><?php _e('Use shortcodes in widget areas.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Shortcodes in Excerpts', 'wp-edit'); ?></td>
<td>
<input id="shortcodes_in_excerpts" type="checkbox" value="1" name="shortcodes_in_excerpts" <?php echo $shortcodes_in_excerpts; ?> />
<label for="shortcodes_in_excerpts"><?php _e('Use shortcodes in excerpt areas.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Profile Editor', 'wp-edit'); ?></td>
<td class="jwl_user_cell">
<input id="profile_editor" type="checkbox" value="1" name="profile_editor" <?php echo $profile_editor; ?> />
<label for="profile_editor"><?php _e('Use modified editor in profile biography field.', 'wp-edit'); ?></label>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="postbox">
<div class="inside">
<table cellpadding="8">
<tbody>
<tr><td><?php _e('WP Edit Post Excerpt', 'wp-edit'); ?></td>
<td>
<input id="post_excerpt_editor" type="checkbox" value="1" name="post_excerpt_editor" <?php echo $post_excerpt_editor; ?> />
<label for="post_excerpt_editor"><?php _e('Add the WP Edit editor to the Post Excerpt area.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('WP Edit Page Excerpt', 'wp-edit'); ?></td>
<td>
<input id="page_excerpt_editor" type="checkbox" value="1" name="page_excerpt_editor" <?php echo $page_excerpt_editor; ?> />
<label for="page_excerpt_editor"><?php _e('Add the WP Edit editor to the Page Excerpt area.', 'wp-edit'); ?></label>
</td>
</tr>
</tbody>
</table>
<h3><?php _e('Custom Post Type Excerpts', 'wp-edit'); ?></h3>
<table cellpadding="3" style="margin-left:7px;">
<tbody>
<?php
if( !empty( $post_types) ) {
foreach ( $post_types as $post_type ) {
$selected = in_array($post_type, $cpt_excerpts) ? 'checked="checked"' : '';
echo '<tr><td><input type="checkbox" name="cpt_excerpt_editor['.$post_type.']" '.$selected.'> '.$post_type.'</td></tr>';
}
}
else {
echo '<tr><td>';
_e('No registered custom post types were found.', 'wp-edit');
echo '</td></tr>';
}
?>
</tbody>
</table>
</div>
</div>
</div>
<input type="submit" value="<?php _e('Save General Options', 'wp-edit'); ?>" class="button button-primary" id="submit_general" name="submit_general">
<?php wp_nonce_field( 'wpe_save_general_opts' ); ?>
</form>
<?php
echo '</div>';
}
/*
****************************************************************
Posts/Pages Tab
****************************************************************
*/
else if($active_tab == 'posts'){
$options_posts = get_option('wp_edit_posts');
$post_title_field = isset($options_posts['post_title_field']) ? $options_posts['post_title_field'] : 'Enter title here';
$column_shortcodes = isset($options_posts['column_shortcodes']) && $options_posts['column_shortcodes'] === '1' ? 'checked="checked"' : '';
$disable_wpautop = isset($options_posts['disable_wpautop']) && $options_posts['disable_wpautop'] === '1' ? 'checked="checked"' : '';
$max_post_revisions = isset($options_posts['max_post_revisions']) ? $options_posts['max_post_revisions'] : '';
$max_page_revisions = isset($options_posts['max_page_revisions']) ? $options_posts['max_page_revisions'] : '';
$hide_admin_posts = isset($options_posts['hide_admin_posts']) ? $options_posts['hide_admin_posts'] : '';
$hide_admin_pages = isset($options_posts['hide_admin_pages']) ? $options_posts['hide_admin_pages'] : '';
echo '<div class="main_container">';
?>
<h3><?php _e('Posts/pages Options', 'wp-edit'); ?></h3>
<form method="post" action="">
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<table cellpadding="8">
<tbody>
<tr><td><?php _e('Post/Page Default Title', 'wp-edit'); ?></td>
<td>
<input type="text" name="post_title_field" value="<?php echo $post_title_field ?>" />
<label for="post_title_field"><?php _e('Change the default "add new" post/page title field.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Column Shortcodes', 'wp-edit'); ?></td>
<td>
<input id="column_shortcodes" type="checkbox" value="1" name="column_shortcodes" <?php echo $column_shortcodes; ?> />
<label for="column_shortcodes"><?php _e('Enable the column shortcodes functionality.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Disable wpautop()', 'wp-edit'); ?></td>
<td>
<input id="disable_wpautop" type="checkbox" value="1" name="disable_wpautop" <?php echo $disable_wpautop; ?> />
<label for="disable_wpautop"><?php _e('Disable the filter responsible for removing p and br tags.', 'wp-edit'); ?></label>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3><?php _e('Page Revisions', 'wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<table cellpadding="8">
<tbody>
<tr><td><?php _e('Max Post Revisions', 'wp-edit'); ?></td>
<td>
<input type="text" name="max_post_revisions" value="<?php echo $max_post_revisions ?>" />
<label for="max_post_revisions"><?php _e('Set max number of Post Revisions to store in database. (empty = unlimited)', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Max Page Revisions', 'wp-edit'); ?></td>
<td>
<input type="text" name="max_page_revisions" value="<?php echo $max_page_revisions ?>" />
<label for="max_page_revisions"><?php _e('Set max number of Page Revisions to store in database. (empty = unlimited)', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Delete Revisions', 'wp-edit'); ?></td>
<td>
<input id="delete_revisions" type="checkbox" value="1" name="delete_revisions" />
<label for="delete_revisions"><?php _e('Delete all database revisions.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Revisions DB Size', 'wp-edit'); ?></td>
<td>
<?php
global $wpdb;
$query = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_type = 'revision'", ARRAY_A );
$lengths = 0;
foreach ($query as $row) {
$lengths += strlen($row['post_content']);
}
_e('Current size of revisions stored in database:', 'wp-edit');
echo ' <strong>'.number_format($lengths/(1024*1024),3).' mb</strong>';
?>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3><?php _e('Hide Posts and Pages', 'wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<table cellpadding="8">
<tbody>
<tr><td><?php _e('Hide Admin Posts', 'wp-edit'); ?></td>
<td>
<input type="text" name="hide_admin_posts" value="<?php echo $hide_admin_posts ?>" />
<label for="hide_admin_posts"><?php _e('Hide selected posts from admin view. ID comma separated (1,5,14,256)', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Hide Admin Pages', 'wp-edit'); ?></td>
<td>
<input type="text" name="hide_admin_pages" value="<?php echo $hide_admin_pages ?>" />
<label for="hide_admin_pages"><?php _e('Hide selected pages from admin view. ID comma separated (1,5,14,256)', 'wp-edit'); ?></label>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<input type="submit" value="<?php _e('Save Posts/Pages Options', 'wp-edit'); ?>" class="button button-primary" id="submit_posts" name="submit_posts">
<?php wp_nonce_field( 'wpe_save_posts_pages_opts' ); ?>
</form>
<?php
echo '</div>';
}
/*
****************************************************************
Editor Tab
****************************************************************
*/
else if($active_tab == 'editor'){
?>
<form method="post" action="">
<div class="main_container">
<h3><?php _e('Styles Options', 'wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<p style="margin-left:10px;"><?php _e('Adds predefined styles; which can be applied to editor content.', 'wp-edit'); ?><br />
<?php _e('Please be sure the "Formats" button is active in the editor.', 'wp-edit'); ?></p>
<?php
$options_editor = get_option('wp_edit_editor');
$editor_add_pre_styles = isset($options_editor['editor_add_pre_styles']) && $options_editor['editor_add_pre_styles'] === '1' ? 'checked="checked"' : '';
$default_editor_fontsize_type = isset($options_editor['default_editor_fontsize_type']) ? $options_editor['default_editor_fontsize_type'] : 'pt';
$default_editor_fontsize_values = isset($options_editor['default_editor_fontsize_values']) ? $options_editor['default_editor_fontsize_values'] : '';
$bbpress_editor = isset($options_editor['bbpress_editor']) && $options_editor['bbpress_editor'] === '1' ? 'checked="checked"' : '';
?>
<table cellpadding="8">
<tbody>
<tr><td><?php _e('Add Pre-defined Styles', 'wp-edit'); ?></td>
<td>
<input id="editor_add_pre_styles" type="checkbox" value="1" name="editor_add_pre_styles" <?php echo $editor_add_pre_styles; ?> />
<label for="editor_add_pre_styles"><?php _e('Adds predefined styles to the "Formats" dropdown button.', 'wp-edit'); ?></label>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3><?php _e('TinyMCE Options', 'wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<p style="margin-left:10px;"><?php _e('These options will adjust various parts of the TinyMCE initialization process.', 'wp-edit'); ?></p>
<table cellpadding="8">
<tbody>
<tr><td><?php _e('Dropdown Editor Font-Size Type', 'wp-edit'); ?></td>
<td>
<input type="radio" name="default_editor_fontsize_type" value="px" <?php if($default_editor_fontsize_type === 'px') echo 'checked="checked"'; ?> /> <?php _e('px', 'wp-edit'); ?><span style="margin-left:10px;"></span>
<input type="radio" name="default_editor_fontsize_type" value="pt" <?php if($default_editor_fontsize_type === 'pt') echo 'checked="checked"'; ?> /> <?php _e('pt', 'wp-edit'); ?><span style="margin-left:10px;"></span>
<input type="radio" name="default_editor_fontsize_type" value="em" <?php if($default_editor_fontsize_type === 'em') echo 'checked="checked"'; ?> /> <?php _e('em', 'wp-edit'); ?><span style="margin-left:10px;"></span>
<input type="radio" name="default_editor_fontsize_type" value="percent" <?php if($default_editor_fontsize_type === 'percent') echo 'checked="checked"'; ?> /> <?php _e('%', 'wp-edit'); ?><br />
<?php _e('Select the editor font size type displayed in the "Font Size" button dropdown menu.', 'wp-edit'); ?>
</td>
</tr>
<tr><td style="vertical-align:top;"><?php _e('Dropdown Editor Font-Size Type Values', 'wp-edit'); ?></td>
<td>
<input type="text" name="default_editor_fontsize_values" value="<?php echo $default_editor_fontsize_values; ?>" /><br />
<?php _e('Define available font-size values for Font Size dropdown box.', 'wp-edit'); ?><br />
<?php _e('Values should be space separated; and end with the chosen font size type (selected above).', 'wp-edit'); ?><br />
<?php _e('For Example: If <strong>em</strong> is selected; possible values could be <strong>1em 1.1em 1.2em</strong> etc.', 'wp-edit'); ?>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3><?php _e('BBPress Options', 'wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<p style="margin-left:10px;"><?php _e('Options for the editor used in the BBPress forums.', 'wp-edit'); ?></p>
<table cellpadding="8">
<tbody>
<tr><td><?php _e('Enable Visual BBPRess Editor', 'wp-edit'); ?></td>
<td>
<input id="bbpress_editor" type="checkbox" value="1" name="bbpress_editor" <?php echo $bbpress_editor; ?> />
<label for="bbpress_editor"><?php _e('Replaces default textarea with modified visual editor.', 'wp-edit'); ?></label>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<input type="submit" value="<?php _e('Save Editor Options', 'wp-edit'); ?>" class="button button-primary" id="submit_editor" name="submit_editor">
<?php wp_nonce_field( 'wpe_save_editor_opts' ); ?>
</div>
</form>
<?php
}
/*
****************************************************************
Extras Tab
****************************************************************
*/
else if($active_tab == 'extras') {
?>
<form method="post" action="">
<div class="main_container">
<h3><?php _e('Extra Options', 'wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<h3><?php _e('Signoff Text', 'wp-edit'); ?></h3>
<p style="margin-left:10px;"><?php _e('Use the editor below to create a content chunk that can be inserted anywhere using the', 'wp-edit'); ?> <strong>[signoff]</strong> <?php _e('shortcode.', 'wp-edit'); ?></p>
<table cellpadding="8" width="100%">
<tbody>
<tr><td>
<?php
$options_extras = get_option('wp_edit_extras');
$content = isset($options_extras['signoff_text']) ? $options_extras['signoff_text'] : 'Please enter text here...';
$editor_id = 'wp_edit_signoff';
$args = array('textarea_rows' => 10, 'width' => '100px');
wp_editor( $content, $editor_id, $args );
?>
</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<input type="submit" value="Save Extras Options" class="button button-primary" id="submit_extras" name="submit_extras">
<?php wp_nonce_field( 'wpe_save_extras_opts' ); ?>
</div>
</form>
<?php
}
/*
****************************************************************
User Specific Tab
****************************************************************
*/
else if($active_tab == 'user_specific') {
global $current_user;
$options_user_meta = get_user_meta($current_user->ID, 'aaa_wp_edit_user_meta', true);
$id_column = isset($options_user_meta['id_column']) && $options_user_meta['id_column'] === '1' ? 'checked="checked"' : '';
$thumbnail_column = isset($options_user_meta['thumbnail_column']) && $options_user_meta['thumbnail_column'] === '1' ? 'checked="checked"' : '';
$hide_text_tab = isset($options_user_meta['hide_text_tab']) && $options_user_meta['hide_text_tab'] === '1' ? 'checked="checked"' : '';
$default_visual_tab = isset($options_user_meta['default_visual_tab']) && $options_user_meta['default_visual_tab'] === '1' ? 'checked="checked"' : '';
$dashboard_widget = isset($options_user_meta['dashboard_widget']) && $options_user_meta['dashboard_widget'] === '1' ? 'checked="checked"' : '';
$enable_highlights = isset($options_user_meta['enable_highlights']) && $options_user_meta['enable_highlights'] === '1' ? 'checked="checked"' : '';
$draft_highlight = isset($options_user_meta['draft_highlight']) ? $options_user_meta['draft_highlight'] : '#FFFFFF';
$pending_highlight = isset($options_user_meta['pending_highlight']) ? $options_user_meta['pending_highlight'] : '#FFFFFF';
$published_highlight = isset($options_user_meta['published_highlight']) ? $options_user_meta['published_highlight'] : '#FFFFFF';
$future_highlight = isset($options_user_meta['future_highlight']) ? $options_user_meta['future_highlight'] : '#FFFFFF';
$private_highlight = isset($options_user_meta['private_highlight']) ? $options_user_meta['private_highlight'] : '#FFFFFF';
?>
<form method="post" action="">
<div class="main_container">
<h3><?php _e('User Specific Options', 'wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<p style="margin-left:10px;"><?php _e('These options are stored in individual user meta; meaning each user can set these options independently from one another.', 'wp-edit'); ?></p>
<table cellpadding="8">
<tbody>
<tr><td><?php _e('ID Column', 'wp-edit'); ?></td>
<td>
<input id="id_column" type="checkbox" value="1" name="wp_edit_user_specific[id_column]" <?php echo $id_column; ?> />
<label for="id_column"><?php _e('Adds a column to post/page list view for displaying the post/page ID.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Thumbnail Column', 'wp-edit'); ?></td>
<td>
<input id="thumbnail_column" type="checkbox" value="1" name="wp_edit_user_specific[thumbnail_column]" <?php echo $thumbnail_column; ?> />
<label for="thumbnail_column"><?php _e('Adds a column to post/page list view for displaying thumbnails.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Hide TEXT Tab', 'wp-edit'); ?></td>
<td>
<input id="hide_text_tab" type="checkbox" value="1" name="wp_edit_user_specific[hide_text_tab]" <?php echo $hide_text_tab; ?> />
<label for="hide_text_tab"><?php _e('Hide the editor TEXT tab from view.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Default VISUAL Tab', 'wp-edit'); ?></td>
<td>
<input id="default_visual_tab" type="checkbox" value="1" name="wp_edit_user_specific[default_visual_tab]" <?php echo $default_visual_tab; ?> />
<label for="default_visual_tab"><?php _e('Always display VISUAL tab when editor loads.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Disable Dashboard Widget', 'wp-edit'); ?></td>
<td>
<input id="dashboard_widget" type="checkbox" value="1" name="wp_edit_user_specific[dashboard_widget]" <?php echo $dashboard_widget; ?> />
<label for="dashboard_widget"><?php _e('Disables WP Edit Pro News Feed dashboard widget.', 'wp-edit'); ?></label>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3><?php _e('Post/Page Highlight Colors', 'wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<p style="margin-left:10px;"><?php _e('These options will allow each user to customize highlight colors for each post/page status.', 'wp-edit'); ?><br />
<?php _e('Meaning.. saved posts can be yellow, published posts can be blue, etc.', 'wp-edit'); ?></p>
<table cellpadding="8">
<tbody>
<tr><td><?php _e('Enable Highlights', 'wp-edit'); ?></td>
<td>
<input id="enable_highlights" type="checkbox" value="1" name="wp_edit_user_specific[enable_highlights]" <?php echo $enable_highlights; ?> />
<label for="enable_highlights"><?php _e('Enable the Highlight Options below.', 'wp-edit'); ?></label>
</td>
</tr>
<tr><td><?php _e('Draft Highlight', 'wp-edit'); ?></td>
<td class="jwl_user_cell">
<input id="draft_highlight" type="text" name="wp_edit_user_specific[draft_highlight]" class="color_field" value="<?php echo $draft_highlight; ?>" />
</td>
</tr>
<tr><td><?php _e('Pending Highlight', 'wp-edit'); ?></td>
<td class="jwl_user_cell">
<input id="pending_highlight" type="text" name="wp_edit_user_specific[pending_highlight]" class="color_field" value="<?php echo $pending_highlight; ?>" />
</td>
</tr>
<tr><td><?php _e('Published Highlight', 'wp-edit'); ?></td>
<td class="jwl_user_cell">
<input id="published_highlight" type="text" name="wp_edit_user_specific[published_highlight]" class="color_field" value="<?php echo $published_highlight; ?>" />
</td>
</tr>
<tr><td><?php _e('Future Highlight', 'wp-edit'); ?></td>
<td class="jwl_user_cell">
<input id="future_highlight" type="text" name="wp_edit_user_specific[future_highlight]" class="color_field" value="<?php echo $future_highlight; ?>" />
</td>
</tr>
<tr><td><?php _e('Private Highlight', 'wp-edit'); ?></td>
<td class="jwl_user_cell">
<input id="private_highlight" type="text" name="wp_edit_user_specific[private_highlight]" class="color_field" value="<?php echo $private_highlight; ?>" />
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<input type="submit" value="<?php _e('Save User Specific Options', 'wp-edit'); ?>" class="button button-primary" id="submit_user_specific" name="submit_user_specific">
<?php wp_nonce_field( 'wpe_save_user_specific_opts' ); ?>
</div>
</form><?php
}
/*
****************************************************************
Database Tab
****************************************************************
*/
else if($active_tab == 'database') {
?>
<div class="main_container">
<h3><?php _e('Database Options', 'wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<h3><span><?php _e('Export WP Edit Options', 'wp-edit'); ?></span></h3>
<div class="inside">
<p><?php _e('Export the plugin settings for this site as a .json file. This allows you to easily import the configuration into another site.', 'wp-edit'); ?></p>
<form method="post" action="">
<p><input type="hidden" name="database_action" value="export_settings" /></p>
<p>
<?php wp_nonce_field( 'database_action_export_nonce', 'database_action_export_nonce' ); ?>
<?php submit_button( __('Export', 'wp-edit'), 'primary', 'submit', false ); ?>
</p>
</form>
</div><!-- .inside -->
</div><!-- .postbox -->
<div class="postbox">
<h3><span><?php _e('Import WP Edit Options', 'wp-edit'); ?></span></h3>
<div class="inside">
<p><?php _e('Import the plugin settings from a .json file. This file can be obtained by exporting the settings on another site using the form above.', 'wp-edit'); ?></p>
<form method="post" enctype="multipart/form-data">
<p><input type="file" name="import_file"/></p>
<p>
<input type="hidden" name="database_action" value="import_settings" />
<?php wp_nonce_field( 'database_action_import_nonce', 'database_action_import_nonce' ); ?>
<?php submit_button( __('Import', 'wp-edit'), 'primary', 'submit', false ); ?>
</p>
</form>
</div><!-- .inside -->
</div><!-- .postbox -->
<div class="postbox">
<h3><span><?php _e('Reset WP Edit Options', 'wp-edit'); ?></span></h3>
<div class="inside">
<p><?php _e('Reset all plugin settings to their original default states.', 'wp-edit'); ?></p>
<form method="post" action="">
<?php wp_nonce_field( 'reset_db_values_nonce', 'reset_db_values_nonce' ); ?>
<input class="button-primary reset_db_values" name="reset_db_values" type="submit" style="display:none;" />
<input class="button-primary reset_db_values_confirm" name="reset_db_values_confirm" type="button" value="<?php _e('Reset', 'wp-edit'); ?>" />
</p>
</form>
</div><!-- .inside -->
</div><!-- .postbox -->
<div class="postbox">
<h3><span><?php _e('Uninstall WP Edit (Completely)', 'wp-edit'); ?></span></h3>
<div class="inside">
<p><?php _e('Designed by intention, this plugin will not delete the associated database tables when activating and deactivating.', 'wp-edit'); ?><br />
<?php _e('This ensures the data is kept safe when troubleshooting other WordPress conflicts.', 'wp-edit'); ?><br />
<?php _e('In order to completely uninstall the plugin, AND remove all associated database tables, please use the option below.', 'wp-edit'); ?><br />
</p>
<form method="post" action="">
<?php wp_nonce_field('wp_edit_uninstall_nonce_check', 'wp_edit_uninstall_nonce'); ?>
<input id="plugin" name="plugin" type="hidden" value="wp-edit/main.php" />
<input name="uninstall_confirm" id="uninstall_confirm" type="checkbox" value="1" /><label for="uninstall_confirm"></label> <strong><?php _e('Please confirm before proceeding','wp-edit'); ?><br /><br /></strong>
<input class="button-primary" name="uninstall" type="submit" value="<?php _e('Uninstall','wp-edit'); ?>" />
</form>
</div><!-- .inside -->
</div><!-- .postbox -->
</div><!-- .metabox-holder -->
</div><!-- .main_container -->
<?php
}
/*
****************************************************************
About Tab
****************************************************************
*/
else if($active_tab == 'about') {
// Get mysql version number (scrape php_info module)
ob_start();
phpinfo(INFO_MODULES);
$info = ob_get_contents();
ob_end_clean();
$info = stristr($info, 'Client API version');
preg_match('/[1-9].[0-9].[1-9][0-9]/', $info, $match);
$sql_version = $match[0];
// Get plugin info
$url = WPEDIT_PLUGIN_PATH.'main.php';
$plugin_data = get_plugin_data( $url );
global $wp_version;
echo '<div class="main_container">';
?>
<h3><?php _e('Information','wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<p><?php _e('Plugin and server version information.', 'wp-edit'); ?></p>
<table class="table table-bordered" cellpadding="3" style="width:50%;">
<tbody>
<tr><td><?php _e('WP Edit Pro Version:','wp-edit'); ?></td>
<td>
<?php echo $plugin_data['Version']; ?>
</td>
</tr>
<tr><td><?php _e('WordPress Version:','wp-edit'); ?></td>
<td>
<?php echo $wp_version; ?>
</td>
</tr>
<tr><td><?php _e('PHP Version:','wp-edit'); ?></td>
<td>
<?php echo phpversion(); ?>
</td>
</tr>
<tr><td><?php _e('HTML Version:','wp-edit'); ?></td>
<td>
<span class="wpep_html_version"></span>
</td>
</tr>
<tr><td><?php _e('MySql Version:','wp-edit'); ?></td>
<td>
<?php echo $sql_version; ?>
</td>
</tr>
<tr><td><?php _e('jQuery Version:','wp-edit'); ?></td>
<td>
<?php echo $GLOBALS['wp_scripts']->registered['jquery-core']->ver; ?>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3><?php _e('Support','wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<p><?php _e('Please use the following helpful links for plugin support.', 'wp-edit'); ?></p>
<table class="table table-bordered" cellpadding="3" style="width:30%;">
<tbody>
<tr><td><?php _e('Support Forum:','wp-edit'); ?></td>
<td>
<?php echo '<a target="_blank" href="https://wordpress.org/support/plugin/wp-edit">'.__('Support Forum', 'wp-edit').'</a>'; ?>
</td>
</tr>
<tr><td><?php _e('Knowledge Base:','wp-edit'); ?></td>
<td>
<?php echo '<a target="_blank" href="http://learn.wpeditpro.com">'.__('Knowledge Base', 'wp-edit').'</a>'; ?>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<h3><?php _e('Documentation','wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<p><?php _e('Remember, complete plugin documentation can be found on our <a target="_blank" href="http://learn.wpeditpro.com">Knowledge Base</a>.', 'wp-edit'); ?></p>
<p><?php _e('Visit the <a target="_blank" href="http://learn.wpeditpro.com/category/plugin-options/">Knowledge Base Plugin Options</a> page to get started.','wp-edit'); ?></p>
</div>
</div>
</div>
<?php
echo '</div>';
}
?>
</div><!-- .wrap -->
<div id="right_column_metaboxes">
<div class="main_container">
<h3><?php _e('WP Edit Pro', 'wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<p><?php _e('Upgrade to WP Edit Pro today; and enjoy additional options such as:', 'wp-edit'); ?></p>
<ul class="wpep_pro_upgrade_list">
<li><span class="dashicons dashicons-yes"></span><?php _e('4 customizable button rows instead of only 2.', 'wp-edit'); ?></li>
<li><span class="dashicons dashicons-yes"></span><?php _e('Create multiple button arrangements.', 'wp-edit'); ?></li>
<li><span class="dashicons dashicons-yes"></span><?php _e('Limit users over what buttons they can access.', 'wp-edit'); ?></li>
<li><span class="dashicons dashicons-yes"></span><?php _e('Powerful "Snidget" Builder.', 'wp-edit'); ?></li>
<li><span class="dashicons dashicons-yes"></span><?php _e('Over 30 additional options and settings.', 'wp-edit'); ?></li>
<li><span class="dashicons dashicons-yes"></span><?php _e('Over a dozen additional editor buttons (Image maps, YouTube Videos, and many more!).', 'wp-edit'); ?></li>
</ul>
<a href="https://wpeditpro.com" target="_blank" class="button-primary"><?php _e('WP Edit Pro', 'wp-edit'); ?></a>
</div>
</div>
</div>
</div>
<div class="main_container">
<h3><?php _e('Like this Plugin?', 'wp-edit'); ?></h3>
<div class="metabox-holder">
<div class="postbox">
<div class="inside">
<p><?php _e('Please take a moment to rate and review this plugin on the WordPress Plugin Repository.', 'wp-edit'); ?></p>
<p><a href="https://wordpress.org/plugins/wp-edit/" target="_blank" class="button-primary"><?php _e('Rate Plugin', 'wp-edit'); ?></a></p>
<?php
if ( ! function_exists( 'plugins_api' ) ) {
require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
}
/** Prepare our query */
$call_api = plugins_api( 'plugin_information', array( 'slug' => 'wp-edit', 'fields' => array( 'active_installs' => true ) ) );
/** Check for Errors & Display the results */
if ( is_wp_error( $call_api ) ) {
echo '<pre>' . print_r( $call_api->get_error_message(), true ) . '</pre>';
}
else {
echo '<h3>';
_e( 'WP Edit Rating Statistics', 'wp_edit_pro' );
echo '</h3>';
// Get ratings array
$ratings = $call_api->ratings;
echo '<table><tbody>';
echo '<tr><td>Downloaded:</td><td>' . number_format( $call_api->downloaded ) . ' times</td></tr>';
echo '<tr><td>Active Installs:</td><td>' . number_format( $call_api->active_installs ) . '+</td></tr>';
echo '<tr><td>Number of Ratings:</td><td>' . $call_api->num_ratings . '</td></tr>';
echo '</tbody></table>';
echo '<br />';
// Calculations
$total_ratings = $call_api->num_ratings;
$five_star = round( ( $ratings[5] / $total_ratings ) * 100 );
$four_star = round( ( $ratings[4] / $total_ratings ) * 100 );
$three_star = round( ( $ratings[3] / $total_ratings ) * 100 );
$two_star = round( ( $ratings[2] / $total_ratings ) * 100 );
$one_star = round( ( $ratings[1] / $total_ratings ) * 100 );
$overall_stars = number_format( ( $call_api->rating / 20 ), 1 );
// Setup plugin star container
echo '<div class="plugin_star_container">';
echo '<div class="empty-stars"></div>';
echo '<div class="full-stars" style="width:' . $call_api->rating . '%"></div>';
echo '</div>';
echo '<p style="margin:0px 0px 10px;">' . $overall_stars . ' out of 5 stars</p>';
// Setup plugin rating table
echo '<table class="table table_plugin_ratings"><tbody>';
echo '<tr><td>5 stars:</td><td><div class="plugin_rating_container"><div class="plugin_rating_percentage" style="width:' . $five_star . '%;"></div></div>' . $ratings[5] . '</td></tr>';
echo '<tr><td>4 stars:</td><td><div class="plugin_rating_container"><div class="plugin_rating_percentage" style="width:' . $four_star . '%;"></div></div>' . $ratings[4] . '</td></tr>';
echo '<tr><td>3 stars:</td><td><div class="plugin_rating_container"><div class="plugin_rating_percentage" style="width:' . $three_star . '%;"></div></div>' . $ratings[3] . '</td></tr>';
echo '<tr><td>2 stars:</td><td><div class="plugin_rating_container"><div class="plugin_rating_percentage" style="width:' . $two_star . '%;"></div></div>' . $ratings[2] . '</td></tr>';
echo '<tr><td>1 star:</td><td><div class="plugin_rating_container"><div class="plugin_rating_percentage" style="width:' . $one_star . '%;"></div></div>' . $ratings[1] . '</td></tr>';
echo '</tbody></table>';
}
?>
</div>
</div>
</div>
</div>
</div>
<div style="clear:both;"></div>
<?php
}
/*
****************************************************************
Load/Save Page
****************************************************************
*/
public function load_page() {
/*
****************************************************************
If Import Settings was successful... let's alert a message
****************************************************************
*/
if(isset($_GET['import']) && $_GET['import'] === 'true') {
echo '<div id="message" class="updated"><p>';
_e('Plugin settings have been successfully imported.' ,'wp-edit');
echo '</p></div>';
}
/*
****************************************************************
If Buttons Tab options are submitted
****************************************************************
*/
if(isset($_POST['wpep_reset_buttons'])) {
// Verify nonce
$buttons_opts_nonce = $_REQUEST['_wpnonce'];
if ( ! wp_verify_nonce( $buttons_opts_nonce, 'wpe_save_buttons_opts' ) ) {
echo 'This request could not be verified.';
exit;
}
// Check if DB value exists.. if YES, then keep value.. if NO, then replace with protected defaults
$options_buttons = $this->global_options_buttons;
// Set DB values
update_option('wp_edit_buttons', $options_buttons);
// Alert user
function wpe_reset_buttons_from_input(){
echo '<div class="updated">';
echo '<p>';
_e('Buttons have been reset successfully.','wp-edit');
echo '</p>';
echo '</div>';
}
add_action('admin_notices', 'wpe_reset_buttons_from_input');
}
if(isset($_POST['wpep_save_buttons'])) {
// Verify nonce
$buttons_opts_nonce = $_REQUEST['_wpnonce'];
if ( ! wp_verify_nonce( $buttons_opts_nonce, 'wpe_save_buttons_opts' ) ) {
echo 'This request could not be verified.';
exit;
}
if(isset($_POST['get_sorted_array_results']) && ($_POST['get_sorted_array_results'] != '')) {
//***************************************************
// Get buttons from hidden div and update database
//***************************************************
$post_buttons = $_POST['get_sorted_array_results'];
$final_button_array = array();
// Explode first set of containers (breaks into "toolbar1:bold,italic,etc."
$explode_containers = explode('*', $post_buttons);
// Loop each container
foreach($explode_containers as $container) {
// Get rid of first container (empty)
if($container != '') {
// Explode each container
$explode_each_container = explode(':', $container);
// Replace commas (from js array) with spaces
$explode_each_container = str_replace(',', ' ', $explode_each_container);
// Push key (container) and value (buttons) to final array
$final_button_array[$explode_each_container[0]] = $explode_each_container[1];
}
}
// Update database buttons
update_option('wp_edit_buttons', $final_button_array);
// Alert user
function wpe_save_buttons_from_input(){
echo '<div class="updated">';
echo '<p>';
_e('Buttons have been saved successfully.','wp-edit');
echo '</p>';
echo '</div>';
}
add_action('admin_notices', 'wpe_save_buttons_from_input');
}
//***************************************************
// Check for new buttons
//***************************************************
/*** Get page buttons ***/
$buttons = '';
$active_buttons = $_POST['get_sorted_array_results']; // Get each button container value (string)
$explode1 = explode('*', $active_buttons); // Explode into button containers (toolbar1:bold,italic,etc)
$final_buttons = '';
foreach($explode1 as $value) {
$explode2 = explode(':', $value); // Explodes from (toolbar1:bold,italic,link,etc)
$button_string = isset($explode2[1]) ? $explode2[1] : ''; // Get second array item (buttons (comma separated))
if(!empty($button_string)) { // If the buttons string is not empty
$final_buttons .= $button_string.','; // Create long string of comma separated butttons
}
}
// Right trim comma from string
$final_buttons = rtrim($final_buttons, ',');
// Create array of all buttons on page ((bold)(italic)(etc))
$page_array = array_filter(explode(',', $final_buttons));
/*** Get default buttons ***/
// Get all buttons from initialization code (including any new buttons)
$new_wp_edit_class_buttons = new wp_edit_class();
$options_buttons = $new_wp_edit_class_buttons->global_options_buttons;
$buttons_option = '';
// Loop each container and extract buttons
foreach($options_buttons as $option) {
$buttons_option .= ' ' . $option; // The list of initialization buttons (as string)
}
// Trim whitespace from left of $buttons_option string (space separated)
$buttons_option = ltrim($buttons_option);
// Explode space separated string into array
$buttons_option_array = array_filter(explode(' ', $buttons_option));
/*** Compare arrays ***/
$array_diff = array_diff($buttons_option_array, $page_array);
// If new buttons were discovered
if(!empty($array_diff)) {
// Get each button name from array difference
global $each_button_trim;
$each_button = '';
foreach($array_diff as $button) { // Loop array to get each button name
$each_button .= ' '.$button;
}
// Remove white space from far left of string
$each_button_trim = ltrim($each_button);
// Get buttons option and append new buttons to tmce container
$db_buttons = get_option('wp_edit_buttons');
$db_buttons['tmce_container'] = $db_buttons['tmce_container'].$each_button;
// Update database
update_option('wp_edit_buttons', $db_buttons);
// Alert user
function wpe_alert_user_new_buttons() {
global $each_button_trim;
echo '<div id="message" class="updated"><p>';
_e('New buttons were discovered. The following buttons have been added to the Button Container:','wp-edit');
echo '<br /><strong>'.$each_button_trim.'</strong>';
echo '</p></div>';
}
add_action('admin_notices', 'wpe_alert_user_new_buttons');
}
//*************************************************************************************************
// Check saved database buttons against plugin default buttons.
// - Will remove any buttons from rows if they are no longer supported by plugin.
//*************************************************************************************************
// Get user saved buttons
$options_buttons = get_option('wp_edit_buttons');
// Get default plugin buttons
$new_wp_edit_class_buttons = new wp_edit_class();
$plugin_buttons = $new_wp_edit_class_buttons->global_options_buttons;
// Merge all default plugin buttons into single array
$all_array = '';
foreach($plugin_buttons as $slot_array) {
if(!empty($slot_array) && $slot_array != '') { // Skip containter array if empty
$all_array .= $slot_array.' '; // Create single string of all default plugin buttons
}
}
$all_array = rtrim($all_array, ' '); // Remove trailing right space
$plugin_array = explode(' ', $all_array); // Explode at spaces to make single array (this is an array of all current plugin buttons)
// Get filtered plugin buttons
$get_filters = $this->filtered_buttons;
// If the array set is not empty (filters being applied)
if( ! empty( $get_filters ) ) {
foreach( $get_filters as $key => $values ) {
$plugin_array[] = $values['button_id'];
}
}
// Create arrays of user saved buttons
global $tot_array;
$val_array = array();
$tot_array = array(); // Used to display results to user
foreach($options_buttons as $cont=>$val) { // Break down array
if(!empty($val) && $val !='') { // Skip container if empty
$val_array = explode(' ', $val); // Explode at spaces into array (this is multiarray of each container array of user buttons)
$rem_array = array(); // Setup removal array
foreach($val_array as $item) {
if(!in_array($item, $plugin_array)) {
// Removed array items
$rem_array[] = $item;
$tot_array[] = $item;
}
}
if($rem_array) {
$old_opts = $options_buttons[$cont]; // Get option from database values
$old_opts = explode(' ', $old_opts); // Explode to array
$new_opt_array = array_diff($old_opts, $rem_array); // Compare arrays to remove non-supported buttons
$new_opt_array = implode(' ', $new_opt_array); // Implode back to string
$options_buttons[$cont] = $new_opt_array; // Set container to new string
// Update buttons options
update_option('wp_edit_buttons', $options_buttons);
function wpe_remove_buttons_notice() {
global $tot_array;
echo '<div class="updated"><p>';
$tot_array = implode(', ', $tot_array);
_e('The following buttons have been removed from WP Edit Pro:', 'wp-edit');
echo '<br />';
echo '<strong>'.$tot_array.'</strong>';
echo '</p></div>';
}
add_action('admin_notices', 'wpe_remove_buttons_notice');
}
}
}
}
/*
****************************************************************
If Global Tab button was submitted
****************************************************************
*/
if(isset($_POST['submit_global'])) {
// Verify nonce
$global_opts_nonce = $_REQUEST['_wpnonce'];
if ( ! wp_verify_nonce( $global_opts_nonce, 'wpe_save_global_opts' ) ) {
echo 'This request could not be verified.';
exit;
}
$options_global = get_option('wp_edit_global');
$options_global['jquery_theme'] = isset($_POST['jquery_theme']) ? $_POST['jquery_theme'] : 'smoothness';
$options_global['disable_admin_links'] = isset($_POST['disable_admin_links']) ? '1' : '0';
$options_global['disable_fancy_tooltips'] = isset($_POST['disable_fancy_tooltips']) ? '1' : '0';
update_option('wp_edit_global', $options_global);
function global_saved_notice(){
echo '<div class="updated"><p>';
_e('Global options successfully saved.', 'wp-edit');
echo '</p></div>';
}
add_action('admin_notices', 'global_saved_notice');
}
/*
****************************************************************
If General Tab button was submitted
****************************************************************
*/
if(isset($_POST['submit_general'])) {
// Verify nonce
$general_opts_nonce = $_REQUEST['_wpnonce'];
if ( ! wp_verify_nonce( $general_opts_nonce, 'wpe_save_general_opts' ) ) {
echo 'This request could not be verified.';
exit;
}
$options_general = get_option('wp_edit_general');
$options_general['linebreak_shortcode'] = isset($_POST['linebreak_shortcode']) ? '1' : '0';
$options_general['shortcodes_in_widgets'] = isset($_POST['shortcodes_in_widgets']) ? '1' : '0';
$options_general['shortcodes_in_excerpts'] = isset($_POST['shortcodes_in_excerpts']) ? '1' : '0';
$options_general['post_excerpt_editor'] = isset($_POST['post_excerpt_editor']) ? '1' : '0';
$options_general['page_excerpt_editor'] = isset($_POST['page_excerpt_editor']) ? '1' : '0';
$options_general['profile_editor'] = isset($_POST['profile_editor']) ? '1' : '0';
// Save cpt excerpts
$cpt_excerpts = array();
$options_general['cpt_excerpt_editor'] = array();
if(isset($_POST['cpt_excerpt_editor'])) {
$cpt_excerpts = $_POST['cpt_excerpt_editor'];
// Loop checked cpt's and create array
foreach($cpt_excerpts as $key => $value) {
if($value === 'on')
$options_general['cpt_excerpt_editor'][] = $key;
}
}
else {
$options_general['cpt_excerpt_editor'] = array();
}
update_option('wp_edit_general', $options_general);
function general_saved_notice(){
echo '<div class="updated"><p>';
_e('General options successfully saved.', 'wp-edit');
echo '</p></div>';
}
add_action('admin_notices', 'general_saved_notice');
}
/*
****************************************************************
If Posts Tab button was submitted
****************************************************************
*/
if(isset($_POST['submit_posts'])) {
// Verify nonce
$posts_pages_opts_nonce = $_REQUEST['_wpnonce'];
if ( ! wp_verify_nonce( $posts_pages_opts_nonce, 'wpe_save_posts_pages_opts' ) ) {
echo 'This request could not be verified.';
exit;
}
// Delete database revisions
if(isset($_POST['submit_posts']) && isset($_POST['delete_revisions'])) {
function wp_edit_delete_revisions_admin_notice( ){
global $wpdb;
// Get pre DB size
$query = $wpdb->get_results( "SHOW TABLE STATUS", ARRAY_A );
$size = 0;
foreach ($query as $row) {
$size += $row["Data_length"] + $row["Index_length"];
}
$decimals = 2;
$mbytes = number_format($size/(1024*1024),$decimals);
// Delete Post Revisions from DB
$query3_raw = "DELETE FROM wp_posts WHERE post_type = 'revision'";
$query3 = $wpdb->query($query3_raw);
if ($query3) {
$deleted_rows = __('Revisions successfully deleted', 'wp-edit');
} else {
$deleted_rows = __('No POST revisions were found to delete', 'wp-edit');
}
// Get post DB size
$query2 = $wpdb->get_results( "SHOW TABLE STATUS", ARRAY_A );
$size2 = 0;
foreach ($query2 as $row2) {
$size2 += $row2["Data_length"] + $row2["Index_length"];
}
$decimals2 = 2;
$mbytes2 = number_format($size2/(1024*1024),$decimals2);
echo '<div class="updated"><p>';
_e('Message: ', 'wp-edit');
echo '<strong>'.$deleted_rows.'</strong>.</p><p>';
_e('Database size before deletions: ', 'wp-edit');
echo '<strong>'.$mbytes.'</strong> ';
_e('megabytes.', 'wp-edit');
echo '</p><p>';
_e('Database Size after deletions: ', 'wp-edit');
echo '<strong>'.$mbytes2.'</strong> ';
_e('megabytes.', 'wp-edit');
echo '</p></div>';
}
add_action('admin_notices', 'wp_edit_delete_revisions_admin_notice');
}
$options_posts = get_option('wp_edit_posts');
$options_posts['post_title_field'] = isset($_POST['post_title_field']) ? sanitize_text_field($_POST['post_title_field']) : 'Enter title here';
$options_posts['column_shortcodes'] = isset($_POST['column_shortcodes']) ? '1' : '0';
$options_posts['disable_wpautop'] = isset($_POST['disable_wpautop']) ? '1' : '0';
$options_posts['max_post_revisions'] = isset($_POST['max_post_revisions']) ? sanitize_text_field($_POST['max_post_revisions']) : '';
$options_posts['max_page_revisions'] = isset($_POST['max_page_revisions']) ? sanitize_text_field($_POST['max_page_revisions']) : '';
$options_posts['hide_admin_posts'] = isset($_POST['hide_admin_posts']) ? sanitize_text_field($_POST['hide_admin_posts']) : '';
$options_posts['hide_admin_pages'] = isset($_POST['hide_admin_pages']) ? sanitize_text_field($_POST['hide_admin_pages']) : '';
update_option('wp_edit_posts', $options_posts);
function posts_saved_notice(){
echo '<div class="updated"><p>';
_e('Posts/Pages options successfully saved.', 'wp-edit');
echo '</p></div>';
}
add_action('admin_notices', 'posts_saved_notice');
}
/*
****************************************************************
If Editor button was submitted
****************************************************************
*/
if(isset($_POST['submit_editor'])) {
// Verify nonce
$editor_opts_nonce = $_REQUEST['_wpnonce'];
if ( ! wp_verify_nonce( $editor_opts_nonce, 'wpe_save_editor_opts' ) ) {
echo 'This request could not be verified.';
exit;
}
$options_editor = get_option('wp_edit_editor');
$options_editor['editor_add_pre_styles'] = isset($_POST['editor_add_pre_styles']) ? '1' : '0';
$options_editor['default_editor_fontsize_type'] = isset($_POST['default_editor_fontsize_type']) ? $_POST['default_editor_fontsize_type'] : 'pt';
$options_editor['default_editor_fontsize_values'] = isset($_POST['default_editor_fontsize_values']) ? sanitize_text_field($_POST['default_editor_fontsize_values']) : '';
$options_editor['bbpress_editor'] = isset($_POST['bbpress_editor']) ? '1' : '0';
update_option('wp_edit_editor', $options_editor);
function editor_saved_notice(){
echo '<div class="updated"><p>';
_e('Editor options successfully saved.', 'wp-edit');
echo '</p></div>';
}
add_action('admin_notices', 'editor_saved_notice');
}
/*
****************************************************************
If Extras Tab button was submitted
****************************************************************
*/
if(isset($_POST['submit_extras'])) {
// Verify nonce
$extras_opts_nonce = $_REQUEST['_wpnonce'];
if ( ! wp_verify_nonce( $extras_opts_nonce, 'wpe_save_extras_opts' ) ) {
echo 'This request could not be verified.';
exit;
}
$options_extras = get_option('wp_edit_extras');
$options_extras['signoff_text'] = isset($_POST['wp_edit_signoff']) ? stripslashes($_POST['wp_edit_signoff']) : 'Please enter text here...';
update_option('wp_edit_extras', $options_extras);
function extras_saved_notice(){
echo '<div class="updated"><p>';
_e('Extra options saved.', 'wp-edit');
echo '</p></div>';
}
add_action('admin_notices', 'extras_saved_notice');
}
/*
****************************************************************
If user specific was submitted
****************************************************************
*/
if(isset($_POST['submit_user_specific'])) {
// Verify nonce
$user_specific_opts_nonce = $_REQUEST['_wpnonce'];
if ( ! wp_verify_nonce( $user_specific_opts_nonce, 'wpe_save_user_specific_opts' ) ) {
echo 'This request could not be verified.';
exit;
}
// If User Specific was submitted
$post_vars = isset($_POST['wp_edit_user_specific']) ? $_POST['wp_edit_user_specific'] : '';
global $current_user;
$options_user_specific_user_meta = get_user_meta($current_user->ID, 'aaa_wp_edit_user_meta', true);
$options_user_specific_user_meta['id_column'] = isset($post_vars['id_column']) ? '1' : '0';
$options_user_specific_user_meta['thumbnail_column'] = isset($post_vars['thumbnail_column']) ? '1' : '0';
$options_user_specific_user_meta['hide_text_tab'] = isset($post_vars['hide_text_tab']) ? '1' : '0';
$options_user_specific_user_meta['default_visual_tab'] = isset($post_vars['default_visual_tab']) ? '1' : '0';
$options_user_specific_user_meta['dashboard_widget'] = isset($post_vars['dashboard_widget']) ? '1' : '0';
$options_user_specific_user_meta['enable_highlights'] = isset($post_vars['enable_highlights']) ? '1' : '0';
$options_user_specific_user_meta['draft_highlight'] = isset($post_vars['draft_highlight']) ? $post_vars['draft_highlight'] : '';
$options_user_specific_user_meta['pending_highlight'] = isset($post_vars['pending_highlight']) ? $post_vars['pending_highlight'] : '';
$options_user_specific_user_meta['published_highlight'] = isset($post_vars['published_highlight']) ? $post_vars['published_highlight'] : '';
$options_user_specific_user_meta['future_highlight'] = isset($post_vars['future_highlight']) ? $post_vars['future_highlight'] : '';
$options_user_specific_user_meta['private_highlight'] = isset($post_vars['private_highlight']) ? $post_vars['private_highlight'] : '';
update_user_meta($current_user->ID, 'aaa_wp_edit_user_meta', $options_user_specific_user_meta);
function user_specific_saved_notice(){
echo '<div class="updated"><p>';
_e('User specific options saved.', 'wp-edit');
echo '</p></div>';
}
add_action('admin_notices', 'user_specific_saved_notice');
}
/*
****************************************************************
If reset plugin options
****************************************************************
*/
if (isset($_POST['reset_db_values'])) {
if ( !isset($_POST['reset_db_values_nonce'])) { // Verify nonce
print __('Sorry, your nonce did not verify.', 'wp-edit');
exit;
}
else {
// Get current user
global $current_user;
// Set DB values (from class vars)
update_option('wp_edit_buttons', $this->global_options_buttons);
update_option('wp_edit_global', $this->global_options_global);
update_option('wp_edit_general', $this->global_options_general);
update_option('wp_edit_posts', $this->global_options_posts);
update_option('wp_edit_editor', $this->global_options_editor);
update_option('wp_edit_extras', $this->global_options_extras);
update_user_meta($current_user->ID, 'aaa_wp_edit_user_meta', $this->global_options_user_specific);
echo '<div id="message" class="updated"><p>';
_e('Plugin settings have been restored to defaults.', 'wp-edit');
echo '</p></div>';
}
}
/*
****************************************************************
If uninstall plugin was submitted
****************************************************************
*/
// Display notice if trying to uninstall but forget to check box
if (isset($_POST['uninstall'] ) && !isset($_POST['uninstall_confirm'])) {
echo '<div id="message" class="error"><p>';
_e('You must also check the confirm box before options will be uninstalled and deleted.','wp-edit');
echo '</p></div>';
}
// Uninstall plugin
if (isset($_POST['uninstall'], $_POST['uninstall_confirm'] ) ) {
if ( !isset($_POST['wp_edit_uninstall_nonce']) || !wp_verify_nonce($_POST['wp_edit_uninstall_nonce'],'wp_edit_uninstall_nonce_check') ) { // Verify nonce
print __('Sorry, your nonce did not verify.', 'wp-edit');
exit;
}
else {
global $current_user;
delete_option('wp_edit_buttons','wp_edit_buttons');
delete_option('wp_edit_global','wp_edit_global');
delete_option('wp_edit_general','wp_edit_general');
delete_option('wp_edit_posts','wp_edit_posts');
delete_option('wp_edit_editor','wp_edit_editor');
delete_option('wp_edit_extras','wp_edit_extras');
delete_option('wp_edit_install','wp_edit_install');
delete_user_meta($current_user->ID, 'aaa_wp_edit_user_meta');
delete_user_meta($current_user->ID, 'ignore_wpedit_ag_notice');
// Deactivate the plugin
$current = get_option('active_plugins');
array_splice($current, array_search( $_POST['plugin'], $current), 1 );
update_option('active_plugins', $current);
// Redirect to plugins page with 'plugin deactivated' status message
wp_redirect( admin_url('/plugins.php?deactivate=true') );
exit;
}
}
}
/*
****************************************************************
Admin Init
****************************************************************
*/
public function process_activation_redirect() {
// Check for redirect option after plugin activation
$re_url = admin_url('admin.php?page=wp_edit_options');
if (get_option('wp_edit_activation_redirect', false)) {
delete_option('wp_edit_activation_redirect');
wp_redirect($re_url);
}
}
/*
****************************************************************
Export Options
****************************************************************
*/
public function process_settings_export() {
if( empty( $_POST['database_action'] ) || 'export_settings' != $_POST['database_action'] )
return;
if( ! wp_verify_nonce( $_POST['database_action_export_nonce'], 'database_action_export_nonce' ) )
return;
if( ! current_user_can( 'manage_options' ) )
return;
// Get DB values
global $current_user;
$options_buttons = get_option('wp_edit_buttons');
$options_global = get_option('wp_edit_global');
$options_general = get_option('wp_edit_general');
$options_posts = get_option('wp_edit_posts');
$options_editor = get_option('wp_edit_editor');
$options_extras = get_option('wp_edit_extras');
$options_user_specific = get_user_meta($current_user->ID, 'aaa_wp_edit_user_meta', true);
$options_export_array = array(
'wp_edit_buttons' => $options_buttons,
'wp_edit_global' => $options_global,
'wp_edit_general' => $options_general,
'wp_edit_posts' => $options_posts,
'wp_edit_editor' => $options_editor,
'wp_edit_extras' => $options_extras,
'wp_edit_user_specific' => $options_user_specific
);
ignore_user_abort( true );
nocache_headers();
header( 'Content-Type: application/json; charset=utf-8' );
header( 'Content-Disposition: attachment; filename=wp_edit_settings_export-' . date( 'm-d-Y' ) . '.json' );
header( "Expires: 0" );
echo json_encode( $options_export_array );
exit;
}
/*
****************************************************************
Import Options
****************************************************************
*/
public function process_settings_import() {
if( empty( $_POST['database_action'] ) || 'import_settings' != $_POST['database_action'] )
return;
if( ! wp_verify_nonce( $_POST['database_action_import_nonce'], 'database_action_import_nonce' ) )
return;
if( ! current_user_can( 'manage_options' ) )
return;
$extension = end( explode( '.', $_FILES['import_file']['name'] ) );
if( $extension != 'json' ) {
wp_die( __('Please upload a valid .json file', 'wp-edit' ) );
}
$import_file = $_FILES['import_file']['tmp_name'];
if( empty( $import_file ) ) {
wp_die( __('Please upload a file to import', 'wp-edit') );
}
global $current_user;
// Retrieve the settings from the file and convert the json object to an array.
$settings = (array) json_decode( file_get_contents( $import_file ), true );
foreach ($settings as $key => $value) {
// First update user meta
if($key === 'wp_edit_user_specific') {
$value = (array) $value;
update_user_meta($current_user->ID, 'aaa_wp_edit_user_meta', $value);
}
// Else update other options
else {
$value = (array) $value;
update_option($key, $value);
}
}
// Redirect to database page with added parameter = true
wp_safe_redirect( admin_url( 'admin.php?page=wp_edit_options&tab=database&import=true' ) );
exit;
}
/*
****************************************************************
Before wp tinymce
****************************************************************
*/
public function before_wp_tiny_mce() {
// Add WP dashicons css file to editor
echo '<link rel="stylesheet" type="text/css" href="'.plugins_url().'/wp-edit/css/tinymce_dashicons.css" />';
}
/*
****************************************************************
Tinymce before init
****************************************************************
*/
public function wp_edit_tiny_mce_before_init($init) {
// Initialize table ability
if (isset($init['tools'])) {
$init['tools'] = $init['tools'].',inserttable';
} else {
$init['tools'] = 'inserttable';
}
// Get editor default fontsize type value
$opts_editor = get_option('wp_edit_editor');
$default_editor_fontsize_type = isset($opts_editor['default_editor_fontsize_type']) ? $opts_editor['default_editor_fontsize_type'] : 'pt';
// Pass values to editor initialization
if($default_editor_fontsize_type === 'px') {
$new_px = isset($opts_editor['default_editor_fontsize_values']) && !empty($opts_editor['default_editor_fontsize_values']) ? $opts_editor['default_editor_fontsize_values'] : '6px 8px 9px 10px 11px 12px 13px 14px 15px 16px 18px 20px 22px 24px 28px 32px 48px 72px';
if(isset($init['fontsize_formats'])) {
$init['fontsize_formats'] = $init['fontsize_formats'].' '.$new_px;
} else {
$init['fontsize_formats'] = $new_px;
}
}
else if($default_editor_fontsize_type === 'pt') {
$new_pt = isset($opts_editor['default_editor_fontsize_values']) && !empty($opts_editor['default_editor_fontsize_values']) ? $opts_editor['default_editor_fontsize_values'] : '6pt 8pt 10pt 12pt 14pt 16pt 18pt 20pt 22pt 24pt 26pt 28pt 30pt 32pt 34pt 36pt 48pt 72pt';
if(isset($init['fontsize_formats'])) {
$init['fontsize_formats'] = $init['fontsize_formats'].' '.$new_pt;
} else {
$init['fontsize_formats'] = $new_pt;
}
}
else if($default_editor_fontsize_type === 'em') {
$new_em = isset($opts_editor['default_editor_fontsize_values']) && !empty($opts_editor['default_editor_fontsize_values']) ? $opts_editor['default_editor_fontsize_values'] : '.8em 1em 1.2em 1.4em 1.6em 1.8em 2em';
if(isset($init['fontsize_formats'])) {
$init['fontsize_formats'] = $init['fontsize_formats'].' '.$new_em;
} else {
$init['fontsize_formats'] = $new_em;
}
}
else if($default_editor_fontsize_type === 'percent') {
$new_percent = isset($opts_editor['default_editor_fontsize_values']) && !empty($opts_editor['default_editor_fontsize_values']) ? $opts_editor['default_editor_fontsize_values'] : '80% 90% 100% 110% 120%';
if(isset($init['fontsize_formats'])) {
$init['fontsize_formats'] = $init['fontsize_formats'].' '.$new_percent;
} else {
$init['fontsize_formats'] = $new_percent;
}
}
/*
****************************************************************
Additional initalization if disable wpautop is true for the post
****************************************************************
*/
// Get post id and meta
$post_id = get_the_ID();
$post_meta = get_post_meta($post_id);
$dis_wpautop = isset($post_meta['_jwl_disable_wpautop']) && !empty($post_meta['_jwl_disable_wpautop']) ? $post_meta['_jwl_disable_wpautop'] : false;
// Only initialize if the disable wpautop option is enabled in the post meta
if ($dis_wpautop != false) {
$init['wpautop'] = false;
$init['indent'] = true;
$init['wpep_noautop'] = true;
}
return $init;
}
/*
****************************************************************
Tinymce init
****************************************************************
*/
public function wp_edit_init_tinymce() {
$options_buttons = get_option('wp_edit_buttons');
$default_opts = $this->global_options_buttons;
// Define plugin array of database options for comparison
$new_array = '';
foreach($options_buttons as $slot_array) {
if(!empty($slot_array) && $slot_array != '') { // Skip containter array if empty
$new_array .= $slot_array.' '; // Create single string of all default plugin buttons
}
}
$new_array = rtrim($new_array, ' '); // Remove trailing right space
$new_plugin_array = explode(' ', $new_array); // Explode at spaces to make single array (this is an array of all current plugin buttons)
$this->new_plugin_array = $new_plugin_array;
// Define plugin array of default buttons for comparison
$default_array = '';
foreach($default_opts as $slot_array) {
if(!empty($slot_array) && $slot_array != '') { // Skip containter array if empty
$default_array .= $slot_array.' '; // Create single string of all default plugin buttons
}
}
$default_array = rtrim($default_array, ' '); // Remove trailing right space
$default_buttons_array = explode(' ', $default_array); // Explode at spaces to make single array (this is an array of all current plugin buttons)
$this->default_buttons_array = $default_buttons_array;
// Get filtered plugin buttons array
$filtered_plugin_buttons = array();
$get_filters = $this->filtered_buttons;
// If the array set is not empty (filters being applied)
if( ! empty( $get_filters ) ) {
foreach( $get_filters as $key => $values ) {
$filtered_plugin_buttons[] = $values['button_id'];
}
}
$this->filtered_plugin_buttons = $filtered_plugin_buttons;
// Build extra plugins array
add_filter('mce_external_plugins', array($this, 'wp_edit_mce_external_plugins'));
// Get options and set appropriate tinymce toolbars
foreach ((array)$options_buttons as $key => $value) {
// Magic is happening right here...
if($key == 'tmce_container') { return; }
if($key == 'toolbar1') { add_filter('mce_buttons', array($this, 'wp_edit_add_mce')); }
if($key == 'toolbar2') { add_filter('mce_buttons_2', array($this, 'wp_edit_add_mce_2')); }
}
}
/*
****************************************************************
Tinymce external plugins
****************************************************************
*/
public function wp_edit_mce_external_plugins($plugins) {
$options_buttons = get_option('wp_edit_buttons');
// Build array of all button names found in active toolbars
$final_options = array();
$final_options = array_merge(explode(' ', $options_buttons['toolbar1']), explode(' ', $options_buttons['toolbar2']));
$plugins['table'] = plugins_url() . '/wp-edit/plugins/table/plugin.min.js';
if(in_array('ltr', $final_options) || in_array('rtl', $final_options)) {
$plugins['directionality'] = plugins_url() . '/wp-edit/plugins/directionality/plugin.min.js';
}
if(in_array('anchor', $final_options)) {
$plugins['anchor'] = plugins_url() . '/wp-edit/plugins/anchor/plugin.min.js';
}
if(in_array('code', $final_options)) {
$plugins['code'] = plugins_url() . '/wp-edit/plugins/code/plugin.min.js';
}
if(in_array('emoticons', $final_options)) {
$plugins['emoticons'] = plugins_url() . '/wp-edit/plugins/emoticons/plugin.min.js';
}
if(in_array('hr', $final_options)) {
$plugins['hr'] = plugins_url() . '/wp-edit/plugins/hr/plugin.min.js';
}
if(in_array('inserttime', $final_options)) {
$plugins['insertdatetime'] = plugins_url() . '/wp-edit/plugins/insertdatetime/plugin.min.js';
}
if(in_array('preview', $final_options)) {
$plugins['preview'] = plugins_url() . '/wp-edit/plugins/preview/plugin.min.js';
}
if(in_array('print', $final_options)) {
$plugins['print'] = plugins_url() . '/wp-edit/plugins/print/plugin.min.js';
}
if(in_array('searchreplace', $final_options)) {
$plugins['searchreplace'] = plugins_url() . '/wp-edit/plugins/searchreplace/plugin.min.js';
}
if(in_array('visualblocks', $final_options)) {
$plugins['visualblocks'] = plugins_url() . '/wp-edit/plugins/visualblocks/plugin.min.js';
}
if(in_array('image_orig', $final_options)) {
$plugins['image_orig'] = plugins_url() . '/wp-edit/plugins/image_orig/plugin.min.js';
}
if(in_array('advlink', $final_options)) {
$plugins['advlink'] = plugins_url() . '/wp-edit/plugins/advlink/plugin.js';
}
if(in_array('acheck', $final_options)) {
$plugins['acheck'] = plugins_url() . '/wp-edit/plugins/acheck/plugin.js';
}
if(in_array('abbr', $final_options)) {
$plugins['abbr'] = plugins_url() . '/wp-edit/plugins/abbr/plugin.js';
}
if(in_array('columnShortcodes', $final_options)) {
$plugins['columnShortcodes'] = plugins_url() . '/wp-edit/plugins/columnShortcodes/plugin.js';
}
if(in_array('nonbreaking', $final_options)) {
$plugins['nonbreaking'] = plugins_url() . '/wp-edit/plugins/nonbreaking/plugin.min.js';
}
if(in_array('eqneditor', $final_options)) {
$plugins['eqneditor'] = plugins_url() . '/wp-edit/plugins/eqneditor/plugin.min.js';
}
//*** Tinymce filter if disable wpautop is true for the post ***//
// Get post id and meta
$post_id = get_the_ID();
$post_meta = get_post_meta($post_id);
$dis_wpautop = isset($post_meta['_jwl_disable_wpautop']) && !empty($post_meta['_jwl_disable_wpautop']) ? $post_meta['_jwl_disable_wpautop'] : false;
// Only filter if the disable wpautop option is enabled in the post meta
if ($dis_wpautop != false) {
// Custom editor code to process content html
$plugins['wpep_noautop'] = plugins_url() . '/wp-edit/plugins/wpep_noautop/plugin.js';
}
return $plugins;
}
/*
****************************************************************
Tinymce mce buttons
****************************************************************
*/
public function wp_edit_add_mce($buttons) {
$options = get_option('wp_edit_buttons');
$options_toolbar1 = $options['toolbar1'];
$default_wp_array_toolbar1 = array('bold','italic','strikethrough','bullist','numlist','blockquote','hr','alignleft','aligncenter','alignright','link','unlink','wp_more');
$array_back = array();
$new_plugin_array = $this->new_plugin_array;
$default_buttons_array = $this->default_buttons_array;
$filtered_plugin_buttons = $this->filtered_plugin_buttons;
// First, we explode the toolbar in the database
$options_toolbar1 = explode(' ', $options_toolbar1);
// Next, we get the difference between ($options['toolbar1']) and ($buttons)
$array_diff = array_diff($buttons, $options_toolbar1);
// Now, we take the array and loop it to find original buttons
if($array_diff) {
foreach($array_diff as $array) {
// If the button is NOT in the original array (WP buttons), we know it is another plugin or theme button..
if( !in_array( $array, $default_wp_array_toolbar1 ) && !in_array( $array, $new_plugin_array ) ) {
// Create the new array of additional buttons to pass back to end of toolbar
$array_back[] = $array;
}
}
}
// Loop each saved toolbar button
foreach( $options_toolbar1 as $key => $value ) {
// If button is not a default button (it is a filtered button); and not in filtered plugin buttons (the button was removed when plugin deactivated)
if( !in_array( $value, $default_buttons_array ) && !in_array( $value, $filtered_plugin_buttons ) ) {
unset( $options_toolbar1[$key]);
}
}
// Merge the difference onto the end of our saved buttons
$merge_buttons = array_merge($options_toolbar1, $array_back);
return $merge_buttons;
}
public function wp_edit_add_mce_2($buttons) {
$options = get_option('wp_edit_buttons');
$options_toolbar2 = $options['toolbar2'];
$default_wp_array_toolbar2 = array('formatselect','underline','alignjustify','forecolor','pastetext','removeformat','charmap','outdent','indent','undo','redo','wp_help');
$array_back = array();
$new_plugin_array = $this->new_plugin_array;
$default_buttons_array = $this->default_buttons_array;
$filtered_plugin_buttons = $this->filtered_plugin_buttons;
// First, we explode the toolbar in the database
$options_toolbar2 = explode(' ', $options_toolbar2);
// Next, we get the difference between ($options['toolbar1']) and ($buttons)
$array_diff = array_diff($buttons, $options_toolbar2);
// Now, we take the array and loop it to find original buttons
if($array_diff) {
foreach($array_diff as $array) {
// If the button is NOT in the original array (WP buttons), we know it is another plugin or theme button..
if( !in_array( $array, $default_wp_array_toolbar2 ) && !in_array( $array, $new_plugin_array ) ) {
// Create the new array of additional buttons to pass back to end of toolbar
$array_back[] = $array;
}
}
}
// Loop each saved toolbar button
foreach( $options_toolbar2 as $key => $value ) {
// If button is not a default button (it is a filtered button); and not in filtered plugin buttons (the button was removed when plugin deactivated)
if( !in_array( $value, $default_buttons_array ) && !in_array( $value, $filtered_plugin_buttons ) ) {
unset( $options_toolbar2[$key]);
}
}
// Merge the difference onto the end of our saved buttons
$merge_buttons = array_merge($options_toolbar2, $array_back);
return $merge_buttons;
}
public function htlmedit_pre($content) {
// Get post id and meta
$post_id = get_the_ID();
$post_meta = get_post_meta($post_id);
$dis_wpautop = isset($post_meta['_jwl_disable_wpautop']) && !empty($post_meta['_jwl_disable_wpautop']) ? $post_meta['_jwl_disable_wpautop'] : false;
// Only filter if the disable wpautop option is enabled in the post meta
if ($dis_wpautop != false) {
$content = str_replace( array('&', '<', '>'), array('&', '<', '>'), $content );
$content = wpautop( $content );
$content = preg_replace( '/^<p>(https?:\/\/[^<> "]+?)<\/p>$/im', '$1', $content );
$content = htmlspecialchars( $content, ENT_NOQUOTES, get_option( 'blog_charset' ) );
}
return $content;
}
/*
****************************************************************
Plugin update message
****************************************************************
*/
public function wpedit_plugin_update_cb($plugin_data, $r) {
$admin_email = get_option('admin_email');
echo '<br /><br />';
echo '<div style="border:1px solid black;border-radius:10px;">';
echo '<div style="width:30%;padding:10px;float:left;">';
echo '<h3>'; _e('Stay Informed', 'wp-edit'); echo '</h3>';
_e('Signup to our free <a target="_blank" href="http://www.feedblitz.com/f/?Sub=950320">Feedblitz</a> service; to receive important plugin news, updates and discount offers for our Pro version.', 'wp-edit');
echo '<br /><br />';
echo 'Email:<br /><input id="wpedit_feedblitz_signup_email" name="EMAIL" type="text" value="'.$admin_email.'" style="width:50%;margin-right:10px;" /><input id="wpedit_feedblitz_signup" type="button" value="Subscribe me! »" class="button-primary" />';
echo '</div>';
echo '<div style="width:30%;padding:10px;float:left;margin-left:20px;">';
echo '<h3>'; _e('Other Plugin News', 'wp-edit'); echo '</h3>';
_e('* Plugin documentation is being added to our <a target="_blank" href="http://learn.wpeditpro.com">Knowledge Base</a>. Check back frequently for more tutorial articles.', 'wp-edit');
echo '</div>';
echo '<div style="clear:both;"></div>';
echo '</div>';
}
public function wpedit_plugin_update_js() {
global $pagenow;
if($pagenow == 'plugins.php') {
echo "<script language='javascript'>
jQuery(document).ready(function($) {
$('#wpedit_feedblitz_signup').click(function() {
feed_email = $('#wpedit_feedblitz_signup_email').val();
window.open('http://www.feedblitz.com/f/?Sub=950320&Email='+feed_email);
});
});
</script>";
}
}
}
$wp_edit_class = new wp_edit_class();
/*
****************************************************************
Include Plugin Functions
****************************************************************
*/
include 'includes/functions.php';
/*
****************************************************************
Include functions for running predefined styles
****************************************************************
*/
include 'includes/style_formats.php';
/*
****************************************************************
Pointers Class
****************************************************************
*/
class wpe_admin_pointers {
public function __construct() {
add_action('admin_enqueue_scripts', array($this, 'custom_admin_pointers_header'));
}
public function custom_admin_pointers_header() {
if ($this->custom_admin_pointers_check()) {
add_action('admin_print_footer_scripts', array($this, 'custom_admin_pointers_footer'));
wp_enqueue_script('wp-pointer');
wp_enqueue_style('wp-pointer');
}
}
public function custom_admin_pointers_check() {
$admin_pointers = $this->custom_admin_pointers();
foreach ( $admin_pointers as $pointer => $array ) {
if ( $array['active'] )
return true;
}
}
public function custom_admin_pointers_footer() {
$admin_pointers = $this->custom_admin_pointers();
?>
<script type="text/javascript">
/* <![CDATA[ */
( function($) {
<?php
foreach ( $admin_pointers as $pointer => $array ) {
if ( $array['active'] ) {
?>
$('<?php echo $array['anchor_id']; ?>').pointer({
content: '<?php echo $array['content']; ?>',
position: {
edge: '<?php echo $array['edge']; ?>',
align: '<?php echo $array['align']; ?>'
},
close: function() {
$.post(ajaxurl, {
pointer: '<?php echo $pointer; ?>',
action: 'dismiss-wp-pointer'
});
}
}).pointer('open');
<?php
}
}
?>
} )(jQuery);
/* ]]> */
</script>
<?php
}
public function custom_admin_pointers() {
$dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
$version = '1_0'; // replace all periods in 1.0 with an underscore
$prefix = 'wpe_admin_pointers_' . $version . '_';
$new_pointer_content = '<h3>' . __( 'WP Edit Tip' ) . '</h3>';
$new_pointer_content .= '<p>' . __( 'If only one row of buttons is visible; try clicking the <a target="_blank" href="http://learn.wpeditpro.com/wordpress-tinymce-editor/#ipt_kb_toc_73_6">"Toolbar Toggle"</a> button to expand/collapse additional editor button rows.' ) . '</p>';
return array(
$prefix . 'toggle_toolbar' => array(
'content' => $new_pointer_content,
'anchor_id' => '#wp-content-editor-container',
'edge' => 'bottom',
'align' => 'top',
'active' => ( ! in_array( $prefix . 'toggle_toolbar', $dismissed ) )
)
);
}
}
//Initiate admin pointers
$wpe_admin_pointers = new wpe_admin_pointers();
?>
ACC SHELL 2018