Make WordPress Core

Changeset 27904 for trunk


Ignore:
Timestamp:
04/02/2014 06:11:49 AM (13 years ago)
Author:
DrewAPicture
Message:

Coding standards and readability spacing for WP_Customize_Widgets.

Also explicitly re-mark _capture_filter_pre_update_option() and _capture_filter_pre_get_option() as public.

See #27534.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-customize-widgets.php

    r27903 r27904  
    2828         */
    2929        protected $core_widget_id_bases = array(
    30                 'archives',
    31                 'calendar',
    32                 'categories',
    33                 'links',
    34                 'meta',
    35                 'nav_menu',
    36                 'pages',
    37                 'recent-comments',
    38                 'recent-posts',
    39                 'rss',
    40                 'search',
    41                 'tag_cloud',
    42                 'text',
     30                'archives', 'calendar', 'categories', 'links', 'meta',
     31                'nav_menu', 'pages', 'recent-comments', 'recent-posts',
     32                'rss', 'search', 'tag_cloud', 'text',
    4333        );
    4434
    … …  
    127117        public function setup_widget_addition_previews() {
    128118                $is_customize_preview = false;
     119
    129120                if ( ! empty( $this->manager ) && ! is_admin() && 'on' === $this->get_post_value( 'wp_customize' ) ) {
    130121                        $is_customize_preview = check_ajax_referer( 'preview-customize_' . $this->manager->get_stylesheet(), 'nonce', false );
    … …  
    149140                if ( isset( $_POST['customized'] ) ) {
    150141                        $customized = json_decode( $this->get_post_value( 'customized' ), true );
    151                 }
    152 
    153                 // Input from ajax widget update request.
    154                 else {
     142                } else { // Input from ajax widget update request.
    155143                        $customized    = array();
    156144                        $id_base       = $this->get_post_value( 'id_base' );
    … …  
    259247                                        $instance = array();
    260248                                }
    261                         }
    262                         // Multi widget
    263                         else if ( false === $instance || ! isset( $instance[$widget_number] ) ) {
     249                        } else if ( false === $instance || ! isset( $instance[$widget_number] ) ) { // Multi widget
    264250                                if ( empty( $instance ) ) {
    265251                                        $instance = array( '_multiwidget' => 1 );
    … …  
    352338                        $setting_id   = $this->get_setting_id( $widget_id );
    353339                        $setting_args = $this->get_setting_args( $setting_id );
     340
    354341                        $setting_args['sanitize_callback']    = array( $this, 'sanitize_widget_instance' );
    355342                        $setting_args['sanitize_js_callback'] = array( $this, 'sanitize_widget_js_instance' );
     343
    356344                        $this->manager->add_setting( $setting_id, $setting_args );
     345
    357346                        $new_setting_ids[] = $setting_id;
    358347                }
    … …  
    362351                                $sidebar_widget_ids = array();
    363352                        }
     353
    364354                        $is_registered_sidebar = isset( $GLOBALS['wp_registered_sidebars'][$sidebar_id] );
    365355                        $is_inactive_widgets   = ( 'wp_inactive_widgets' === $sidebar_id );
    … …  
    370360                                $setting_id   = sprintf( 'sidebars_widgets[%s]', $sidebar_id );
    371361                                $setting_args = $this->get_setting_args( $setting_id );
     362
    372363                                $setting_args['sanitize_callback']    = array( $this, 'sanitize_sidebar_widgets' );
    373364                                $setting_args['sanitize_js_callback'] = array( $this, 'sanitize_sidebar_widgets_js_instance' );
     365
    374366                                $this->manager->add_setting( $setting_id, $setting_args );
    375367                                $new_setting_ids[] = $setting_id;
    … …  
    378370                                $section_id = sprintf( 'sidebar-widgets-%s', $sidebar_id );
    379371                                if ( $is_active_sidebar ) {
     372
    380373                                        $section_args = array(
    381374                                                /* translators: %s: sidebar name */
    … …  
    385378                                        );
    386379                                        $section_args = apply_filters( 'customizer_widgets_section_args', $section_args, $section_id, $sidebar_id );
     380
    387381                                        $this->manager->add_section( $section_id, $section_args );
    388382
    389                                         $control = new WP_Widget_Area_Customize_Control(
    390                                                 $this->manager,
    391                                                 $setting_id,
    392                                                 array(
    393                                                         'section' => $section_id,
    394                                                         'sidebar_id' => $sidebar_id,
    395                                                         'priority' => count( $sidebar_widget_ids ), // place Add Widget & Reorder buttons at end
    396                                                 )
    397                                         );
     383                                        $control = new WP_Widget_Area_Customize_Control( $this->manager, $setting_id, array(
     384                                                'section'    => $section_id,
     385                                                'sidebar_id' => $sidebar_id,
     386                                                'priority'   => count( $sidebar_widget_ids ), // place 'Add Widget' and 'Reorder' buttons at end.
     387                                        ) );
    398388                                        $new_setting_ids[] = $setting_id;
     389
    399390                                        $this->manager->add_control( $control );
    400391                                }
    … …  
    408399                                        continue;
    409400                                }
     401
    410402                                $registered_widget = $GLOBALS['wp_registered_widgets'][$widget_id];
    411                                 $setting_id = $this->get_setting_id( $widget_id );
    412                                 $id_base = $GLOBALS['wp_registered_widget_controls'][$widget_id]['id_base'];
     403                                $setting_id        = $this->get_setting_id( $widget_id );
     404                                $id_base           = $GLOBALS['wp_registered_widget_controls'][$widget_id]['id_base'];
     405
    413406                                assert( false !== is_active_widget( $registered_widget['callback'], $registered_widget['id'], false, false ) );
    414                                 $control = new WP_Widget_Form_Customize_Control(
    415                                         $this->manager,
    416                                         $setting_id,
    417                                         array(
    418                                                 'label' => $registered_widget['name'],
    419                                                 'section' => $section_id,
    420                                                 'sidebar_id' => $sidebar_id,
    421                                                 'widget_id' => $widget_id,
    422                                                 'widget_id_base' => $id_base,
    423                                                 'priority' => $i,
    424                                                 'width' => $wp_registered_widget_controls[$widget_id]['width'],
    425                                                 'height' => $wp_registered_widget_controls[$widget_id]['height'],
    426                                                 'is_wide' => $this->is_wide_widget( $widget_id ),
    427                                         )
    428                                 );
     407
     408                                $control = new WP_Widget_Form_Customize_Control( $this->manager, $setting_id, array(
     409                                        'label'          => $registered_widget['name'],
     410                                        'section'        => $section_id,
     411                                        'sidebar_id'     => $sidebar_id,
     412                                        'widget_id'      => $widget_id,
     413                                        'widget_id_base' => $id_base,
     414                                        'priority'       => $i,
     415                                        'width'          => $wp_registered_widget_controls[$widget_id]['width'],
     416                                        'height'         => $wp_registered_widget_controls[$widget_id]['height'],
     417                                        'is_wide'        => $this->is_wide_widget( $widget_id ),
     418                                ) );
    429419                                $this->manager->add_control( $control );
    430420                        }
    … …  
    440430                        }
    441431                }
    442 
    443432                $this->remove_prepreview_filters();
    444433        }
    … …  
    455444        public function get_setting_id( $widget_id ) {
    456445                $parsed_widget_id = $this->parse_widget_id( $widget_id );
    457                 $setting_id = sprintf( 'widget_%s', $parsed_widget_id['id_base'] );
     446                $setting_id       = sprintf( 'widget_%s', $parsed_widget_id['id_base'] );
     447
    458448                if ( ! is_null( $parsed_widget_id['number'] ) ) {
    459449                        $setting_id .= sprintf( '[%d]', $parsed_widget_id['number'] );
    … …  
    480470        public function is_wide_widget( $widget_id ) {
    481471                global $wp_registered_widget_controls;
     472
    482473                $parsed_widget_id = $this->parse_widget_id( $widget_id );
    483                 $width = $wp_registered_widget_controls[$widget_id]['width'];
    484                 $is_core = in_array( $parsed_widget_id['id_base'], $this->core_widget_id_bases );
    485                 $is_wide = ( $width > 250 && ! $is_core );
     474                $width            = $wp_registered_widget_controls[$widget_id]['width'];
     475                $is_core          = in_array( $parsed_widget_id['id_base'], $this->core_widget_id_bases );
     476                $is_wide          = ( $width > 250 && ! $is_core );
    486477
    487478                /**
    … …  
    510501                        'id_base' => null,
    511502                );
     503
    512504                if ( preg_match( '/^(.+)-(\d+)$/', $widget_id, $matches ) ) {
    513505                        $parsed['id_base'] = $matches[1];
    … …  
    537529                $id_base = $matches[2];
    538530                $number  = isset( $matches[3] ) ? intval( $matches[3] ) : null;
     531
    539532                return compact( 'id_base', 'number' );
    540533        }
    … …  
    555548                 */
    556549                $available_widgets = array();
     550
    557551                foreach ( $this->get_available_widgets() as $available_widget ) {
    558552                        unset( $available_widget['control_tpl'] );
    … …  
    593587                 */
    594588                global $wp_scripts;
     589
    595590                $exports = array(
    596                         'nonce' => wp_create_nonce( 'update-widget' ),
     591                        'nonce'               => wp_create_nonce( 'update-widget' ),
    597592                        'registered_sidebars' => array_values( $GLOBALS['wp_registered_sidebars'] ),
    598                         'registered_widgets' => $GLOBALS['wp_registered_widgets'],
    599                         'available_widgets' => $available_widgets, // @todo Merge this with registered_widgets
     593                        'registered_widgets'  => $GLOBALS['wp_registered_widgets'],
     594                        'available_widgets'   => $available_widgets, // @todo Merge this with registered_widgets
    600595                        'i18n' => array(
    601                                 'save_btn_label' => __( 'Apply' ),
     596                                'save_btn_label'     => __( 'Apply' ),
    602597                                // @todo translate? do we want these tooltips?
    603                                 'save_btn_tooltip' => ( 'Save and preview changes before publishing them.' ),
    604                                 'remove_btn_label' => __( 'Remove' ),
     598                                'save_btn_tooltip'   => ( 'Save and preview changes before publishing them.' ),
     599                                'remove_btn_label'   => __( 'Remove' ),
    605600                                'remove_btn_tooltip' => ( 'Trash widget by moving it to the inactive widgets sidebar.' ),
    606                                 'error' => __( 'An error has occurred. Please reload the page and try again.' ),
     601                                'error'              => __( 'An error has occurred. Please reload the page and try again.' ),
    607602                        ),
    608                         'tpl' => array(
     603                        'tpl'                 => array(
    609604                                'widget_reorder_nav' => $widget_reorder_nav_tpl,
    610                                 'move_widget_area' => $move_widget_area_tpl,
     605                                'move_widget_area'   => $move_widget_area_tpl,
    611606                        ),
    612607                );
     608
    613609                foreach ( $exports['registered_widgets'] as &$registered_widget ) {
    614610                        unset( $registered_widget['callback'] ); // may not be JSON-serializeable
    … …  
    658654        public function get_setting_args( $id, $overrides = array() ) {
    659655                $args = array(
    660                         'type' => 'option',
     656                        'type'       => 'option',
    661657                        'capability' => 'edit_theme_options',
    662                         'transport' => 'refresh',
    663                         'default' => array(),
     658                        'transport'  => 'refresh',
     659                        'default'    => array(),
    664660                );
    665661                $args = array_merge( $args, $overrides );
    … …  
    691687        public function sanitize_sidebar_widgets( $widget_ids ) {
    692688                global $wp_registered_widgets;
    693                 $widget_ids = array_map( 'strval', (array) $widget_ids );
     689
     690                $widget_ids           = array_map( 'strval', (array) $widget_ids );
    694691                $sanitized_widget_ids = array();
     692
    695693                foreach ( $widget_ids as $widget_id ) {
    696694                        if ( array_key_exists( $widget_id, $wp_registered_widgets ) ) {
    … …  
    740738
    741739                        $args = array(
    742                                 'widget_id' => $widget['id'],
     740                                'widget_id'   => $widget['id'],
    743741                                'widget_name' => $widget['name'],
    744                                 '_display' => 'template',
     742                                '_display'    => 'template',
    745743                        );
    746744
    747745                        $is_disabled     = false;
    748                         $is_multi_widget = (
    749                                 isset( $wp_registered_widget_controls[$widget['id']]['id_base'] )
    750                                 &&
    751                                 isset( $widget['params'][0]['number'] )
    752                         );
     746                        $is_multi_widget = ( isset( $wp_registered_widget_controls[$widget['id']]['id_base'] ) && isset( $widget['params'][0]['number'] ) );
    753747                        if ( $is_multi_widget ) {
    754                                 $id_base = $wp_registered_widget_controls[$widget['id']]['id_base'];
     748                                $id_base            = $wp_registered_widget_controls[$widget['id']]['id_base'];
    755749                                $args['_temp_id']   = "$id_base-__i__";
    756750                                $args['_multi_num'] = next_widget_id_number( $id_base );
    … …  
    758752                        } else {
    759753                                $args['_add'] = 'single';
     754
    760755                                if ( $sidebar && 'wp_inactive_widgets' !== $sidebar ) {
    761756                                        $is_disabled = true;
    … …  
    768763
    769764                        // The properties here are mapped to the Backbone Widget model.
    770                         $available_widget = array_merge(
    771                                 $available_widget,
    772                                 array(
    773                                         'temp_id' => isset( $args['_temp_id'] ) ? $args['_temp_id'] : null,
    774                                         'is_multi' => $is_multi_widget,
    775                                         'control_tpl' => $control_tpl,
    776                                         'multi_number' => ( $args['_add'] === 'multi' ) ? $args['_multi_num'] : false,
    777                                         'is_disabled' => $is_disabled,
    778                                         'id_base' => $id_base,
    779                                         'transport' => 'refresh',
    780                                         'width' => $wp_registered_widget_controls[$widget['id']]['width'],
    781                                         'height' => $wp_registered_widget_controls[$widget['id']]['height'],
    782                                         'is_wide' => $this->is_wide_widget( $widget['id'] ),
    783                                 )
    784                         );
     765                        $available_widget = array_merge( $available_widget, array(
     766                                'temp_id'      => isset( $args['_temp_id'] ) ? $args['_temp_id'] : null,
     767                                'is_multi'     => $is_multi_widget,
     768                                'control_tpl'  => $control_tpl,
     769                                'multi_number' => ( $args['_add'] === 'multi' ) ? $args['_multi_num'] : false,
     770                                'is_disabled'  => $is_disabled,
     771                                'id_base'      => $id_base,
     772                                'transport'    => 'refresh',
     773                                'width'        => $wp_registered_widget_controls[$widget['id']]['width'],
     774                                'height'       => $wp_registered_widget_controls[$widget['id']]['height'],
     775                                'is_wide'      => $this->is_wide_widget( $widget['id'] ),
     776                        ) );
    785777
    786778                        $available_widgets[] = $available_widget;
    … …  
    815807        public function get_widget_control( $args ) {
    816808                ob_start();
     809
    817810                call_user_func_array( 'wp_widget_control', $args );
    818811                $replacements = array(
    … …  
    820813                        '</form>' => '</div><!-- .form -->',
    821814                );
     815
    822816                $control_tpl = ob_get_clean();
     817
    823818                $control_tpl = str_replace( array_keys( $replacements ), array_values( $replacements ), $control_tpl );
     819
    824820                return $control_tpl;
    825821        }
    … …  
    900896         */
    901897        public function export_preview_data() {
     898
    902899                // Prepare customizer settings to pass to Javascript.
    903900                $settings = array(
    … …  
    10201017                        return $value;
    10211018                }
    1022                 $invalid = (
    1023                         empty( $value['is_widget_customizer_js_value'] )
    1024                         ||
    1025                         empty( $value['instance_hash_key'] )
    1026                         ||
    1027                         empty( $value['encoded_serialized_instance'] )
    1028                 );
    1029                 if ( $invalid ) {
     1019
     1020                if ( empty( $value['is_widget_customizer_js_value'] )
     1021                        || empty( $value['instance_hash_key'] )
     1022                        || empty( $value['encoded_serialized_instance'] ) )
     1023                {
    10301024                        return null;
    10311025                }
     1026
    10321027                $decoded = base64_decode( $value['encoded_serialized_instance'], true );
     1028
    10331029                if ( false === $decoded ) {
    10341030                        return null;
    10351031                }
    10361032                $instance = unserialize( $decoded );
     1033
    10371034                if ( false === $instance ) {
    10381035                        return null;
    … …  
    10561053                if ( empty( $value['is_widget_customizer_js_value'] ) ) {
    10571054                        $serialized = serialize( $value );
     1055
    10581056                        $value = array(
    1059                                 'encoded_serialized_instance' => base64_encode( $serialized ),
    1060                                 'title' => empty( $value['title'] ) ? '' : $value['title'],
     1057                                'encoded_serialized_instance'   => base64_encode( $serialized ),
     1058                                'title'                         => empty( $value['title'] ) ? '' : $value['title'],
    10611059                                'is_widget_customizer_js_value' => true,
    1062                                 'instance_hash_key' => $this->get_instance_hash_key( $value ),
     1060                                'instance_hash_key'             => $this->get_instance_hash_key( $value ),
    10631061                        );
    10641062                }
    … …  
    11671165                // Obtain the widget control with the updated instance in place.
    11681166                ob_start();
     1167
    11691168                $form = $wp_registered_widget_controls[$widget_id];
    11701169                if ( $form ) {
    11711170                        call_user_func_array( $form['callback'], $form['params'] );
    11721171                }
     1172
    11731173                $form = ob_get_clean();
    11741174
    11751175                // Obtain the widget instance.
    11761176                $option = get_option( $option_name );
     1177
    11771178                if ( null !== $parsed_id['number'] ) {
    11781179                        $instance = $option[$parsed_id['number']];
    … …  
    11821183
    11831184                $this->stop_capturing_option_updates();
     1185
    11841186                return compact( 'instance', 'form' );
    11851187        }
    … …  
    13151317
    13161318                $this->_is_capturing_option_updates = true;
     1319
    13171320                add_filter( 'pre_update_option', array( $this, '_capture_filter_pre_update_option' ), 10, 3 );
    13181321        }
    … …  
    13211324         * Pre-filter captured option values before updating.
    13221325         *
    1323          * @access private
     1326         * @since 3.9.0
     1327         * @access public
     1328         *
    13241329         * @param mixed $new_value
    13251330         * @param string $option_name
    … …  
    13271332         * @return mixed
    13281333         */
    1329         private function _capture_filter_pre_update_option( $new_value, $option_name, $old_value ) {
     1334        public function _capture_filter_pre_update_option( $new_value, $option_name, $old_value ) {
    13301335                if ( $this->is_option_capture_ignored( $option_name ) ) {
    13311336                        return;
    … …  
    13441349         * Pre-filter captured option values before retrieving.
    13451350         *
    1346          * @access private
     1351         * @since 3.9.0
     1352         * @access public
     1353         *
    13471354         * @param mixed $value Option
    13481355         * @return mixed
    13491356         */
    1350         private function _capture_filter_pre_get_option( $value ) {
     1357        public function _capture_filter_pre_get_option( $value ) {
    13511358                $option_name = preg_replace( '/^pre_option_/', '', current_filter() );
     1359
    13521360                if ( isset( $this->_captured_options[$option_name] ) ) {
    13531361                        $value = $this->_captured_options[$option_name];
Note: See TracChangeset for help on using the changeset viewer.