Make WordPress Core


Ignore:
Timestamp:
10/13/2020 01:07:23 PM (5 years ago)
Author:
jorgefilipecosta
Message:

Editor: update packages; Port block supports to WordPress core.

The following package versions were changed:
@wordpress/a11y: 2.11.0 -> 2.13.0
@wordpress/annotations: 1.20.4 -> 1.22.0
@wordpress/api-fetch: 3.18.0 -> 3.20.0
@wordpress/autop: 2.9.0 -> 2.10.0
@wordpress/blob: 2.9.0 -> 2.10.0
@wordpress/block-directory: 1.13.7 -> 1.16.0
@wordpress/block-editor: 4.3.7 -> 5.0.0
@wordpress/block-library: 2.22.7 -> 2.25.0
@wordpress/block-serialization-default-parser: 3.7.0 -> 3.8.0
@wordpress/blocks: 6.20.3 -> 6.23.0
@wordpress/components: 10.0.6 -> 11.0.0
@wordpress/compose: 3.19.3 -> 3.21.0
@wordpress/core-data: 2.20.3 -> 2.23.0
@wordpress/data: 4.22.3 -> 4.24.0
@wordpress/data-controls: 1.16.3 -> 1.18.0
@wordpress/date: 3.10.0 -> 3.12.0
@wordpress/deprecated: 2.9.0 -> 2.10.0
@wordpress/dom: 2.13.1 -> 2.15.0
@wordpress/dom-ready: 2.10.0 -> 2.11.0
@wordpress/e2e-test-utils: 4.11.2 -> 4.14.0
@wordpress/edit-post: 3.21.7 -> 3.24.0
@wordpress/editor: 9.20.7 -> 9.23.0
@wordpress/element: 2.16.0 -> 2.18.0
@wordpress/escape-html: 1.9.0 -> 1.10.0
@wordpress/format-library: 1.22.7 -> 1.24.0
@wordpress/hooks: 2.9.0 -> 2.10.0
@wordpress/html-entities: 2.8.0 -> 2.9.0
@wordpress/i18n: 3.14.0 -> 3.16.0
@wordpress/icons: 2.4.0 -> 2.7.0
@wordpress/is-shallow-equal: 2.1.0 -> 2.3.0
@wordpress/keyboard-shortcuts: 1.9.3 -> 1.11.0
@wordpress/keycodes: 2.14.0 -> 2.16.0
@wordpress/library-export-default-webpack-plugin: 1.7.0 -> 1.9.0
@wordpress/list-reusable-blocks: 1.21.6 -> 1.23.0
@wordpress/media-utils: 1.15.0 -> 1.17.0
@wordpress/notices: 2.8.3 -> 2.10.0
@wordpress/nux: 3.20.6 -> 3.22.0
@wordpress/plugins: 2.20.3 -> 2.22.0
@wordpress/primitives: 1.7.0 -> 1.9.0
@wordpress/priority-queue: 1.7.0 -> 1.9.0
@wordpress/redux-routine: 3.10.0 -> 3.12.0
@wordpress/rich-text: 3.20.4 -> 3.22.0
@wordpress/scripts: 12.1.1 -> 12.3.0
@wordpress/server-side-render: 1.16.6 -> 1.18.0
@wordpress/shortcode: 2.9.0 -> 2.11.0
@wordpress/token-list: 1.11.0 -> 1.13.0
@wordpress/url: 2.17.0 -> 2.19.0
@wordpress/viewport: 2.21.3 -> 2.23.0
@wordpress/warning: 1.2.0 -> 1.3.0
@wordpress/wordcount: 2.10.0 -> 2.12.0

Props isabel_brison, youknowriad, mcsf.
Fixes #51461.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/blocks/search.php

    r48469 r49135  
    2828    );
    2929
    30     $input_id      = 'wp-block-search__input-' . ++$instance_id;
    31     $label_markup  = '';
    32     $button_markup = '';
     30    $input_id        = 'wp-block-search__input-' . ++$instance_id;
     31    $classnames      = classnames_for_block_core_search( $attributes );
     32    $show_label      = ( ! empty( $attributes['showLabel'] ) ) ? true : false;
     33    $use_icon_button = ( ! empty( $attributes['buttonUseIcon'] ) ) ? true : false;
     34    $show_input      = ( ! empty( $attributes['buttonPosition'] ) && 'button-only' === $attributes['buttonPosition'] ) ? false : true;
     35    $show_button     = ( ! empty( $attributes['buttonPosition'] ) && 'no-button' === $attributes['buttonPosition'] ) ? false : true;
     36    $label_markup    = '';
     37    $input_markup    = '';
     38    $button_markup   = '';
     39    $width_styles    = '';
    3340
    34     if ( ! empty( $attributes['label'] ) ) {
    35         $label_markup = sprintf(
    36             '<label for="%s" class="wp-block-search__label">%s</label>',
     41    if ( $show_label ) {
     42        if ( ! empty( $attributes['label'] ) ) {
     43            $label_markup = sprintf(
     44                '<label for="%s" class="wp-block-search__label">%s</label>',
     45                $input_id,
     46                $attributes['label']
     47            );
     48        } else {
     49            $label_markup = sprintf(
     50                '<label for="%s" class="wp-block-search__label screen-reader-text">%s</label>',
     51                $input_id,
     52                __( 'Search' )
     53            );
     54        }
     55    }
     56
     57    if ( $show_input ) {
     58        $input_markup = sprintf(
     59            '<input type="search" id="%s" class="wp-block-search__input" name="s" value="%s" placeholder="%s" required />',
    3760            $input_id,
    38             $attributes['label']
    39         );
    40     } else {
    41         $label_markup = sprintf(
    42             '<label for="%s" class="wp-block-search__label screen-reader-text">%s</label>',
    43             $input_id,
    44             __( 'Search' )
     61            esc_attr( get_search_query() ),
     62            esc_attr( $attributes['placeholder'] )
    4563        );
    4664    }
    4765
    48     $input_markup = sprintf(
    49         '<input type="search" id="%s" class="wp-block-search__input" name="s" value="%s" placeholder="%s" required />',
    50         $input_id,
    51         esc_attr( get_search_query() ),
    52         esc_attr( $attributes['placeholder'] )
    53     );
     66    if ( $show_button ) {
     67        $button_internal_markup = '';
    5468
    55     if ( ! empty( $attributes['buttonText'] ) ) {
     69        if ( ! $use_icon_button ) {
     70            if ( ! empty( $attributes['buttonText'] ) ) {
     71                $button_internal_markup = $attributes['buttonText'];
     72            }
     73        } else {
     74            $button_internal_markup =
     75                '<svg id="search-icon" class="search-icon" viewBox="0 0 24 24">
     76                    <path d="M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z"></path>
     77                </svg>';
     78        }
     79
    5680        $button_markup = sprintf(
    5781            '<button type="submit" class="wp-block-search__button">%s</button>',
    58             $attributes['buttonText']
     82            $button_internal_markup
    5983        );
    6084    }
    6185
    62     $class = 'wp-block-search';
    63     if ( isset( $attributes['className'] ) ) {
    64         $class .= ' ' . $attributes['className'];
    65     }
    66     if ( isset( $attributes['align'] ) ) {
    67         $class .= ' align' . $attributes['align'];
     86    if ( ! empty( $attributes['width'] ) && ! empty( $attributes['widthUnit'] ) ) {
     87        if ( ! empty( $attributes['buttonPosition'] ) && 'button-only' !== $attributes['buttonPosition'] ) {
     88            $width_styles = ' style="width: ' . $attributes['width'] . $attributes['widthUnit'] . ';"';
     89        }
    6890    }
    6991
     92    $field_markup = sprintf(
     93        '<div class="wp-block-search__inside-wrapper"%s>%s</div>',
     94        $width_styles,
     95        $input_markup . $button_markup
     96    );
     97
    7098    return sprintf(
    71         '<form class="%s" role="search" method="get" action="%s">%s</form>',
    72         esc_attr( $class ),
     99        '<form role="search" method="get" action="%s" class="%s">%s</form>',
    73100        esc_url( home_url( '/' ) ),
    74         $label_markup . $input_markup . $button_markup
     101        $classnames,
     102        $label_markup . $field_markup
    75103    );
    76104}
     
    88116}
    89117add_action( 'init', 'register_block_core_search' );
     118
     119/**
     120 * Builds the correct top level classnames for the 'core/search' block.
     121 *
     122 * @param array $attributes The block attributes.
     123 *
     124 * @return string The classnames used in the block.
     125 */
     126function classnames_for_block_core_search( $attributes ) {
     127    $classnames = array();
     128
     129    if ( ! empty( $attributes['buttonPosition'] ) ) {
     130        if ( 'button-inside' === $attributes['buttonPosition'] ) {
     131            $classnames[] = 'wp-block-search__button-inside';
     132        }
     133
     134        if ( 'button-outside' === $attributes['buttonPosition'] ) {
     135            $classnames[] = 'wp-block-search__button-outside';
     136        }
     137
     138        if ( 'no-button' === $attributes['buttonPosition'] ) {
     139            $classnames[] = 'wp-block-search__no-button';
     140        }
     141
     142        if ( 'button-only' === $attributes['buttonPosition'] ) {
     143            $classnames[] = 'wp-block-search__button-only';
     144        }
     145    }
     146
     147    if ( isset( $attributes['buttonUseIcon'] ) ) {
     148        if ( ! empty( $attributes['buttonPosition'] ) && 'no-button' !== $attributes['buttonPosition'] ) {
     149            if ( $attributes['buttonUseIcon'] ) {
     150                $classnames[] = 'wp-block-search__icon-button';
     151            } else {
     152                $classnames[] = 'wp-block-search__text-button';
     153            }
     154        }
     155    }
     156
     157    return implode( ' ', $classnames );
     158}
Note: See TracChangeset for help on using the changeset viewer.