| @@ -0,0 +1,104 @@ | ||
| <?php | ||
| /** | ||
| * WordPress Ajax Process Execution | ||
| * | ||
| * @package WordPress | ||
| * @subpackage Administration | ||
| * | ||
| * @link https://codex.wordpress.org/AJAX_in_Plugins | ||
| */ | ||
|
|
||
| /** | ||
| * Executing Ajax process. | ||
| * | ||
| * @since 2.1.0 | ||
| */ | ||
| define( 'DOING_AJAX', true ); | ||
| if ( ! defined( 'WP_ADMIN' ) ) { | ||
| define( 'WP_ADMIN', true ); | ||
| } | ||
|
|
||
| /** Load WordPress Bootstrap */ | ||
| require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' ); | ||
|
|
||
| /** Allow for cross-domain requests (from the front end). */ | ||
| send_origin_headers(); | ||
|
|
||
| // Require an action parameter | ||
| if ( empty( $_REQUEST['action'] ) ) | ||
| die( '0' ); | ||
|
|
||
| /** Load WordPress Administration APIs */ | ||
| require_once( ABSPATH . 'wp-admin/includes/admin.php' ); | ||
|
|
||
| /** Load Ajax Handlers for WordPress Core */ | ||
| require_once( ABSPATH . 'wp-admin/includes/ajax-actions.php' ); | ||
|
|
||
| @header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) ); | ||
| @header( 'X-Robots-Tag: noindex' ); | ||
|
|
||
| send_nosniff_header(); | ||
| nocache_headers(); | ||
|
|
||
| /** This action is documented in wp-admin/admin.php */ | ||
| do_action( 'admin_init' ); | ||
|
|
||
| $core_actions_get = array( | ||
| 'fetch-list', 'ajax-tag-search', 'wp-compression-test', 'imgedit-preview', 'oembed-cache', | ||
| 'autocomplete-user', 'dashboard-widgets', 'logged-in', | ||
| ); | ||
|
|
||
| $core_actions_post = array( | ||
| 'oembed-cache', 'image-editor', 'delete-comment', 'delete-tag', 'delete-link', | ||
| 'delete-meta', 'delete-post', 'trash-post', 'untrash-post', 'delete-page', 'dim-comment', | ||
| 'add-link-category', 'add-tag', 'get-tagcloud', 'get-comments', 'replyto-comment', | ||
| 'edit-comment', 'add-menu-item', 'add-meta', 'add-user', 'closed-postboxes', | ||
| 'hidden-columns', 'update-welcome-panel', 'menu-get-metabox', 'wp-link-ajax', | ||
| 'menu-locations-save', 'menu-quick-search', 'meta-box-order', 'get-permalink', | ||
| 'sample-permalink', 'inline-save', 'inline-save-tax', 'find_posts', 'widgets-order', | ||
| 'save-widget', 'delete-inactive-widgets', 'set-post-thumbnail', 'date_format', 'time_format', | ||
| 'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment', | ||
| 'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor', | ||
| 'send-attachment-to-editor', 'save-attachment-order', 'heartbeat', 'get-revision-diffs', | ||
| 'save-user-color-scheme', 'update-widget', 'query-themes', 'parse-embed', 'set-attachment-thumbnail', | ||
| 'parse-media-shortcode', 'destroy-sessions', 'install-plugin', 'update-plugin', 'press-this-save-post', | ||
| 'press-this-add-category', 'crop-image', 'generate-password', 'save-wporg-username', 'delete-plugin', | ||
| 'search-plugins', 'search-install-plugins', 'activate-plugin', 'update-theme', 'delete-theme', | ||
| 'install-theme', 'get-post-thumbnail-html', 'get-community-events', | ||
| ); | ||
|
|
||
| // Deprecated | ||
| $core_actions_post[] = 'wp-fullscreen-save-post'; | ||
|
|
||
| // Register core Ajax calls. | ||
| if ( ! empty( $_GET['action'] ) && in_array( $_GET['action'], $core_actions_get ) ) | ||
| add_action( 'wp_ajax_' . $_GET['action'], 'wp_ajax_' . str_replace( '-', '_', $_GET['action'] ), 1 ); | ||
|
|
||
| if ( ! empty( $_POST['action'] ) && in_array( $_POST['action'], $core_actions_post ) ) | ||
| add_action( 'wp_ajax_' . $_POST['action'], 'wp_ajax_' . str_replace( '-', '_', $_POST['action'] ), 1 ); | ||
|
|
||
| add_action( 'wp_ajax_nopriv_heartbeat', 'wp_ajax_nopriv_heartbeat', 1 ); | ||
|
|
||
| if ( is_user_logged_in() ) { | ||
| /** | ||
| * Fires authenticated Ajax actions for logged-in users. | ||
| * | ||
| * The dynamic portion of the hook name, `$_REQUEST['action']`, | ||
| * refers to the name of the Ajax action callback being fired. | ||
| * | ||
| * @since 2.1.0 | ||
| */ | ||
| do_action( 'wp_ajax_' . $_REQUEST['action'] ); | ||
| } else { | ||
| /** | ||
| * Fires non-authenticated Ajax actions for logged-out users. | ||
| * | ||
| * The dynamic portion of the hook name, `$_REQUEST['action']`, | ||
| * refers to the name of the Ajax action callback being fired. | ||
| * | ||
| * @since 2.8.0 | ||
| */ | ||
| do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] ); | ||
| } | ||
| // Default status | ||
| die( '0' ); |
| @@ -0,0 +1,112 @@ | ||
| <?php | ||
| /** | ||
| * WordPress Administration Template Footer | ||
| * | ||
| * @package WordPress | ||
| * @subpackage Administration | ||
| */ | ||
|
|
||
| // don't load directly | ||
| if ( !defined('ABSPATH') ) | ||
| die('-1'); | ||
|
|
||
| /** | ||
| * @global string $hook_suffix | ||
| */ | ||
| global $hook_suffix; | ||
| ?> | ||
|
|
||
| <div class="clear"></div></div><!-- wpbody-content --> | ||
| <div class="clear"></div></div><!-- wpbody --> | ||
| <div class="clear"></div></div><!-- wpcontent --> | ||
|
|
||
| <div id="wpfooter" role="contentinfo"> | ||
| <?php | ||
| /** | ||
| * Fires after the opening tag for the admin footer. | ||
| * | ||
| * @since 2.5.0 | ||
| */ | ||
| do_action( 'in_admin_footer' ); | ||
| ?> | ||
| <p id="footer-left" class="alignleft"> | ||
| <?php | ||
| $text = sprintf( __( 'Thank you for creating with <a href="%s">WordPress</a>.' ), __( 'https://wordpress.org/' ) ); | ||
| /** | ||
| * Filters the "Thank you" text displayed in the admin footer. | ||
| * | ||
| * @since 2.8.0 | ||
| * | ||
| * @param string $text The content that will be printed. | ||
| */ | ||
| echo apply_filters( 'admin_footer_text', '<span id="footer-thankyou">' . $text . '</span>' ); | ||
| ?> | ||
| </p> | ||
| <p id="footer-upgrade" class="alignright"> | ||
| <?php | ||
| /** | ||
| * Filters the version/update text displayed in the admin footer. | ||
| * | ||
| * WordPress prints the current version and update information, | ||
| * using core_update_footer() at priority 10. | ||
| * | ||
| * @since 2.3.0 | ||
| * | ||
| * @see core_update_footer() | ||
| * | ||
| * @param string $content The content that will be printed. | ||
| */ | ||
| echo apply_filters( 'update_footer', '' ); | ||
| ?> | ||
| </p> | ||
| <div class="clear"></div> | ||
| </div> | ||
| <?php | ||
| /** | ||
| * Prints scripts or data before the default footer scripts. | ||
| * | ||
| * @since 1.2.0 | ||
| * | ||
| * @param string $data The data to print. | ||
| */ | ||
| do_action( 'admin_footer', '' ); | ||
|
|
||
| /** | ||
| * Prints scripts and data queued for the footer. | ||
| * | ||
| * The dynamic portion of the hook name, `$hook_suffix`, | ||
| * refers to the global hook suffix of the current page. | ||
| * | ||
| * @since 4.6.0 | ||
| */ | ||
| do_action( "admin_print_footer_scripts-{$hook_suffix}" ); | ||
|
|
||
| /** | ||
| * Prints any scripts and data queued for the footer. | ||
| * | ||
| * @since 2.8.0 | ||
| */ | ||
| do_action( 'admin_print_footer_scripts' ); | ||
|
|
||
| /** | ||
| * Prints scripts or data after the default footer scripts. | ||
| * | ||
| * The dynamic portion of the hook name, `$hook_suffix`, | ||
| * refers to the global hook suffix of the current page. | ||
| * | ||
| * @since 2.8.0 | ||
| */ | ||
| do_action( "admin_footer-{$hook_suffix}" ); | ||
|
|
||
| // get_site_option() won't exist when auto upgrading from <= 2.7 | ||
| if ( function_exists('get_site_option') ) { | ||
| if ( false === get_site_option('can_compress_scripts') ) | ||
| compression_test(); | ||
| } | ||
|
|
||
| ?> | ||
|
|
||
| <div class="clear"></div></div><!-- wpwrap --> | ||
| <script type="text/javascript">if(typeof wpOnload=='function')wpOnload();</script> | ||
| </body> | ||
| </html> |
| @@ -0,0 +1,15 @@ | ||
| <?php | ||
| /** | ||
| * Administration Functions | ||
| * | ||
| * This file is deprecated, use 'wp-admin/includes/admin.php' instead. | ||
| * | ||
| * @deprecated 2.5.0 | ||
| * @package WordPress | ||
| * @subpackage Administration | ||
| */ | ||
|
|
||
| _deprecated_file( basename(__FILE__), '2.5.0', 'wp-admin/includes/admin.php' ); | ||
|
|
||
| /** WordPress Administration API: Includes all Administration functions. */ | ||
| require_once(ABSPATH . 'wp-admin/includes/admin.php'); |
| @@ -0,0 +1,266 @@ | ||
| <?php | ||
| /** | ||
| * WordPress Administration Template Header | ||
| * | ||
| * @package WordPress | ||
| * @subpackage Administration | ||
| */ | ||
|
|
||
| @header('Content-Type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset')); | ||
| if ( ! defined( 'WP_ADMIN' ) ) | ||
| require_once( dirname( __FILE__ ) . '/admin.php' ); | ||
|
|
||
| /** | ||
| * In case admin-header.php is included in a function. | ||
| * | ||
| * @global string $title | ||
| * @global string $hook_suffix | ||
| * @global WP_Screen $current_screen | ||
| * @global WP_Locale $wp_locale | ||
| * @global string $pagenow | ||
| * @global string $update_title | ||
| * @global int $total_update_count | ||
| * @global string $parent_file | ||
| */ | ||
| global $title, $hook_suffix, $current_screen, $wp_locale, $pagenow, | ||
| $update_title, $total_update_count, $parent_file; | ||
|
|
||
| // Catch plugins that include admin-header.php before admin.php completes. | ||
| if ( empty( $current_screen ) ) | ||
| set_current_screen(); | ||
|
|
||
| get_admin_page_title(); | ||
| $title = esc_html( strip_tags( $title ) ); | ||
|
|
||
| if ( is_network_admin() ) { | ||
| /* translators: Network admin screen title. 1: Network name */ | ||
| $admin_title = sprintf( __( 'Network Admin: %s' ), esc_html( get_network()->site_name ) ); | ||
| } elseif ( is_user_admin() ) { | ||
| /* translators: User dashboard screen title. 1: Network name */ | ||
| $admin_title = sprintf( __( 'User Dashboard: %s' ), esc_html( get_network()->site_name ) ); | ||
| } else { | ||
| $admin_title = get_bloginfo( 'name' ); | ||
| } | ||
|
|
||
| if ( $admin_title == $title ) { | ||
| /* translators: Admin screen title. 1: Admin screen name */ | ||
| $admin_title = sprintf( __( '%1$s — WordPress' ), $title ); | ||
| } else { | ||
| /* translators: Admin screen title. 1: Admin screen name, 2: Network or site name */ | ||
| $admin_title = sprintf( __( '%1$s ‹ %2$s — WordPress' ), $title, $admin_title ); | ||
| } | ||
|
|
||
| /** | ||
| * Filters the title tag content for an admin page. | ||
| * | ||
| * @since 3.1.0 | ||
| * | ||
| * @param string $admin_title The page title, with extra context added. | ||
| * @param string $title The original page title. | ||
| */ | ||
| $admin_title = apply_filters( 'admin_title', $admin_title, $title ); | ||
|
|
||
| wp_user_settings(); | ||
|
|
||
| _wp_admin_html_begin(); | ||
| ?> | ||
| <title><?php echo $admin_title; ?></title> | ||
| <?php | ||
|
|
||
| wp_enqueue_style( 'colors' ); | ||
| wp_enqueue_style( 'ie' ); | ||
| wp_enqueue_script('utils'); | ||
| wp_enqueue_script( 'svg-painter' ); | ||
|
|
||
| $admin_body_class = preg_replace('/[^a-z0-9_-]+/i', '-', $hook_suffix); | ||
| ?> | ||
| <script type="text/javascript"> | ||
| addLoadEvent = function(func){if(typeof jQuery!="undefined")jQuery(document).ready(func);else if(typeof wpOnload!='function'){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}}; | ||
| var ajaxurl = '<?php echo admin_url( 'admin-ajax.php', 'relative' ); ?>', | ||
| pagenow = '<?php echo $current_screen->id; ?>', | ||
| typenow = '<?php echo $current_screen->post_type; ?>', | ||
| adminpage = '<?php echo $admin_body_class; ?>', | ||
| thousandsSeparator = '<?php echo addslashes( $wp_locale->number_format['thousands_sep'] ); ?>', | ||
| decimalPoint = '<?php echo addslashes( $wp_locale->number_format['decimal_point'] ); ?>', | ||
| isRtl = <?php echo (int) is_rtl(); ?>; | ||
| </script> | ||
| <meta name="viewport" content="width=device-width,initial-scale=1.0"> | ||
| <?php | ||
|
|
||
| /** | ||
| * Enqueue scripts for all admin pages. | ||
| * | ||
| * @since 2.8.0 | ||
| * | ||
| * @param string $hook_suffix The current admin page. | ||
| */ | ||
| do_action( 'admin_enqueue_scripts', $hook_suffix ); | ||
|
|
||
| /** | ||
| * Fires when styles are printed for a specific admin page based on $hook_suffix. | ||
| * | ||
| * @since 2.6.0 | ||
| */ | ||
| do_action( "admin_print_styles-{$hook_suffix}" ); | ||
|
|
||
| /** | ||
| * Fires when styles are printed for all admin pages. | ||
| * | ||
| * @since 2.6.0 | ||
| */ | ||
| do_action( 'admin_print_styles' ); | ||
|
|
||
| /** | ||
| * Fires when scripts are printed for a specific admin page based on $hook_suffix. | ||
| * | ||
| * @since 2.1.0 | ||
| */ | ||
| do_action( "admin_print_scripts-{$hook_suffix}" ); | ||
|
|
||
| /** | ||
| * Fires when scripts are printed for all admin pages. | ||
| * | ||
| * @since 2.1.0 | ||
| */ | ||
| do_action( 'admin_print_scripts' ); | ||
|
|
||
| /** | ||
| * Fires in head section for a specific admin page. | ||
| * | ||
| * The dynamic portion of the hook, `$hook_suffix`, refers to the hook suffix | ||
| * for the admin page. | ||
| * | ||
| * @since 2.1.0 | ||
| */ | ||
| do_action( "admin_head-{$hook_suffix}" ); | ||
|
|
||
| /** | ||
| * Fires in head section for all admin pages. | ||
| * | ||
| * @since 2.1.0 | ||
| */ | ||
| do_action( 'admin_head' ); | ||
|
|
||
| if ( get_user_setting('mfold') == 'f' ) | ||
| $admin_body_class .= ' folded'; | ||
|
|
||
| if ( !get_user_setting('unfold') ) | ||
| $admin_body_class .= ' auto-fold'; | ||
|
|
||
| if ( is_admin_bar_showing() ) | ||
| $admin_body_class .= ' admin-bar'; | ||
|
|
||
| if ( is_rtl() ) | ||
| $admin_body_class .= ' rtl'; | ||
|
|
||
| if ( $current_screen->post_type ) | ||
| $admin_body_class .= ' post-type-' . $current_screen->post_type; | ||
|
|
||
| if ( $current_screen->taxonomy ) | ||
| $admin_body_class .= ' taxonomy-' . $current_screen->taxonomy; | ||
|
|
||
| $admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', floatval( get_bloginfo( 'version' ) ) ); | ||
| $admin_body_class .= ' version-' . str_replace( '.', '-', preg_replace( '/^([.0-9]+).*/', '$1', get_bloginfo( 'version' ) ) ); | ||
| $admin_body_class .= ' admin-color-' . sanitize_html_class( get_user_option( 'admin_color' ), 'fresh' ); | ||
| $admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) ); | ||
|
|
||
| if ( wp_is_mobile() ) | ||
| $admin_body_class .= ' mobile'; | ||
|
|
||
| if ( is_multisite() ) | ||
| $admin_body_class .= ' multisite'; | ||
|
|
||
| if ( is_network_admin() ) | ||
| $admin_body_class .= ' network-admin'; | ||
|
|
||
| $admin_body_class .= ' no-customize-support no-svg'; | ||
|
|
||
| ?> | ||
| </head> | ||
| <?php | ||
| /** | ||
| * Filters the CSS classes for the body tag in the admin. | ||
| * | ||
| * This filter differs from the {@see 'post_class'} and {@see 'body_class'} filters | ||
| * in two important ways: | ||
| * | ||
| * 1. `$classes` is a space-separated string of class names instead of an array. | ||
| * 2. Not all core admin classes are filterable, notably: wp-admin, wp-core-ui, | ||
| * and no-js cannot be removed. | ||
| * | ||
| * @since 2.3.0 | ||
| * | ||
| * @param string $classes Space-separated list of CSS classes. | ||
| */ | ||
| $admin_body_classes = apply_filters( 'admin_body_class', '' ); | ||
| ?> | ||
| <body class="wp-admin wp-core-ui no-js <?php echo $admin_body_classes . ' ' . $admin_body_class; ?>"> | ||
| <script type="text/javascript"> | ||
| document.body.className = document.body.className.replace('no-js','js'); | ||
| </script> | ||
|
|
||
| <?php | ||
| // Make sure the customize body classes are correct as early as possible. | ||
| if ( current_user_can( 'customize' ) ) { | ||
| wp_customize_support_script(); | ||
| } | ||
| ?> | ||
|
|
||
| <div id="wpwrap"> | ||
| <?php require(ABSPATH . 'wp-admin/menu-header.php'); ?> | ||
| <div id="wpcontent"> | ||
|
|
||
| <?php | ||
| /** | ||
| * Fires at the beginning of the content section in an admin page. | ||
| * | ||
| * @since 3.0.0 | ||
| */ | ||
| do_action( 'in_admin_header' ); | ||
| ?> | ||
|
|
||
| <div id="wpbody" role="main"> | ||
| <?php | ||
| unset($title_class, $blog_name, $total_update_count, $update_title); | ||
|
|
||
| $current_screen->set_parentage( $parent_file ); | ||
|
|
||
| ?> | ||
|
|
||
| <div id="wpbody-content" aria-label="<?php esc_attr_e('Main content'); ?>" tabindex="0"> | ||
| <?php | ||
|
|
||
| $current_screen->render_screen_meta(); | ||
|
|
||
| if ( is_network_admin() ) { | ||
| /** | ||
| * Prints network admin screen notices. | ||
| * | ||
| * @since 3.1.0 | ||
| */ | ||
| do_action( 'network_admin_notices' ); | ||
| } elseif ( is_user_admin() ) { | ||
| /** | ||
| * Prints user admin screen notices. | ||
| * | ||
| * @since 3.1.0 | ||
| */ | ||
| do_action( 'user_admin_notices' ); | ||
| } else { | ||
| /** | ||
| * Prints admin screen notices. | ||
| * | ||
| * @since 3.1.0 | ||
| */ | ||
| do_action( 'admin_notices' ); | ||
| } | ||
|
|
||
| /** | ||
| * Prints generic admin screen notices. | ||
| * | ||
| * @since 3.1.0 | ||
| */ | ||
| do_action( 'all_admin_notices' ); | ||
|
|
||
| if ( $parent_file == 'options-general.php' ) | ||
| require(ABSPATH . 'wp-admin/options-head.php'); |
| @@ -0,0 +1,71 @@ | ||
| <?php | ||
| /** | ||
| * WordPress Generic Request (POST/GET) Handler | ||
| * | ||
| * Intended for form submission handling in themes and plugins. | ||
| * | ||
| * @package WordPress | ||
| * @subpackage Administration | ||
| */ | ||
|
|
||
| /** We are located in WordPress Administration Screens */ | ||
| if ( ! defined( 'WP_ADMIN' ) ) { | ||
| define( 'WP_ADMIN', true ); | ||
| } | ||
|
|
||
| if ( defined('ABSPATH') ) | ||
| require_once(ABSPATH . 'wp-load.php'); | ||
| else | ||
| require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' ); | ||
|
|
||
| /** Allow for cross-domain requests (from the front end). */ | ||
| send_origin_headers(); | ||
|
|
||
| require_once(ABSPATH . 'wp-admin/includes/admin.php'); | ||
|
|
||
| nocache_headers(); | ||
|
|
||
| /** This action is documented in wp-admin/admin.php */ | ||
| do_action( 'admin_init' ); | ||
|
|
||
| $action = empty( $_REQUEST['action'] ) ? '' : $_REQUEST['action']; | ||
|
|
||
| if ( ! wp_validate_auth_cookie() ) { | ||
| if ( empty( $action ) ) { | ||
| /** | ||
| * Fires on a non-authenticated admin post request where no action was supplied. | ||
| * | ||
| * @since 2.6.0 | ||
| */ | ||
| do_action( 'admin_post_nopriv' ); | ||
| } else { | ||
| /** | ||
| * Fires on a non-authenticated admin post request for the given action. | ||
| * | ||
| * The dynamic portion of the hook name, `$action`, refers to the given | ||
| * request action. | ||
| * | ||
| * @since 2.6.0 | ||
| */ | ||
| do_action( "admin_post_nopriv_{$action}" ); | ||
| } | ||
| } else { | ||
| if ( empty( $action ) ) { | ||
| /** | ||
| * Fires on an authenticated admin post request where no action was supplied. | ||
| * | ||
| * @since 2.6.0 | ||
| */ | ||
| do_action( 'admin_post' ); | ||
| } else { | ||
| /** | ||
| * Fires on an authenticated admin post request for the given action. | ||
| * | ||
| * The dynamic portion of the hook name, `$action`, refers to the given | ||
| * request action. | ||
| * | ||
| * @since 2.6.0 | ||
| */ | ||
| do_action( "admin_post_{$action}" ); | ||
| } | ||
| } |
| @@ -0,0 +1,361 @@ | ||
| <?php | ||
| /** | ||
| * WordPress Administration Bootstrap | ||
| * | ||
| * @package WordPress | ||
| * @subpackage Administration | ||
| */ | ||
|
|
||
| /** | ||
| * In WordPress Administration Screens | ||
| * | ||
| * @since 2.3.2 | ||
| */ | ||
| if ( ! defined( 'WP_ADMIN' ) ) { | ||
| define( 'WP_ADMIN', true ); | ||
| } | ||
|
|
||
| if ( ! defined('WP_NETWORK_ADMIN') ) | ||
| define('WP_NETWORK_ADMIN', false); | ||
|
|
||
| if ( ! defined('WP_USER_ADMIN') ) | ||
| define('WP_USER_ADMIN', false); | ||
|
|
||
| if ( ! WP_NETWORK_ADMIN && ! WP_USER_ADMIN ) { | ||
| define('WP_BLOG_ADMIN', true); | ||
| } | ||
|
|
||
| if ( isset($_GET['import']) && !defined('WP_LOAD_IMPORTERS') ) | ||
| define('WP_LOAD_IMPORTERS', true); | ||
|
|
||
| require_once(dirname(dirname(__FILE__)) . '/wp-load.php'); | ||
|
|
||
| nocache_headers(); | ||
|
|
||
| if ( get_option('db_upgraded') ) { | ||
| flush_rewrite_rules(); | ||
| update_option( 'db_upgraded', false ); | ||
|
|
||
| /** | ||
| * Fires on the next page load after a successful DB upgrade. | ||
| * | ||
| * @since 2.8.0 | ||
| */ | ||
| do_action( 'after_db_upgrade' ); | ||
| } elseif ( get_option('db_version') != $wp_db_version && empty($_POST) ) { | ||
| if ( !is_multisite() ) { | ||
| wp_redirect( admin_url( 'upgrade.php?_wp_http_referer=' . urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) ); | ||
| exit; | ||
|
|
||
| /** | ||
| * Filters whether to attempt to perform the multisite DB upgrade routine. | ||
| * | ||
| * In single site, the user would be redirected to wp-admin/upgrade.php. | ||
| * In multisite, the DB upgrade routine is automatically fired, but only | ||
| * when this filter returns true. | ||
| * | ||
| * If the network is 50 sites or less, it will run every time. Otherwise, | ||
| * it will throttle itself to reduce load. | ||
| * | ||
| * @since 3.0.0 | ||
| * | ||
| * @param bool $do_mu_upgrade Whether to perform the Multisite upgrade routine. Default true. | ||
| */ | ||
| } elseif ( apply_filters( 'do_mu_upgrade', true ) ) { | ||
| $c = get_blog_count(); | ||
|
|
||
| /* | ||
| * If there are 50 or fewer sites, run every time. Otherwise, throttle to reduce load: | ||
| * attempt to do no more than threshold value, with some +/- allowed. | ||
| */ | ||
| if ( $c <= 50 || ( $c > 50 && mt_rand( 0, (int)( $c / 50 ) ) == 1 ) ) { | ||
| require_once( ABSPATH . WPINC . '/http.php' ); | ||
| $response = wp_remote_get( admin_url( 'upgrade.php?step=1' ), array( 'timeout' => 120, 'httpversion' => '1.1' ) ); | ||
| /** This action is documented in wp-admin/network/upgrade.php */ | ||
| do_action( 'after_mu_upgrade', $response ); | ||
| unset($response); | ||
| } | ||
| unset($c); | ||
| } | ||
| } | ||
|
|
||
| require_once(ABSPATH . 'wp-admin/includes/admin.php'); | ||
|
|
||
| auth_redirect(); | ||
|
|
||
| // Schedule trash collection | ||
| if ( ! wp_next_scheduled( 'wp_scheduled_delete' ) && ! wp_installing() ) | ||
| wp_schedule_event(time(), 'daily', 'wp_scheduled_delete'); | ||
|
|
||
| set_screen_options(); | ||
|
|
||
| $date_format = __( 'F j, Y' ); | ||
| $time_format = __( 'g:i a' ); | ||
|
|
||
| wp_enqueue_script( 'common' ); | ||
|
|
||
|
|
||
|
|
||
|
|
||
| /** | ||
| * $pagenow is set in vars.php | ||
| * $wp_importers is sometimes set in wp-admin/includes/import.php | ||
| * The remaining variables are imported as globals elsewhere, declared as globals here | ||
| * | ||
| * @global string $pagenow | ||
| * @global array $wp_importers | ||
| * @global string $hook_suffix | ||
| * @global string $plugin_page | ||
| * @global string $typenow | ||
| * @global string $taxnow | ||
| */ | ||
| global $pagenow, $wp_importers, $hook_suffix, $plugin_page, $typenow, $taxnow; | ||
|
|
||
| $page_hook = null; | ||
|
|
||
| $editing = false; | ||
|
|
||
| if ( isset($_GET['page']) ) { | ||
| $plugin_page = wp_unslash( $_GET['page'] ); | ||
| $plugin_page = plugin_basename($plugin_page); | ||
| } | ||
|
|
||
| if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) ) | ||
| $typenow = $_REQUEST['post_type']; | ||
| else | ||
| $typenow = ''; | ||
|
|
||
| if ( isset( $_REQUEST['taxonomy'] ) && taxonomy_exists( $_REQUEST['taxonomy'] ) ) | ||
| $taxnow = $_REQUEST['taxonomy']; | ||
| else | ||
| $taxnow = ''; | ||
|
|
||
| if ( WP_NETWORK_ADMIN ) | ||
| require(ABSPATH . 'wp-admin/network/menu.php'); | ||
| elseif ( WP_USER_ADMIN ) | ||
| require(ABSPATH . 'wp-admin/user/menu.php'); | ||
| else | ||
| require(ABSPATH . 'wp-admin/menu.php'); | ||
|
|
||
| if ( current_user_can( 'manage_options' ) ) { | ||
| wp_raise_memory_limit( 'admin' ); | ||
| } | ||
|
|
||
| /** | ||
| * Fires as an admin screen or script is being initialized. | ||
| * | ||
| * Note, this does not just run on user-facing admin screens. | ||
| * It runs on admin-ajax.php and admin-post.php as well. | ||
| * | ||
| * This is roughly analogous to the more general {@see 'init'} hook, which fires earlier. | ||
| * | ||
| * @since 2.5.0 | ||
| */ | ||
| do_action( 'admin_init' ); | ||
|
|
||
| if ( isset($plugin_page) ) { | ||
| if ( !empty($typenow) ) | ||
| $the_parent = $pagenow . '?post_type=' . $typenow; | ||
| else | ||
| $the_parent = $pagenow; | ||
| if ( ! $page_hook = get_plugin_page_hook($plugin_page, $the_parent) ) { | ||
| $page_hook = get_plugin_page_hook($plugin_page, $plugin_page); | ||
|
|
||
| // Back-compat for plugins using add_management_page(). | ||
| if ( empty( $page_hook ) && 'edit.php' == $pagenow && '' != get_plugin_page_hook($plugin_page, 'tools.php') ) { | ||
| // There could be plugin specific params on the URL, so we need the whole query string | ||
| if ( !empty($_SERVER[ 'QUERY_STRING' ]) ) | ||
| $query_string = $_SERVER[ 'QUERY_STRING' ]; | ||
| else | ||
| $query_string = 'page=' . $plugin_page; | ||
| wp_redirect( admin_url('tools.php?' . $query_string) ); | ||
| exit; | ||
| } | ||
| } | ||
| unset($the_parent); | ||
| } | ||
|
|
||
| $hook_suffix = ''; | ||
| if ( isset( $page_hook ) ) { | ||
| $hook_suffix = $page_hook; | ||
| } elseif ( isset( $plugin_page ) ) { | ||
| $hook_suffix = $plugin_page; | ||
| } elseif ( isset( $pagenow ) ) { | ||
| $hook_suffix = $pagenow; | ||
| } | ||
|
|
||
| set_current_screen(); | ||
|
|
||
| // Handle plugin admin pages. | ||
| if ( isset($plugin_page) ) { | ||
| if ( $page_hook ) { | ||
| /** | ||
| * Fires before a particular screen is loaded. | ||
| * | ||
| * The load-* hook fires in a number of contexts. This hook is for plugin screens | ||
| * where a callback is provided when the screen is registered. | ||
| * | ||
| * The dynamic portion of the hook name, `$page_hook`, refers to a mixture of plugin | ||
| * page information including: | ||
| * 1. The page type. If the plugin page is registered as a submenu page, such as for | ||
| * Settings, the page type would be 'settings'. Otherwise the type is 'toplevel'. | ||
| * 2. A separator of '_page_'. | ||
| * 3. The plugin basename minus the file extension. | ||
| * | ||
| * Together, the three parts form the `$page_hook`. Citing the example above, | ||
| * the hook name used would be 'load-settings_page_pluginbasename'. | ||
| * | ||
| * @see get_plugin_page_hook() | ||
| * | ||
| * @since 2.1.0 | ||
| */ | ||
| do_action( "load-{$page_hook}" ); | ||
| if (! isset($_GET['noheader'])) | ||
| require_once(ABSPATH . 'wp-admin/admin-header.php'); | ||
|
|
||
| /** | ||
| * Used to call the registered callback for a plugin screen. | ||
| * | ||
| * @ignore | ||
| * @since 1.5.0 | ||
| */ | ||
| do_action( $page_hook ); | ||
| } else { | ||
| if ( validate_file( $plugin_page ) ) { | ||
| wp_die( __( 'Invalid plugin page.' ) ); | ||
| } | ||
|
|
||
| if ( !( file_exists(WP_PLUGIN_DIR . "/$plugin_page") && is_file(WP_PLUGIN_DIR . "/$plugin_page") ) && !( file_exists(WPMU_PLUGIN_DIR . "/$plugin_page") && is_file(WPMU_PLUGIN_DIR . "/$plugin_page") ) ) | ||
| wp_die(sprintf(__('Cannot load %s.'), htmlentities($plugin_page))); | ||
|
|
||
| /** | ||
| * Fires before a particular screen is loaded. | ||
| * | ||
| * The load-* hook fires in a number of contexts. This hook is for plugin screens | ||
| * where the file to load is directly included, rather than the use of a function. | ||
| * | ||
| * The dynamic portion of the hook name, `$plugin_page`, refers to the plugin basename. | ||
| * | ||
| * @see plugin_basename() | ||
| * | ||
| * @since 1.5.0 | ||
| */ | ||
| do_action( "load-{$plugin_page}" ); | ||
|
|
||
| if ( !isset($_GET['noheader'])) | ||
| require_once(ABSPATH . 'wp-admin/admin-header.php'); | ||
|
|
||
| if ( file_exists(WPMU_PLUGIN_DIR . "/$plugin_page") ) | ||
| include(WPMU_PLUGIN_DIR . "/$plugin_page"); | ||
| else | ||
| include(WP_PLUGIN_DIR . "/$plugin_page"); | ||
| } | ||
|
|
||
| include(ABSPATH . 'wp-admin/admin-footer.php'); | ||
|
|
||
| exit(); | ||
| } elseif ( isset( $_GET['import'] ) ) { | ||
|
|
||
| $importer = $_GET['import']; | ||
|
|
||
| if ( ! current_user_can( 'import' ) ) { | ||
| wp_die( __( 'Sorry, you are not allowed to import content.' ) ); | ||
| } | ||
|
|
||
| if ( validate_file($importer) ) { | ||
| wp_redirect( admin_url( 'import.php?invalid=' . $importer ) ); | ||
| exit; | ||
| } | ||
|
|
||
| if ( ! isset($wp_importers[$importer]) || ! is_callable($wp_importers[$importer][2]) ) { | ||
| wp_redirect( admin_url( 'import.php?invalid=' . $importer ) ); | ||
| exit; | ||
| } | ||
|
|
||
| /** | ||
| * Fires before an importer screen is loaded. | ||
| * | ||
| * The dynamic portion of the hook name, `$importer`, refers to the importer slug. | ||
| * | ||
| * @since 3.5.0 | ||
| */ | ||
| do_action( "load-importer-{$importer}" ); | ||
|
|
||
| $parent_file = 'tools.php'; | ||
| $submenu_file = 'import.php'; | ||
| $title = __('Import'); | ||
|
|
||
| if (! isset($_GET['noheader'])) | ||
| require_once(ABSPATH . 'wp-admin/admin-header.php'); | ||
|
|
||
| require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); | ||
|
|
||
| define('WP_IMPORTING', true); | ||
|
|
||
| /** | ||
| * Whether to filter imported data through kses on import. | ||
| * | ||
| * Multisite uses this hook to filter all data through kses by default, | ||
| * as a super administrator may be assisting an untrusted user. | ||
| * | ||
| * @since 3.1.0 | ||
| * | ||
| * @param bool $force Whether to force data to be filtered through kses. Default false. | ||
| */ | ||
| if ( apply_filters( 'force_filtered_html_on_import', false ) ) { | ||
| kses_init_filters(); // Always filter imported data with kses on multisite. | ||
| } | ||
|
|
||
| call_user_func($wp_importers[$importer][2]); | ||
|
|
||
| include(ABSPATH . 'wp-admin/admin-footer.php'); | ||
|
|
||
| // Make sure rules are flushed | ||
| flush_rewrite_rules(false); | ||
|
|
||
| exit(); | ||
| } else { | ||
| /** | ||
| * Fires before a particular screen is loaded. | ||
| * | ||
| * The load-* hook fires in a number of contexts. This hook is for core screens. | ||
| * | ||
| * The dynamic portion of the hook name, `$pagenow`, is a global variable | ||
| * referring to the filename of the current page, such as 'admin.php', | ||
| * 'post-new.php' etc. A complete hook for the latter would be | ||
| * 'load-post-new.php'. | ||
| * | ||
| * @since 2.1.0 | ||
| */ | ||
| do_action( "load-{$pagenow}" ); | ||
|
|
||
| /* | ||
| * The following hooks are fired to ensure backward compatibility. | ||
| * In all other cases, 'load-' . $pagenow should be used instead. | ||
| */ | ||
| if ( $typenow == 'page' ) { | ||
| if ( $pagenow == 'post-new.php' ) | ||
| do_action( 'load-page-new.php' ); | ||
| elseif ( $pagenow == 'post.php' ) | ||
| do_action( 'load-page.php' ); | ||
| } elseif ( $pagenow == 'edit-tags.php' ) { | ||
| if ( $taxnow == 'category' ) | ||
| do_action( 'load-categories.php' ); | ||
| elseif ( $taxnow == 'link_category' ) | ||
| do_action( 'load-edit-link-categories.php' ); | ||
| } elseif( 'term.php' === $pagenow ) { | ||
| do_action( 'load-edit-tags.php' ); | ||
| } | ||
| } | ||
|
|
||
| if ( ! empty( $_REQUEST['action'] ) ) { | ||
| /** | ||
| * Fires when an 'action' request variable is sent. | ||
| * | ||
| * The dynamic portion of the hook name, `$_REQUEST['action']`, | ||
| * refers to the action derived from the `GET` or `POST` request. | ||
| * | ||
| * @since 2.6.0 | ||
| */ | ||
| do_action( 'admin_action_' . $_REQUEST['action'] ); | ||
| } |
| @@ -0,0 +1,118 @@ | ||
| <?php | ||
| /** | ||
| * Server-side file upload handler from wp-plupload, swfupload or other asynchronous upload methods. | ||
| * | ||
| * @package WordPress | ||
| * @subpackage Administration | ||
| */ | ||
|
|
||
| if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) { | ||
| define( 'DOING_AJAX', true ); | ||
| } | ||
|
|
||
| if ( ! defined( 'WP_ADMIN' ) ) { | ||
| define( 'WP_ADMIN', true ); | ||
| } | ||
|
|
||
| if ( defined('ABSPATH') ) | ||
| require_once(ABSPATH . 'wp-load.php'); | ||
| else | ||
| require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' ); | ||
|
|
||
| if ( ! ( isset( $_REQUEST['action'] ) && 'upload-attachment' == $_REQUEST['action'] ) ) { | ||
| // Flash often fails to send cookies with the POST or upload, so we need to pass it in GET or POST instead | ||
| if ( is_ssl() && empty($_COOKIE[SECURE_AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) ) | ||
| $_COOKIE[SECURE_AUTH_COOKIE] = $_REQUEST['auth_cookie']; | ||
| elseif ( empty($_COOKIE[AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) ) | ||
| $_COOKIE[AUTH_COOKIE] = $_REQUEST['auth_cookie']; | ||
| if ( empty($_COOKIE[LOGGED_IN_COOKIE]) && !empty($_REQUEST['logged_in_cookie']) ) | ||
| $_COOKIE[LOGGED_IN_COOKIE] = $_REQUEST['logged_in_cookie']; | ||
| unset($current_user); | ||
| } | ||
|
|
||
| require_once( ABSPATH . 'wp-admin/admin.php' ); | ||
|
|
||
| header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) ); | ||
|
|
||
| if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) { | ||
| include( ABSPATH . 'wp-admin/includes/ajax-actions.php' ); | ||
|
|
||
| send_nosniff_header(); | ||
| nocache_headers(); | ||
|
|
||
| wp_ajax_upload_attachment(); | ||
| die( '0' ); | ||
| } | ||
|
|
||
| if ( ! current_user_can( 'upload_files' ) ) { | ||
| wp_die( __( 'Sorry, you are not allowed to upload files.' ) ); | ||
| } | ||
|
|
||
| // just fetch the detail form for that attachment | ||
| if ( isset($_REQUEST['attachment_id']) && ($id = intval($_REQUEST['attachment_id'])) && $_REQUEST['fetch'] ) { | ||
| $post = get_post( $id ); | ||
| if ( 'attachment' != $post->post_type ) | ||
| wp_die( __( 'Invalid post type.' ) ); | ||
| if ( ! current_user_can( 'edit_post', $id ) ) | ||
| wp_die( __( 'Sorry, you are not allowed to edit this item.' ) ); | ||
|
|
||
| switch ( $_REQUEST['fetch'] ) { | ||
| case 3 : | ||
| if ( $thumb_url = wp_get_attachment_image_src( $id, 'thumbnail', true ) ) | ||
| echo '<img class="pinkynail" src="' . esc_url( $thumb_url[0] ) . '" alt="" />'; | ||
| echo '<a class="edit-attachment" href="' . esc_url( get_edit_post_link( $id ) ) . '" target="_blank">' . _x( 'Edit', 'media item' ) . '</a>'; | ||
|
|
||
| // Title shouldn't ever be empty, but use filename just in case. | ||
| $file = get_attached_file( $post->ID ); | ||
| $title = $post->post_title ? $post->post_title : wp_basename( $file ); | ||
| echo '<div class="filename new"><span class="title">' . esc_html( wp_html_excerpt( $title, 60, '…' ) ) . '</span></div>'; | ||
| break; | ||
| case 2 : | ||
| add_filter('attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2); | ||
| echo get_media_item($id, array( 'send' => false, 'delete' => true )); | ||
| break; | ||
| default: | ||
| add_filter('attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2); | ||
| echo get_media_item($id); | ||
| break; | ||
| } | ||
| exit; | ||
| } | ||
|
|
||
| check_admin_referer('media-form'); | ||
|
|
||
| $post_id = 0; | ||
| if ( isset( $_REQUEST['post_id'] ) ) { | ||
| $post_id = absint( $_REQUEST['post_id'] ); | ||
| if ( ! get_post( $post_id ) || ! current_user_can( 'edit_post', $post_id ) ) | ||
| $post_id = 0; | ||
| } | ||
|
|
||
| $id = media_handle_upload( 'async-upload', $post_id ); | ||
| if ( is_wp_error($id) ) { | ||
| echo '<div class="error-div error"> | ||
| <a class="dismiss" href="#" onclick="jQuery(this).parents(\'div.media-item\').slideUp(200, function(){jQuery(this).remove();});">' . __('Dismiss') . '</a> | ||
| <strong>' . sprintf(__('“%s” has failed to upload.'), esc_html($_FILES['async-upload']['name']) ) . '</strong><br />' . | ||
| esc_html($id->get_error_message()) . '</div>'; | ||
| exit; | ||
| } | ||
|
|
||
| if ( $_REQUEST['short'] ) { | ||
| // Short form response - attachment ID only. | ||
| echo $id; | ||
| } else { | ||
| // Long form response - big chunk o html. | ||
| $type = $_REQUEST['type']; | ||
|
|
||
| /** | ||
| * Filters the returned ID of an uploaded attachment. | ||
| * | ||
| * The dynamic portion of the hook name, `$type`, refers to the attachment type, | ||
| * such as 'image', 'audio', 'video', 'file', etc. | ||
| * | ||
| * @since 2.5.0 | ||
| * | ||
| * @param int $id Uploaded attachment ID. | ||
| */ | ||
| echo apply_filters( "async_upload_{$type}", $id ); | ||
| } |
| @@ -0,0 +1,333 @@ | ||
| <?php | ||
| /** | ||
| * Comment Management Screen | ||
| * | ||
| * @package WordPress | ||
| * @subpackage Administration | ||
| */ | ||
|
|
||
| /** Load WordPress Bootstrap */ | ||
| require_once( dirname( __FILE__ ) . '/admin.php' ); | ||
|
|
||
| $parent_file = 'edit-comments.php'; | ||
| $submenu_file = 'edit-comments.php'; | ||
|
|
||
| /** | ||
| * @global string $action | ||
| */ | ||
| global $action; | ||
| wp_reset_vars( array('action') ); | ||
|
|
||
| if ( isset( $_POST['deletecomment'] ) ) | ||
| $action = 'deletecomment'; | ||
|
|
||
| if ( 'cdc' == $action ) | ||
| $action = 'delete'; | ||
| elseif ( 'mac' == $action ) | ||
| $action = 'approve'; | ||
|
|
||
| if ( isset( $_GET['dt'] ) ) { | ||
| if ( 'spam' == $_GET['dt'] ) | ||
| $action = 'spam'; | ||
| elseif ( 'trash' == $_GET['dt'] ) | ||
| $action = 'trash'; | ||
| } | ||
|
|
||
| switch( $action ) { | ||
|
|
||
| case 'editcomment' : | ||
| $title = __('Edit Comment'); | ||
|
|
||
| get_current_screen()->add_help_tab( array( | ||
| 'id' => 'overview', | ||
| 'title' => __('Overview'), | ||
| 'content' => | ||
| '<p>' . __( 'You can edit the information left in a comment if needed. This is often useful when you notice that a commenter has made a typographical error.' ) . '</p>' . | ||
| '<p>' . __( 'You can also moderate the comment from this screen using the Status box, where you can also change the timestamp of the comment.' ) . '</p>' | ||
| ) ); | ||
|
|
||
| get_current_screen()->set_help_sidebar( | ||
| '<p><strong>' . __( 'For more information:' ) . '</strong></p>' . | ||
| '<p>' . __( '<a href="https://codex.wordpress.org/Administration_Screens#Comments">Documentation on Comments</a>' ) . '</p>' . | ||
| '<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>' | ||
| ); | ||
|
|
||
| wp_enqueue_script('comment'); | ||
| require_once( ABSPATH . 'wp-admin/admin-header.php' ); | ||
|
|
||
| $comment_id = absint( $_GET['c'] ); | ||
|
|
||
| if ( !$comment = get_comment( $comment_id ) ) | ||
| comment_footer_die( __( 'Invalid comment ID.' ) . sprintf(' <a href="%s">' . __('Go back') . '</a>.', 'javascript:history.go(-1)') ); | ||
|
|
||
| if ( !current_user_can( 'edit_comment', $comment_id ) ) | ||
| comment_footer_die( __('Sorry, you are not allowed to edit this comment.') ); | ||
|
|
||
| if ( 'trash' == $comment->comment_approved ) | ||
| comment_footer_die( __('This comment is in the Trash. Please move it out of the Trash if you want to edit it.') ); | ||
|
|
||
| $comment = get_comment_to_edit( $comment_id ); | ||
|
|
||
| include( ABSPATH . 'wp-admin/edit-form-comment.php' ); | ||
|
|
||
| break; | ||
|
|
||
| case 'delete' : | ||
| case 'approve' : | ||
| case 'trash' : | ||
| case 'spam' : | ||
|
|
||
| $title = __('Moderate Comment'); | ||
|
|
||
| $comment_id = absint( $_GET['c'] ); | ||
|
|
||
| if ( ! $comment = get_comment( $comment_id ) ) { | ||
| wp_redirect( admin_url('edit-comments.php?error=1') ); | ||
| die(); | ||
| } | ||
|
|
||
| if ( !current_user_can( 'edit_comment', $comment->comment_ID ) ) { | ||
| wp_redirect( admin_url('edit-comments.php?error=2') ); | ||
| die(); | ||
| } | ||
|
|
||
| // No need to re-approve/re-trash/re-spam a comment. | ||
| if ( $action == str_replace( '1', 'approve', $comment->comment_approved ) ) { | ||
| wp_redirect( admin_url( 'edit-comments.php?same=' . $comment_id ) ); | ||
| die(); | ||
| } | ||
|
|
||
| require_once( ABSPATH . 'wp-admin/admin-header.php' ); | ||
|
|
||
| $formaction = $action . 'comment'; | ||
| $nonce_action = 'approve' == $action ? 'approve-comment_' : 'delete-comment_'; | ||
| $nonce_action .= $comment_id; | ||
|
|
||
| ?> | ||
| <div class="wrap"> | ||
|
|
||
| <h1><?php echo esc_html( $title ); ?></h1> | ||
|
|
||
| <?php | ||
| switch ( $action ) { | ||
| case 'spam' : | ||
| $caution_msg = __('You are about to mark the following comment as spam:'); | ||
| $button = _x( 'Mark as Spam', 'comment' ); | ||
| break; | ||
| case 'trash' : | ||
| $caution_msg = __('You are about to move the following comment to the Trash:'); | ||
| $button = __('Move to Trash'); | ||
| break; | ||
| case 'delete' : | ||
| $caution_msg = __('You are about to delete the following comment:'); | ||
| $button = __('Permanently Delete Comment'); | ||
| break; | ||
| default : | ||
| $caution_msg = __('You are about to approve the following comment:'); | ||
| $button = __('Approve Comment'); | ||
| break; | ||
| } | ||
|
|
||
| if ( $comment->comment_approved != '0' ) { // if not unapproved | ||
| $message = ''; | ||
| switch ( $comment->comment_approved ) { | ||
| case '1' : | ||
| $message = __('This comment is currently approved.'); | ||
| break; | ||
| case 'spam' : | ||
| $message = __('This comment is currently marked as spam.'); | ||
| break; | ||
| case 'trash' : | ||
| $message = __('This comment is currently in the Trash.'); | ||
| break; | ||
| } | ||
| if ( $message ) { | ||
| echo '<div id="message" class="notice notice-info"><p>' . $message . '</p></div>'; | ||
| } | ||
| } | ||
| ?> | ||
| <div id="message" class="notice notice-warning"><p><strong><?php _e( 'Caution:' ); ?></strong> <?php echo $caution_msg; ?></p></div> | ||
|
|
||
| <table class="form-table comment-ays"> | ||
| <tr> | ||
| <th scope="row"><?php _e('Author'); ?></th> | ||
| <td><?php comment_author( $comment ); ?></td> | ||
| </tr> | ||
| <?php if ( get_comment_author_email( $comment ) ) { ?> | ||
| <tr> | ||
| <th scope="row"><?php _e('Email'); ?></th> | ||
| <td><?php comment_author_email( $comment ); ?></td> | ||
| </tr> | ||
| <?php } ?> | ||
| <?php if ( get_comment_author_url( $comment ) ) { ?> | ||
| <tr> | ||
| <th scope="row"><?php _e('URL'); ?></th> | ||
| <td><a href="<?php comment_author_url( $comment ); ?>"><?php comment_author_url( $comment ); ?></a></td> | ||
| </tr> | ||
| <?php } ?> | ||
| <tr> | ||
| <th scope="row"><?php /* translators: column name or table row header */ _e( 'In Response To' ); ?></th> | ||
| <td> | ||
| <?php | ||
| $post_id = $comment->comment_post_ID; | ||
| if ( current_user_can( 'edit_post', $post_id ) ) { | ||
| $post_link = "<a href='" . esc_url( get_edit_post_link( $post_id ) ) . "'>"; | ||
| $post_link .= esc_html( get_the_title( $post_id ) ) . '</a>'; | ||
| } else { | ||
| $post_link = esc_html( get_the_title( $post_id ) ); | ||
| } | ||
| echo $post_link; | ||
|
|
||
| if ( $comment->comment_parent ) { | ||
| $parent = get_comment( $comment->comment_parent ); | ||
| $parent_link = esc_url( get_comment_link( $parent ) ); | ||
| $name = get_comment_author( $parent ); | ||
| printf( | ||
| /* translators: %s: comment link */ | ||
| ' | ' . __( 'In reply to %s.' ), | ||
| '<a href="' . $parent_link . '">' . $name . '</a>' | ||
| ); | ||
| } | ||
| ?> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <th scope="row"><?php _e( 'Submitted on' ); ?></th> | ||
| <td> | ||
| <?php | ||
| /* translators: 1: comment date, 2: comment time */ | ||
| $submitted = sprintf( __( '%1$s at %2$s' ), | ||
| /* translators: comment date format. See https://secure.php.net/date */ | ||
| get_comment_date( __( 'Y/m/d' ), $comment ), | ||
| get_comment_date( __( 'g:i a' ), $comment ) | ||
| ); | ||
| if ( 'approved' === wp_get_comment_status( $comment ) && ! empty ( $comment->comment_post_ID ) ) { | ||
| echo '<a href="' . esc_url( get_comment_link( $comment ) ) . '">' . $submitted . '</a>'; | ||
| } else { | ||
| echo $submitted; | ||
| } | ||
| ?> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <th scope="row"><?php /* translators: field name in comment form */ _ex('Comment', 'noun'); ?></th> | ||
| <td class="comment-content"> | ||
| <?php comment_text( $comment ); ?> | ||
| <p class="edit-comment"><a href="<?php echo admin_url( "comment.php?action=editcomment&c={$comment->comment_ID}" ); ?>"><?php esc_html_e( 'Edit' ); ?></a></p> | ||
| </td> | ||
| </tr> | ||
| </table> | ||
|
|
||
| <form action="comment.php" method="get" class="comment-ays-submit"> | ||
|
|
||
| <p> | ||
| <?php submit_button( $button, 'primary', 'submit', false ); ?> | ||
| <a href="<?php echo admin_url('edit-comments.php'); ?>" class="button-cancel"><?php esc_html_e( 'Cancel' ); ?></a> | ||
| </p> | ||
|
|
||
| <?php wp_nonce_field( $nonce_action ); ?> | ||
| <input type="hidden" name="action" value="<?php echo esc_attr($formaction); ?>" /> | ||
| <input type="hidden" name="c" value="<?php echo esc_attr($comment->comment_ID); ?>" /> | ||
| <input type="hidden" name="noredir" value="1" /> | ||
| </form> | ||
|
|
||
| </div> | ||
| <?php | ||
| break; | ||
|
|
||
| case 'deletecomment' : | ||
| case 'trashcomment' : | ||
| case 'untrashcomment' : | ||
| case 'spamcomment' : | ||
| case 'unspamcomment' : | ||
| case 'approvecomment' : | ||
| case 'unapprovecomment' : | ||
| $comment_id = absint( $_REQUEST['c'] ); | ||
|
|
||
| if ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ) ) ) | ||
| check_admin_referer( 'approve-comment_' . $comment_id ); | ||
| else | ||
| check_admin_referer( 'delete-comment_' . $comment_id ); | ||
|
|
||
| $noredir = isset($_REQUEST['noredir']); | ||
|
|
||
| if ( !$comment = get_comment($comment_id) ) | ||
| comment_footer_die( __( 'Invalid comment ID.' ) . sprintf(' <a href="%s">' . __('Go back') . '</a>.', 'edit-comments.php') ); | ||
| if ( !current_user_can( 'edit_comment', $comment->comment_ID ) ) | ||
| comment_footer_die( __('Sorry, you are not allowed to edit comments on this post.') ); | ||
|
|
||
| if ( '' != wp_get_referer() && ! $noredir && false === strpos(wp_get_referer(), 'comment.php') ) | ||
| $redir = wp_get_referer(); | ||
| elseif ( '' != wp_get_original_referer() && ! $noredir ) | ||
| $redir = wp_get_original_referer(); | ||
| elseif ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ) ) ) | ||
| $redir = admin_url('edit-comments.php?p=' . absint( $comment->comment_post_ID ) ); | ||
| else | ||
| $redir = admin_url('edit-comments.php'); | ||
|
|
||
| $redir = remove_query_arg( array('spammed', 'unspammed', 'trashed', 'untrashed', 'deleted', 'ids', 'approved', 'unapproved'), $redir ); | ||
|
|
||
| switch ( $action ) { | ||
| case 'deletecomment' : | ||
| wp_delete_comment( $comment ); | ||
| $redir = add_query_arg( array('deleted' => '1'), $redir ); | ||
| break; | ||
| case 'trashcomment' : | ||
| wp_trash_comment( $comment ); | ||
| $redir = add_query_arg( array('trashed' => '1', 'ids' => $comment_id), $redir ); | ||
| break; | ||
| case 'untrashcomment' : | ||
| wp_untrash_comment( $comment ); | ||
| $redir = add_query_arg( array('untrashed' => '1'), $redir ); | ||
| break; | ||
| case 'spamcomment' : | ||
| wp_spam_comment( $comment ); | ||
| $redir = add_query_arg( array('spammed' => '1', 'ids' => $comment_id), $redir ); | ||
| break; | ||
| case 'unspamcomment' : | ||
| wp_unspam_comment( $comment ); | ||
| $redir = add_query_arg( array('unspammed' => '1'), $redir ); | ||
| break; | ||
| case 'approvecomment' : | ||
| wp_set_comment_status( $comment, 'approve' ); | ||
| $redir = add_query_arg( array( 'approved' => 1 ), $redir ); | ||
| break; | ||
| case 'unapprovecomment' : | ||
| wp_set_comment_status( $comment, 'hold' ); | ||
| $redir = add_query_arg( array( 'unapproved' => 1 ), $redir ); | ||
| break; | ||
| } | ||
|
|
||
| wp_redirect( $redir ); | ||
| die; | ||
|
|
||
| case 'editedcomment' : | ||
|
|
||
| $comment_id = absint( $_POST['comment_ID'] ); | ||
| $comment_post_id = absint( $_POST['comment_post_ID'] ); | ||
|
|
||
| check_admin_referer( 'update-comment_' . $comment_id ); | ||
|
|
||
| edit_comment(); | ||
|
|
||
| $location = ( empty( $_POST['referredby'] ) ? "edit-comments.php?p=$comment_post_id" : $_POST['referredby'] ) . '#comment-' . $comment_id; | ||
|
|
||
| /** | ||
| * Filters the URI the user is redirected to after editing a comment in the admin. | ||
| * | ||
| * @since 2.1.0 | ||
| * | ||
| * @param string $location The URI the user will be redirected to. | ||
| * @param int $comment_id The ID of the comment being edited. | ||
| */ | ||
| $location = apply_filters( 'comment_edit_redirect', $location, $comment_id ); | ||
| wp_redirect( $location ); | ||
|
|
||
| exit(); | ||
|
|
||
| default: | ||
| wp_die( __('Unknown action.') ); | ||
|
|
||
| } // end switch | ||
|
|
||
| include( ABSPATH . 'wp-admin/admin-footer.php' ); |
| @@ -0,0 +1,125 @@ | ||
| <?php | ||
| /** | ||
| * Credits administration panel. | ||
| * | ||
| * @package WordPress | ||
| * @subpackage Administration | ||
| */ | ||
|
|
||
| /** WordPress Administration Bootstrap */ | ||
| require_once( dirname( __FILE__ ) . '/admin.php' ); | ||
| require_once( dirname( __FILE__ ) . '/includes/credits.php' ); | ||
|
|
||
| $title = __( 'Credits' ); | ||
|
|
||
| list( $display_version ) = explode( '-', get_bloginfo( 'version' ) ); | ||
|
|
||
| include( ABSPATH . 'wp-admin/admin-header.php' ); | ||
| ?> | ||
| <div class="wrap about-wrap"> | ||
|
|
||
| <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1> | ||
|
|
||
| <p class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s adds more ways for you to express yourself and represent your brand.' ), $display_version ); ?></p> | ||
|
|
||
| <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div> | ||
|
|
||
| <h2 class="nav-tab-wrapper wp-clearfix"> | ||
| <a href="about.php" class="nav-tab"><?php _e( 'What’s New' ); ?></a> | ||
| <a href="credits.php" class="nav-tab nav-tab-active"><?php _e( 'Credits' ); ?></a> | ||
| <a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a> | ||
| </h2> | ||
|
|
||
| <?php | ||
|
|
||
| $credits = wp_credits(); | ||
|
|
||
| if ( ! $credits ) { | ||
| echo '<p class="about-description">'; | ||
| /* translators: 1: https://wordpress.org/about/, 2: https://make.wordpress.org/ */ | ||
| printf( __( 'WordPress is created by a <a href="%1$s">worldwide team</a> of passionate individuals. <a href="%2$s">Get involved in WordPress</a>.' ), | ||
| 'https://wordpress.org/about/', | ||
| __( 'https://make.wordpress.org/' ) | ||
| ); | ||
| echo '</p>'; | ||
| echo '</div>'; | ||
| include( ABSPATH . 'wp-admin/admin-footer.php' ); | ||
| exit; | ||
| } | ||
|
|
||
| echo '<p class="about-description">' . __( 'WordPress is created by a worldwide team of passionate individuals.' ) . "</p>\n"; | ||
|
|
||
| foreach ( $credits['groups'] as $group_slug => $group_data ) { | ||
| if ( $group_data['name'] ) { | ||
| if ( 'Translators' == $group_data['name'] ) { | ||
| // Considered a special slug in the API response. (Also, will never be returned for en_US.) | ||
| $title = _x( 'Translators', 'Translate this to be the equivalent of English Translators in your language for the credits page Translators section' ); | ||
| } elseif ( isset( $group_data['placeholders'] ) ) { | ||
| $title = vsprintf( translate( $group_data['name'] ), $group_data['placeholders'] ); | ||
| } else { | ||
| $title = translate( $group_data['name'] ); | ||
| } | ||
|
|
||
| echo '<h3 class="wp-people-group">' . esc_html( $title ) . "</h3>\n"; | ||
| } | ||
|
|
||
| if ( ! empty( $group_data['shuffle'] ) ) | ||
| shuffle( $group_data['data'] ); // We were going to sort by ability to pronounce "hierarchical," but that wouldn't be fair to Matt. | ||
|
|
||
| switch ( $group_data['type'] ) { | ||
| case 'list' : | ||
| array_walk( $group_data['data'], '_wp_credits_add_profile_link', $credits['data']['profiles'] ); | ||
| echo '<p class="wp-credits-list">' . wp_sprintf( '%l.', $group_data['data'] ) . "</p>\n\n"; | ||
| break; | ||
| case 'libraries' : | ||
| array_walk( $group_data['data'], '_wp_credits_build_object_link' ); | ||
| echo '<p class="wp-credits-list">' . wp_sprintf( '%l.', $group_data['data'] ) . "</p>\n\n"; | ||
| break; | ||
| default: | ||
| $compact = 'compact' == $group_data['type']; | ||
| $classes = 'wp-people-group ' . ( $compact ? 'compact' : '' ); | ||
| echo '<ul class="' . $classes . '" id="wp-people-group-' . $group_slug . '">' . "\n"; | ||
| foreach ( $group_data['data'] as $person_data ) { | ||
| echo '<li class="wp-person" id="wp-person-' . esc_attr( $person_data[2] ) . '">' . "\n\t"; | ||
| echo '<a href="' . esc_url( sprintf( $credits['data']['profiles'], $person_data[2] ) ) . '" class="web">'; | ||
| $size = 'compact' == $group_data['type'] ? 30 : 60; | ||
| $data = get_avatar_data( $person_data[1] . '@md5.gravatar.com', array( 'size' => $size ) ); | ||
| $size *= 2; | ||
| $data2x = get_avatar_data( $person_data[1] . '@md5.gravatar.com', array( 'size' => $size ) ); | ||
| echo '<img src="' . esc_url( $data['url'] ) . '" srcset="' . esc_url( $data2x['url'] ) . ' 2x" class="gravatar" alt="" />' . "\n"; | ||
| echo esc_html( $person_data[0] ) . "</a>\n\t"; | ||
| if ( ! $compact ) | ||
| echo '<span class="title">' . translate( $person_data[3] ) . "</span>\n"; | ||
| echo "</li>\n"; | ||
| } | ||
| echo "</ul>\n"; | ||
| break; | ||
| } | ||
| } | ||
|
|
||
| ?> | ||
| <p class="clear"><?php | ||
| /* translators: %s: https://make.wordpress.org/ */ | ||
| printf( __( 'Want to see your name in lights on this page? <a href="%s">Get involved in WordPress</a>.' ), | ||
| __( 'https://make.wordpress.org/' ) | ||
| ); | ||
| ?></p> | ||
|
|
||
| </div> | ||
| <?php | ||
|
|
||
| include( ABSPATH . 'wp-admin/admin-footer.php' ); | ||
|
|
||
| return; | ||
|
|
||
| // These are strings returned by the API that we want to be translatable | ||
| __( 'Project Leaders' ); | ||
| __( 'Core Contributors to WordPress %s' ); | ||
| __( 'Contributing Developers' ); | ||
| __( 'Cofounder, Project Lead' ); | ||
| __( 'Lead Developer' ); | ||
| __( 'Release Lead' ); | ||
| __( 'Release Design Lead' ); | ||
| __( 'Release Deputy' ); | ||
| __( 'Core Developer' ); | ||
| __( 'External Libraries' ); |
| @@ -0,0 +1,143 @@ | ||
| .wp-color-picker { | ||
| width: 80px; | ||
| } | ||
|
|
||
| .wp-picker-container .hidden { | ||
| display: none; | ||
| } | ||
|
|
||
| .wp-color-result { | ||
| background-color: #f7f7f7; | ||
| border: 1px solid #ccc; | ||
| -webkit-border-radius: 3px; | ||
| border-radius: 3px; | ||
| cursor: pointer; | ||
| display: inline-block; | ||
| height: 22px; | ||
| margin: 0 0px 6px 6px; | ||
| position: relative; | ||
| top: 1px; | ||
| -webkit-user-select: none; | ||
| -moz-user-select: none; | ||
| -ms-user-select: none; | ||
| user-select: none; | ||
| vertical-align: bottom; | ||
| display: inline-block; | ||
| padding-right: 30px; | ||
| -webkit-box-shadow: 0 1px 0 #ccc; | ||
| box-shadow: 0 1px 0 #ccc; | ||
| } | ||
|
|
||
| .wp-color-result:after { | ||
| background: #f7f7f7; | ||
| -webkit-border-radius: 2px 0 0 2px; | ||
| border-radius: 2px 0 0 2px; | ||
| border-right: 1px solid #ccc; | ||
| color: #555; | ||
| content: attr( title ); | ||
| display: block; | ||
| font-size: 11px; | ||
| line-height: 22px; | ||
| padding: 0 6px; | ||
| position: relative; | ||
| left: 0; | ||
| text-align: center; | ||
| top: 0; | ||
| } | ||
|
|
||
| .wp-color-result:hover, | ||
| .wp-color-result:focus { | ||
| background: #fafafa; | ||
| border-color: #999; | ||
| color: #23282d; | ||
| } | ||
|
|
||
| .wp-color-result:hover:after, | ||
| .wp-color-result:focus:after { | ||
| color: #23282d; | ||
| border-color: #a0a5aa; | ||
| border-right: 1px solid #999; | ||
| } | ||
|
|
||
| .wp-color-result { | ||
| top: 0; | ||
| } | ||
|
|
||
| .wp-color-result.wp-picker-open:after { | ||
| content: attr( data-current ); | ||
| } | ||
|
|
||
| .wp-picker-container, .wp-picker-container:active { | ||
| display: inline-block; | ||
| outline: 0; | ||
| } | ||
|
|
||
| .wp-color-result:focus { | ||
| border-color: #5b9dd9; | ||
| -webkit-box-shadow: 0 0 3px rgba( 0, 115, 170, .8 ); | ||
| box-shadow: 0 0 3px rgba( 0, 115, 170, .8 ); | ||
| } | ||
|
|
||
| .wp-picker-open + .wp-picker-input-wrap { | ||
| display: inline-block; | ||
| vertical-align: top; | ||
| } | ||
|
|
||
| .wp-picker-container .button { | ||
| margin-right: 6px; | ||
| } | ||
|
|
||
| .wp-picker-container .iris-square-slider .ui-slider-handle:focus { | ||
| background-color: #555 | ||
| } | ||
|
|
||
| .wp-picker-container .iris-picker { | ||
| -webkit-border-radius: 0; | ||
| border-radius: 0; | ||
| border-color: #ddd; | ||
| margin-top: 6px; | ||
| } | ||
|
|
||
| .wp-picker-container input[type="text"].wp-color-picker { | ||
| width: 65px; | ||
| font-size: 12px; | ||
| font-family: monospace; | ||
| line-height: 16px; | ||
| margin: 0; | ||
| } | ||
|
|
||
| .wp-color-picker::-webkit-input-placeholder { | ||
| color: #72777c; | ||
| } | ||
|
|
||
| .wp-color-picker::-moz-placeholder { | ||
| color: #72777c; | ||
| opacity: 1; | ||
| } | ||
|
|
||
| .wp-color-picker:-ms-input-placeholder { | ||
| color: #72777c; | ||
| } | ||
|
|
||
| .wp-picker-container input[type="text"].iris-error { | ||
| background-color: #ffebe8; | ||
| border-color: #c00; | ||
| color: #000; | ||
| } | ||
|
|
||
| .iris-picker .ui-square-handle:focus, | ||
| .iris-picker .iris-strip .ui-slider-handle:focus { | ||
| -webkit-box-shadow: | ||
| 0 0 0 1px #5b9dd9, | ||
| 0 0 2px 1px rgba(30, 140, 190, .8); | ||
| box-shadow: | ||
| 0 0 0 1px #5b9dd9, | ||
| 0 0 2px 1px rgba(30, 140, 190, .8); | ||
| } | ||
|
|
||
| @media screen and ( max-width: 782px ) { | ||
| .wp-picker-container input[type="text"].wp-color-picker { | ||
| margin-left: 6px; | ||
| padding: 3px 5px; | ||
| } | ||
| } |
| @@ -0,0 +1,143 @@ | ||
| .wp-color-picker { | ||
| width: 80px; | ||
| } | ||
|
|
||
| .wp-picker-container .hidden { | ||
| display: none; | ||
| } | ||
|
|
||
| .wp-color-result { | ||
| background-color: #f7f7f7; | ||
| border: 1px solid #ccc; | ||
| -webkit-border-radius: 3px; | ||
| border-radius: 3px; | ||
| cursor: pointer; | ||
| display: inline-block; | ||
| height: 22px; | ||
| margin: 0 6px 6px 0px; | ||
| position: relative; | ||
| top: 1px; | ||
| -webkit-user-select: none; | ||
| -moz-user-select: none; | ||
| -ms-user-select: none; | ||
| user-select: none; | ||
| vertical-align: bottom; | ||
| display: inline-block; | ||
| padding-left: 30px; | ||
| -webkit-box-shadow: 0 1px 0 #ccc; | ||
| box-shadow: 0 1px 0 #ccc; | ||
| } | ||
|
|
||
| .wp-color-result:after { | ||
| background: #f7f7f7; | ||
| -webkit-border-radius: 0 2px 2px 0; | ||
| border-radius: 0 2px 2px 0; | ||
| border-left: 1px solid #ccc; | ||
| color: #555; | ||
| content: attr( title ); | ||
| display: block; | ||
| font-size: 11px; | ||
| line-height: 22px; | ||
| padding: 0 6px; | ||
| position: relative; | ||
| right: 0; | ||
| text-align: center; | ||
| top: 0; | ||
| } | ||
|
|
||
| .wp-color-result:hover, | ||
| .wp-color-result:focus { | ||
| background: #fafafa; | ||
| border-color: #999; | ||
| color: #23282d; | ||
| } | ||
|
|
||
| .wp-color-result:hover:after, | ||
| .wp-color-result:focus:after { | ||
| color: #23282d; | ||
| border-color: #a0a5aa; | ||
| border-left: 1px solid #999; | ||
| } | ||
|
|
||
| .wp-color-result { | ||
| top: 0; | ||
| } | ||
|
|
||
| .wp-color-result.wp-picker-open:after { | ||
| content: attr( data-current ); | ||
| } | ||
|
|
||
| .wp-picker-container, .wp-picker-container:active { | ||
| display: inline-block; | ||
| outline: 0; | ||
| } | ||
|
|
||
| .wp-color-result:focus { | ||
| border-color: #5b9dd9; | ||
| -webkit-box-shadow: 0 0 3px rgba( 0, 115, 170, .8 ); | ||
| box-shadow: 0 0 3px rgba( 0, 115, 170, .8 ); | ||
| } | ||
|
|
||
| .wp-picker-open + .wp-picker-input-wrap { | ||
| display: inline-block; | ||
| vertical-align: top; | ||
| } | ||
|
|
||
| .wp-picker-container .button { | ||
| margin-left: 6px; | ||
| } | ||
|
|
||
| .wp-picker-container .iris-square-slider .ui-slider-handle:focus { | ||
| background-color: #555 | ||
| } | ||
|
|
||
| .wp-picker-container .iris-picker { | ||
| -webkit-border-radius: 0; | ||
| border-radius: 0; | ||
| border-color: #ddd; | ||
| margin-top: 6px; | ||
| } | ||
|
|
||
| .wp-picker-container input[type="text"].wp-color-picker { | ||
| width: 65px; | ||
| font-size: 12px; | ||
| font-family: monospace; | ||
| line-height: 16px; | ||
| margin: 0; | ||
| } | ||
|
|
||
| .wp-color-picker::-webkit-input-placeholder { | ||
| color: #72777c; | ||
| } | ||
|
|
||
| .wp-color-picker::-moz-placeholder { | ||
| color: #72777c; | ||
| opacity: 1; | ||
| } | ||
|
|
||
| .wp-color-picker:-ms-input-placeholder { | ||
| color: #72777c; | ||
| } | ||
|
|
||
| .wp-picker-container input[type="text"].iris-error { | ||
| background-color: #ffebe8; | ||
| border-color: #c00; | ||
| color: #000; | ||
| } | ||
|
|
||
| .iris-picker .ui-square-handle:focus, | ||
| .iris-picker .iris-strip .ui-slider-handle:focus { | ||
| -webkit-box-shadow: | ||
| 0 0 0 1px #5b9dd9, | ||
| 0 0 2px 1px rgba(30, 140, 190, .8); | ||
| box-shadow: | ||
| 0 0 0 1px #5b9dd9, | ||
| 0 0 2px 1px rgba(30, 140, 190, .8); | ||
| } | ||
|
|
||
| @media screen and ( max-width: 782px ) { | ||
| .wp-picker-container input[type="text"].wp-color-picker { | ||
| margin-right: 6px; | ||
| padding: 3px 5px; | ||
| } | ||
| } |
| @@ -0,0 +1,51 @@ | ||
| /* | ||
| * Button mixin- creates 3d-ish button effect with correct | ||
| * highlights/shadows, based on a base color. | ||
| */ | ||
| @mixin button( $button-color, $text-color: #fff ) { | ||
| background: $button-color; | ||
| border-color: darken( $button-color, 10% ) darken( $button-color, 15% ) darken( $button-color, 15% ); | ||
| color: $text-color; | ||
| box-shadow: 0 1px 0 darken( $button-color, 15% ); | ||
| text-shadow: 0 -1px 1px darken( $button-color, 15% ), | ||
| 1px 0 1px darken( $button-color, 15% ), | ||
| 0 1px 1px darken( $button-color, 15% ), | ||
| -1px 0 1px darken( $button-color, 15% ); | ||
|
|
||
| &:hover, | ||
| &:focus { | ||
| background: lighten( $button-color, 3% ); | ||
| border-color: darken( $button-color, 15% ); | ||
| color: $text-color; | ||
| box-shadow: 0 1px 0 darken( $button-color, 15% ); | ||
| } | ||
|
|
||
| &:focus { | ||
| box-shadow: inset 0 1px 0 darken( $button-color, 10% ), | ||
| 0 0 2px 1px #33b3db; | ||
| } | ||
|
|
||
| &:active { | ||
| background: darken( $button-color, 10% ); | ||
| border-color: darken( $button-color, 15% ); | ||
| box-shadow: inset 0 2px 0 darken( $button-color, 15% ); | ||
| } | ||
|
|
||
| &[disabled], | ||
| &:disabled, | ||
| &.button-primary-disabled, | ||
| &.disabled { | ||
| color: hsl( hue( $button-color ), 10%, 80% ) !important; | ||
| background: darken( $button-color, 8% ) !important; | ||
| border-color: darken( $button-color, 15% ) !important; | ||
| text-shadow: none !important; | ||
| } | ||
|
|
||
| &.button-hero { | ||
| box-shadow: 0 2px 0 darken( $button-color, 15% ) !important; | ||
| &:active { | ||
| box-shadow: inset 0 3px 0 darken( $button-color, 15% ) !important; | ||
| } | ||
| } | ||
|
|
||
| } |
| @@ -0,0 +1,58 @@ | ||
| // assign default value to all undefined variables | ||
|
|
||
|
|
||
| // core variables | ||
|
|
||
| $text-color: #fff !default; | ||
| $base-color: #23282d !default; | ||
| $icon-color: hsl( hue( $base-color ), 7%, 95% ) !default; | ||
| $highlight-color: #0073aa !default; | ||
| $notification-color: #d54e21 !default; | ||
|
|
||
|
|
||
| // global | ||
|
|
||
| $body-background: #f1f1f1 !default; | ||
|
|
||
| $link: #0073aa !default; | ||
| $link-focus: lighten( $link, 10% ) !default; | ||
|
|
||
| $button-color: $highlight-color !default; | ||
| $form-checked: $highlight-color !default; | ||
|
|
||
|
|
||
| // admin menu & admin-bar | ||
|
|
||
| $menu-text: $text-color !default; | ||
| $menu-icon: $icon-color !default; | ||
| $menu-background: $base-color !default; | ||
|
|
||
| $menu-highlight-text: $text-color !default; | ||
| $menu-highlight-icon: $text-color !default; | ||
| $menu-highlight-background: $highlight-color !default; | ||
|
|
||
| $menu-current-text: $menu-highlight-text !default; | ||
| $menu-current-icon: $menu-highlight-icon !default; | ||
| $menu-current-background: $menu-highlight-background !default; | ||
|
|
||
| $menu-submenu-text: mix( $base-color, $text-color, 30% ) !default; | ||
| $menu-submenu-background: darken( $base-color, 7% ) !default; | ||
| $menu-submenu-background-alt: desaturate( lighten( $menu-background, 7% ), 7% ) !default; | ||
|
|
||
| $menu-submenu-focus-text: $highlight-color !default; | ||
| $menu-submenu-current-text: $text-color !default; | ||
|
|
||
| $menu-bubble-text: $text-color !default; | ||
| $menu-bubble-background: $notification-color !default; | ||
| $menu-bubble-current-text: $text-color !default; | ||
| $menu-bubble-current-background: $menu-submenu-background !default; | ||
|
|
||
| $menu-collapse-text: $menu-icon !default; | ||
| $menu-collapse-icon: $menu-icon !default; | ||
| $menu-collapse-focus-text: $text-color !default; | ||
| $menu-collapse-focus-icon: $menu-highlight-icon !default; | ||
|
|
||
| $adminbar-avatar-frame: lighten( $menu-background, 7% ) !default; | ||
| $adminbar-input-background: lighten( $menu-background, 7% ) !default; | ||
|
|
||
| $menu-customizer-text: mix( $base-color, $text-color, 40% ) !default; |
| @@ -0,0 +1,11 @@ | ||
| $base-color: #52accc; | ||
| $icon-color: #e5f8ff; | ||
| $highlight-color: #096484; | ||
| $notification-color: #e1a948; | ||
| $button-color: #e1a948; | ||
|
|
||
| $menu-submenu-text: #e2ecf1; | ||
| $menu-submenu-focus-text: #fff; | ||
| $menu-submenu-background: #4796b3; | ||
|
|
||
| @import "../_admin.scss"; |