IP : 3.143.143.202Hostname : premium184.web-hosting.comKernel : Linux premium184.web-hosting.com 4.18.0-513.24.1.lve.2.el8.x86_64 #1 SMP Fri May 24 12:42:50 UTC 2024 x86_64Disable Function : None :) OS : Linux
PATH:
/
home/
riggvwfp/
public_html/
6b51b/
../
./
wp-includes/
blocks/
details/
../
button/
../
search.php/
/
<?php /** * Server-side rendering of the `core/search` block. * * @package WordPress */
/** * Dynamically renders the `core/search` block. * * @since 6.3.0 Using block.json `viewScript` to register script, and update `view_script_handles()` only when needed. * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * * @return string The search block markup. */ function render_block_core_search( $attributes ) { // Older versions of the Search block defaulted the label and buttonText // attributes to `__( 'Search' )` meaning that many posts contain `<!-- // wp:search /-->`. Support these by defaulting an undefined label and // buttonText to `__( 'Search' )`. $attributes = wp_parse_args( $attributes, array( 'label' => __( 'Search' ), 'buttonText' => __( 'Search' ), ) );
$input_id = wp_unique_id( 'wp-block-search__input-' ); $classnames = classnames_for_block_core_search( $attributes ); $show_label = ! empty( $attributes['showLabel'] ); $use_icon_button = ! empty( $attributes['buttonUseIcon'] ); $show_button = ( ! empty( $attributes['buttonPosition'] ) && 'no-button' === $attributes['buttonPosition'] ) ? false : true; $button_position = $show_button ? $attributes['buttonPosition'] : null; $query_params = ( ! empty( $attributes['query'] ) ) ? $attributes['query'] : array(); $button = ''; $query_params_markup = ''; $inline_styles = styles_for_block_core_search( $attributes ); $color_classes = get_color_classes_for_block_core_search( $attributes ); $typography_classes = get_typography_classes_for_block_core_search( $attributes ); $is_button_inside = ! empty( $attributes['buttonPosition'] ) && 'button-inside' === $attributes['buttonPosition']; // Border color classes need to be applied to the elements that have a border color. $border_color_classes = get_border_color_classes_for_block_core_search( $attributes ); // This variable is a constant and its value is always false at this moment. // It is defined this way because some values depend on it, in case it changes in the future. $open_by_default = false;
// If it's interactive, enqueue the script module and add the directives. $is_expandable_searchfield = 'button-only' === $button_position; if ( $is_expandable_searchfield ) { wp_enqueue_script_module( '@wordpress/block-library/search/view' );
// Adding these attributes manually is needed until the Interactivity API // SSR logic is added to core. $input->set_attribute( 'aria-hidden', 'true' ); $input->set_attribute( 'tabindex', '-1' ); } }
/** * Registers the `core/search` block on the server. * * @since 5.2.0 */ function register_block_core_search() { register_block_type_from_metadata( __DIR__ . '/search', array( 'render_callback' => 'render_block_core_search', ) ); } add_action( 'init', 'register_block_core_search' );
/** * Builds the correct top level classnames for the 'core/search' block. * * @since 5.6.0 * * @param array $attributes The block attributes. * * @return string The classnames used in the block. */ function classnames_for_block_core_search( $attributes ) { $classnames = array();
if ( ! empty( $attributes['buttonPosition'] ) ) { if ( 'button-inside' === $attributes['buttonPosition'] ) { $classnames[] = 'wp-block-search__button-inside'; }
/** * This generates a CSS rule for the given border property and side if provided. * Based on whether the Search block is configured to display the button inside * or not, the generated rule is injected into the appropriate collection of * styles for later application in the block's markup. * * @since 6.1.0 * * @param array $attributes The block attributes. * @param string $property Border property to generate rule for e.g. width or color. * @param string $side Optional side border. The dictates the value retrieved and final CSS property. * @param array $wrapper_styles Current collection of wrapper styles. * @param array $button_styles Current collection of button styles. * @param array $input_styles Current collection of input styles. */ function apply_block_core_search_border_style( $attributes, $property, $side, &$wrapper_styles, &$button_styles, &$input_styles ) { $is_button_inside = isset( $attributes['buttonPosition'] ) && 'button-inside' === $attributes['buttonPosition'];
/** * This adds CSS rules for a given border property e.g. width or color. It * injects rules into the provided wrapper, button and input style arrays for * uniform "flat" borders or those with individual sides configured. * * @since 6.1.0 * * @param array $attributes The block attributes. * @param string $property Border property to generate rule for e.g. width or color. * @param array $wrapper_styles Current collection of wrapper styles. * @param array $button_styles Current collection of button styles. * @param array $input_styles Current collection of input styles. */ function apply_block_core_search_border_styles( $attributes, $property, &$wrapper_styles, &$button_styles, &$input_styles ) { apply_block_core_search_border_style( $attributes, $property, null, $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'top', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'right', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'bottom', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'left', $wrapper_styles, $button_styles, $input_styles ); }
/** * Builds an array of inline styles for the search block. * * The result will contain one entry for shared styles such as those for the * inner input or button and a second for the inner wrapper should the block * be positioning the button "inside". * * @since 5.8.0 * * @param array $attributes The block attributes. * * @return array Style HTML attribute. */ function styles_for_block_core_search( $attributes ) { $wrapper_styles = array(); $button_styles = array(); $input_styles = array(); $label_styles = array(); $is_button_inside = ! empty( $attributes['buttonPosition'] ) && 'button-inside' === $attributes['buttonPosition']; $show_label = ( isset( $attributes['showLabel'] ) ) && false !== $attributes['showLabel'];
// Get typography styles to be shared across inner elements. $typography_styles = esc_attr( get_typography_styles_for_block_core_search( $attributes ) ); if ( ! empty( $typography_styles ) ) { $label_styles [] = $typography_styles; $button_styles[] = $typography_styles; $input_styles [] = $typography_styles; }
// Typography text-decoration is only applied to the label and button. if ( ! empty( $attributes['style']['typography']['textDecoration'] ) ) { $text_decoration_value = sprintf( 'text-decoration: %s;', esc_attr( $attributes['style']['typography']['textDecoration'] ) ); $button_styles[] = $text_decoration_value; // Input opts out of text decoration. if ( $show_label ) { $label_styles[] = $text_decoration_value; } }
/** * Returns typography classnames depending on whether there are named font sizes/families. * * @since 6.1.0 * * @param array $attributes The block attributes. * * @return string The typography color classnames to be applied to the block elements. */ function get_typography_classes_for_block_core_search( $attributes ) { $typography_classes = array(); $has_named_font_family = ! empty( $attributes['fontFamily'] ); $has_named_font_size = ! empty( $attributes['fontSize'] );
/** * Returns typography styles to be included in an HTML style tag. * This excludes text-decoration, which is applied only to the label and button elements of the search block. * * @since 6.1.0 * * @param array $attributes The block attributes. * * @return string A string of typography CSS declarations. */ function get_typography_styles_for_block_core_search( $attributes ) { $typography_styles = array();
/** * Returns border color classnames depending on whether there are named or custom border colors. * * @since 5.9.0 * * @param array $attributes The block attributes. * * @return string The border color classnames to be applied to the block elements. */ function get_border_color_classes_for_block_core_search( $attributes ) { $border_color_classes = array(); $has_custom_border_color = ! empty( $attributes['style']['border']['color'] ); $has_named_border_color = ! empty( $attributes['borderColor'] );
/** * Returns color classnames depending on whether there are named or custom text and background colors. * * @since 5.9.0 * * @param array $attributes The block attributes. * * @return string The color classnames to be applied to the block elements. */ function get_color_classes_for_block_core_search( $attributes ) { $classnames = array();
// Text color. $has_named_text_color = ! empty( $attributes['textColor'] ); $has_custom_text_color = ! empty( $attributes['style']['color']['text'] ); if ( $has_named_text_color ) { $classnames[] = sprintf( 'has-text-color has-%s-color', $attributes['textColor'] ); } elseif ( $has_custom_text_color ) { // If a custom 'textColor' was selected instead of a preset, still add the generic `has-text-color` class. $classnames[] = 'has-text-color'; }