zZzzZ.
home2
/
zrzvbdry
/
shopleksi.shop
/
wp-content
/
plugins
/
wp-editor
/
classes
New Folder
Editing: WPEditor.php
Save
Cancel
<?php class WPEditor { public function install() { global $wpdb; $prefix = $this->get_table_prefix(); $sqlFile = WPEDITOR_PATH . 'sql/database.sql'; $sql = str_replace( '[prefix]', $prefix, file_get_contents( $sqlFile ) ); $queries = explode( ";\n", $sql ); $wpdb->hide_errors(); foreach ( $queries as $sql ) { if ( strlen( $sql ) > 5 ) { $wpdb->query( $sql ); } } // Set the version number for this version of WPEditor require_once( WPEDITOR_PATH . 'classes/WPEditorSetting.php' ); WPEditorSetting::set_value( 'version', WPEDITOR_VERSION_NUMBER ); if ( ! WPEditorSetting::get_value( 'upgrade' ) ) { $this->first_install(); } } public function first_install() { // Set the database to upgrade instead of first time install WPEditorSetting::set_value( 'upgrade', 1 ); // Check if the post editor has been enabled and enable if not if ( ! WPEditorSetting::get_value( 'enable_post_editor' ) ) { WPEditorSetting::set_value( 'enable_post_editor', 1 ); } // Check if the plugin and theme editors have been hidden before and hide them if not if ( ! WPEditorSetting::get_value( 'hide_default_plugin_editor' ) ) { WPEditorSetting::set_value( 'hide_default_plugin_editor', 1 ); } if ( ! WPEditorSetting::get_value( 'hide_default_theme_editor' ) ) { WPEditorSetting::set_value( 'hide_default_theme_editor', 1 ); } // Check if the edit link for plugins has been hidden before and hide if not if ( ! WPEditorSetting::get_value( 'replace_plugin_edit_links' ) ) { WPEditorSetting::set_value( 'replace_plugin_edit_links', 1 ); } // Check if the plugin line numbers have been disabled and enable if not if ( ! WPEditorSetting::get_value( 'enable_plugin_line_numbers' ) ) { WPEditorSetting::set_value( 'enable_plugin_line_numbers', 1 ); } // Check if the theme line numbers have been disabled and enable if not if ( ! WPEditorSetting::get_value( 'enable_theme_line_numbers' ) ) { WPEditorSetting::set_value( 'enable_theme_line_numbers', 1 ); } // Check if the post line numbers have been disabled and enable if not if ( ! WPEditorSetting::get_value( 'enable_post_line_numbers' ) ) { WPEditorSetting::set_value( 'enable_post_line_numbers', 1 ); } // Check if plugin line wrapping has been disabled and enable if not if ( ! WPEditorSetting::get_value( 'enable_plugin_line_wrapping' ) ) { WPEditorSetting::set_value( 'enable_plugin_line_wrapping', 1 ); } // Check if theme line wrapping has been disabled and enable if not if ( ! WPEditorSetting::get_value( 'enable_theme_line_wrapping' ) ) { WPEditorSetting::set_value( 'enable_theme_line_wrapping', 1 ); } // Check if post line wrapping has been disabled and enable if not if ( ! WPEditorSetting::get_value( 'enable_post_line_wrapping' ) ) { WPEditorSetting::set_value( 'enable_post_line_wrapping', 1 ); } // Check if plugin active line highlighting has been disabled and enable if not if ( ! WPEditorSetting::get_value( 'enable_plugin_active_line' ) ) { WPEditorSetting::set_value( 'enable_plugin_active_line', 1 ); } // Check if theme active line highlighting has been disabled and enable if not if ( ! WPEditorSetting::get_value( 'enable_theme_active_line' ) ) { WPEditorSetting::set_value( 'enable_theme_active_line', 1 ); } // Check if post active line highlighting has been disabled and enable if not if ( ! WPEditorSetting::get_value( 'enable_post_active_line' ) ) { WPEditorSetting::set_value( 'enable_post_active_line', 1 ); } // Check if the default allowed extensions for the plugin editor have been set and set if not if ( ! WPEditorSetting::get_value( 'plugin_editor_allowed_extensions' ) ) { WPEditorSetting::set_value( 'plugin_editor_allowed_extensions', 'php~js~css~txt~htm~html~jpg~jpeg~png~gif~sql~po~less~xml' ); } // Check if the default allowed extensions for the theme editor have been set and set if not if ( ! WPEditorSetting::get_value( 'theme_editor_allowed_extensions' ) ) { WPEditorSetting::set_value( 'theme_editor_allowed_extensions', 'php~js~css~txt~htm~html~jpg~jpeg~png~gif~sql~po~less~xml' ); } // Check if the upload plugin file option has been set and set if not if ( ! WPEditorSetting::get_value( 'plugin_file_upload' ) ) { WPEditorSetting::set_value( 'plugin_file_upload', 1 ); } // Check if the upload theme file option has been set and set if not if ( ! WPEditorSetting::get_value( 'theme_file_upload' ) ) { WPEditorSetting::set_value( 'theme_file_upload', 1 ); } // Check if the plugin indent unit option has been set and set if not if ( ! WPEditorSetting::get_value( 'plugin_indent_unit' ) ) { WPEditorSetting::set_value( 'plugin_indent_unit', 2 ); } // Check if the theme indent unit option has been set and set if not if ( ! WPEditorSetting::get_value( 'theme_indent_unit' ) ) { WPEditorSetting::set_value( 'theme_indent_unit', 2 ); } // Check if the post indent unit option has been set and set if not if ( ! WPEditorSetting::get_value( 'post_indent_unit' ) ) { WPEditorSetting::set_value( 'post_indent_unit', 2 ); } } public function init() { // Define the WP Editor version number define( 'WPEDITOR_VERSION_NUMBER', $this->wpe_version_number() ); // Load all additional required classes $this->loadCoreModels(); // Verify that upgrade has been run if (IS_ADMIN ) { if ( version_compare( WPEDITOR_VERSION_NUMBER, WPEditorSetting::get_value( 'version' ) ) ) { $this->install(); } } // Define debugging and testing info $wpeditor_logging = WPEditorSetting::get_value( 'wpeditor_logging' ) ? true : false; define( 'WPEDITOR_DEBUG', $wpeditor_logging ); $default_wpeditor_roles = array( 'settings' => 'manage_options', 'theme-editor' => 'edit_themes', 'plugin-editor' => 'edit_plugins' ); // Set default admin page roles if there isn't any $wpeditor_roles = WPEditorSetting::get_value( 'admin_page_roles' ); if ( empty( $wpeditor_roles ) ) { WPEditorSetting::set_value( 'admin_page_roles', serialize( $default_wpeditor_roles ) ); } // Ensure that all admin page roles have been set. else { $update_roles = false; $wpeditor_roles = unserialize( $wpeditor_roles ); foreach ( $default_wpeditor_roles as $key => $value ) { if ( ! array_key_exists( $key, $wpeditor_roles ) ) { $wpeditor_roles[ $key ] = $value; $update_roles = true; } } if ( $update_roles ) { WPEditorSetting::set_value( 'admin_page_roles', serialize( $wpeditor_roles ) ); } $wpeditor_roles = serialize( $wpeditor_roles ); } if ( IS_ADMIN ) { // Load default stylesheet add_action( 'admin_init', array( $this, 'register_default_stylesheet' ) ); // Load default script add_action( 'admin_init', array( $this, 'register_default_script' ) ); // Register the default settings add_action( 'admin_init', array( 'WPEditorSetting', 'register_settings' ) ); // Remove default editor submenus add_action( 'admin_menu', array( 'WPEditorAdmin', 'remove_default_editor_menus' ) ); // Add WP Editor Settings Page add_action( 'admin_menu', array( 'WPEditorAdmin', 'build_admin_menu' ) ); // Add Plugin Editor Page add_action( 'admin_menu', array( 'WPEditorAdmin', 'add_plugins_page' ) ); // Add Theme Editor Page add_action( 'admin_menu', array( 'WPEditorAdmin', 'add_themes_page' ) ); // Ajax request to save settings add_action( 'wp_ajax_save_wpeditor_settings', array( 'WPEditorAjax', 'save_settings' ) ); // Ajax request to save files add_action( 'wp_ajax_save_files', array( 'WPEditorAjax', 'save_file' ) ); // Ajax request to upload files add_action( 'wp_ajax_upload_files', array( 'WPEditorAjax', 'upload_file' ) ); // Ajax request to retrieve files and folders add_action( 'wp_ajax_ajax_folders', array( 'WPEditorAjax', 'ajax_folders' ) ); // Replace default plugin edit links add_filter( 'plugin_action_links', array( $this, 'replace_plugin_edit_links' ), 9, 1 ); add_filter( 'the_editor', array( 'WPEditorPosts', 'add_posts_jquery' ) ); if (!current_user_can( 'editor' ) && !current_user_can( 'administrator' ) ) { global $pagenow; if ( $pagenow == 'index.php' ) { add_filter( 'admin_footer', array( 'WPEditorPosts', 'add_posts_jquery' ) ); } } } } public function loadCoreModels() { require_once( WPEDITOR_PATH . 'classes/WPEditorAdmin.php' ); require_once( WPEDITOR_PATH . 'classes/WPEditorAjax.php' ); require_once( WPEDITOR_PATH . 'classes/WPEditorBrowser.php' ); require_once( WPEDITOR_PATH . 'classes/WPEditorException.php' ); require_once( WPEDITOR_PATH . 'classes/WPEditorLog.php' ); require_once( WPEDITOR_PATH . 'classes/WPEditorPlugins.php' ); require_once( WPEDITOR_PATH . 'classes/WPEditorPosts.php' ); require_once( WPEDITOR_PATH . 'classes/WPEditorSetting.php' ); require_once( WPEDITOR_PATH . 'classes/WPEditorThemes.php' ); } public function register_default_stylesheet() { wp_register_style( 'wpeditor', WPEDITOR_URL . '/wpeditor.css', false, WPEDITOR_VERSION_NUMBER ); wp_register_style( 'nivo-lightbox', WPEDITOR_URL . '/extensions/nivo-lightbox/css/nivo-lightbox.css', false, WPEDITOR_VERSION_NUMBER ); wp_register_style( 'nivo-lightbox-default', WPEDITOR_URL . '/extensions/nivo-lightbox/themes/default/default.css', array( 'nivo-lightbox' ), WPEDITOR_VERSION_NUMBER ); wp_register_style( 'codemirror', WPEDITOR_URL . '/extensions/codemirror/css/codemirror.css', false, WPEDITOR_VERSION_NUMBER ); wp_register_style( 'codemirror_dialog', WPEDITOR_URL . '/extensions/codemirror/css/dialog.css', false, WPEDITOR_VERSION_NUMBER ); wp_register_style( 'codemirror_fullscreen', WPEDITOR_URL . '/extensions/codemirror/css/fullscreen.css', false, WPEDITOR_VERSION_NUMBER ); wp_register_style( 'codemirror_themes', WPEDITOR_URL . '/extensions/codemirror/themes/themes.css', false, WPEDITOR_VERSION_NUMBER ); wp_register_style( 'chosen', WPEDITOR_URL . '/extensions/chosen/css/chosen.min.css', false, WPEDITOR_VERSION_NUMBER ); } public function register_default_script() { wp_deregister_script( 'quicktags' ); wp_register_script( 'quicktags', WPEDITOR_URL . '/js/quicktags.js', false, WPEDITOR_VERSION_NUMBER, true ); wp_localize_script( 'quicktags', 'quicktagsL10n', array( 'closeAllOpenTags' => __( 'Close all open tags', 'wp-editor' ), 'closeTags' => __( 'close tags', 'wp-editor' ), 'enterURL' => __( 'Enter the URL', 'wp-editor' ), 'enterImageURL' => __( 'Enter the URL of the image', 'wp-editor' ), 'enterImageDescription' => __( 'Enter a description of the image', 'wp-editor' ), 'textdirection' => __( 'text direction', 'wp-editor' ), 'toggleTextdirection' => __( 'Toggle Editor Text Direction', 'wp-editor' ), 'dfw' => __( 'Distraction-free writing mode', 'wp-editor' ), 'strong' => __( 'Bold', 'wp-editor' ), 'strongClose' => __( 'Close bold tag', 'wp-editor' ), 'em' => __( 'Italic', 'wp-editor' ), 'emClose' => __( 'Close italic tag', 'wp-editor' ), 'link' => __( 'Insert link', 'wp-editor' ), 'blockquote' => __( 'Blockquote', 'wp-editor' ), 'blockquoteClose' => __( 'Close blockquote tag', 'wp-editor' ), 'del' => __( 'Deleted text (strikethrough)', 'wp-editor' ), 'delClose' => __( 'Close deleted text tag', 'wp-editor' ), 'ins' => __( 'Inserted text', 'wp-editor' ), 'insClose' => __( 'Close inserted text tag', 'wp-editor' ), 'image' => __( 'Insert image', 'wp-editor' ), 'ul' => __( 'Bulleted list', 'wp-editor' ), 'ulClose' => __( 'Close bulleted list tag', 'wp-editor' ), 'ol' => __( 'Numbered list', 'wp-editor' ), 'olClose' => __( 'Close numbered list tag', 'wp-editor' ), 'li' => __( 'List item', 'wp-editor' ), 'liClose' => __( 'Close list item tag', 'wp-editor' ), 'code' => __( 'Code', 'wp-editor' ), 'codeClose' => __( 'Close code tag', 'wp-editor' ), 'more' => __( 'Insert Read More tag', 'wp-editor' ), ) ); wp_register_script( 'wpeditor', WPEDITOR_URL . 'js/wpeditor.js', false, WPEDITOR_VERSION_NUMBER ); wp_localize_script( 'wpeditor', 'WPE', array( 'wp_editor_ajax_nonce_ajax_folders_themes' => wp_create_nonce( 'wp_editor_ajax_nonce_ajax_folders_themes' ), 'wp_editor_ajax_nonce_ajax_folders_plugins' => wp_create_nonce( 'wp_editor_ajax_nonce_ajax_folders_plugins' ), 'wp_editor_ajax_nonce_save_files_themes' => wp_create_nonce( 'wp_editor_ajax_nonce_save_files_themes' ), 'wp_editor_ajax_nonce_save_files_plugins' => wp_create_nonce( 'wp_editor_ajax_nonce_save_files_plugins' ) ) ); wp_register_script( 'wp-editor-posts-jquery', WPEDITOR_URL . 'js/posts-jquery.js', false, WPEDITOR_VERSION_NUMBER, true ); wp_register_script( 'nivo-lightbox', WPEDITOR_URL . 'extensions/nivo-lightbox/js/nivo-lightbox.min.js', array( 'jquery' ), WPEDITOR_VERSION_NUMBER ); wp_register_script( 'attrchange', WPEDITOR_URL . 'extensions/attrchange/attrchange.js', false, WPEDITOR_VERSION_NUMBER ); if ( ! wp_script_is( 'codemirror', 'enqueued' ) ) { wp_register_script( 'codemirror', WPEDITOR_URL . 'extensions/codemirror/js/codemirror.js', false, WPEDITOR_VERSION_NUMBER ); } wp_register_script( 'codemirror_php', WPEDITOR_URL . 'extensions/codemirror/js/php.js', false, WPEDITOR_VERSION_NUMBER ); wp_register_script( 'codemirror_javascript', WPEDITOR_URL . 'extensions/codemirror/js/javascript.js', false, WPEDITOR_VERSION_NUMBER ); wp_register_script( 'codemirror_css', WPEDITOR_URL . 'extensions/codemirror/js/css.js', false, WPEDITOR_VERSION_NUMBER ); wp_register_script( 'codemirror_xml', WPEDITOR_URL . 'extensions/codemirror/js/xml.js', false, WPEDITOR_VERSION_NUMBER ); wp_register_script( 'codemirror_clike', WPEDITOR_URL . 'extensions/codemirror/js/clike.js', false, WPEDITOR_VERSION_NUMBER ); wp_register_script( 'codemirror_dialog', WPEDITOR_URL . 'extensions/codemirror/js/dialog.js', false, WPEDITOR_VERSION_NUMBER ); wp_register_script( 'codemirror_search', WPEDITOR_URL . 'extensions/codemirror/js/search.js', false, WPEDITOR_VERSION_NUMBER ); wp_register_script( 'codemirror_searchcursor', WPEDITOR_URL . 'extensions/codemirror/js/searchcursor.js', false, WPEDITOR_VERSION_NUMBER ); wp_register_script( 'codemirror_mustache', WPEDITOR_URL . 'extensions/codemirror/js/mustache.js', false, WPEDITOR_VERSION_NUMBER ); wp_register_script( 'codemirror_fullscreen', WPEDITOR_URL . 'extensions/codemirror/js/fullscreen.js', false, WPEDITOR_VERSION_NUMBER ); //wp_register_script( 'codemirror_foldcode', WPEDITOR_URL . 'extensions/codemirror/js/foldcode.js' ); wp_register_script( 'chosen', WPEDITOR_URL . 'extensions/chosen/js/chosen.jquery.min.js', array( 'jquery' ), WPEDITOR_VERSION_NUMBER ); } public static function get_view( $filename, $data=null ) { $filename = WPEDITOR_PATH . "/$filename"; ob_start(); include $filename; $contents = ob_get_contents(); ob_end_clean(); return $contents; } public static function get_table_name( $name ) { return WPEditor::get_table_prefix() . $name; } public static function get_table_prefix() { global $wpdb; return $wpdb->prefix . 'wpeditor_'; } public static function replace_plugin_edit_links( $links ) { // phpcs:ignore HM.Security.NonceVerification.Recommended if ( isset( $_REQUEST['plugin_status'] ) && in_array( $_REQUEST['plugin_status'], array( 'mustuse', 'dropins' ) ) ) { return $links; } if ( WPEditorSetting::get_value( 'replace_plugin_edit_links' ) == 1 ) { if ( isset( $links['edit'] ) ) { $links['edit'] = str_replace( 'plugin-editor.php?', 'plugins.php?page=wpeditor_plugin&', $links['edit'] ); } return $links; } return $links; } public function wpe_version_number() { if ( ! function_exists( 'get_plugin_data' ) ) { require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); } $plugin_data = get_plugin_data( WPEDITOR_PATH . '/wpeditor.php' ); return $plugin_data['Version']; } }