render_block_data` instead.' ) ); } $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $parsed_block['blockName'] ); $element_block_styles = isset( $parsed_block['attrs']['style']['elements'] ) ? $parsed_block['attrs']['style']['elements'] : null; if ( ! $element_block_styles ) { return $parsed_block; } $skip_link_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'link' ); $skip_heading_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'heading' ); $skip_button_color_serialization = wp_should_skip_block_supports_serialization( $block_type, 'color', 'button' ); $skips_all_element_color_serialization = $skip_link_color_serialization && $skip_heading_color_serialization && $skip_button_color_serialization; if ( $skips_all_element_color_serialization ) { return $parsed_block; } $options = array( 'button' => array( 'skip' => $skip_button_color_serialization ), 'link' => array( 'skip' => $skip_link_color_serialization ), 'heading' => array( 'skip' => $skip_heading_color_serialization ), ); if ( ! wp_should_add_elements_class_name( $parsed_block, $options ) ) { return $parsed_block; } $class_name = wp_get_elements_class_name( $parsed_block ); $updated_class_name = isset( $parsed_block['attrs']['className'] ) ? $parsed_block['attrs']['className'] . " $class_name" : $class_name; _wp_array_set( $parsed_block, array( 'attrs', 'className' ), $updated_class_name ); // Generate element styles based on selector and store in style engine for enqueuing. $element_types = array( 'button' => array( 'selector' => ".$class_name .wp-element-button, .$class_name .wp-block-button__link", 'skip' => $skip_button_color_serialization, ), 'link' => array( 'selector' => ".$class_name a:where(:not(.wp-element-button))", 'hover_selector' => ".$class_name a:where(:not(.wp-element-button)):hover", 'skip' => $skip_link_color_serialization, ), 'heading' => array( 'selector' => ".$class_name h1, .$class_name h2, .$class_name h3, .$class_name h4, .$class_name h5, .$class_name h6", 'skip' => $skip_heading_color_serialization, 'elements' => array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ), ), ); foreach ( $element_types as $element_type => $element_config ) { if ( $element_config['skip'] ) { continue; } $element_style_object = isset( $element_block_styles[ $element_type ] ) ? $element_block_styles[ $element_type ] : null; // Process primary element type styles. if ( $element_style_object ) { wp_style_engine_get_styles( $element_style_object, array( 'selector' => $element_config['selector'], 'context' => 'block-supports', ) ); if ( isset( $element_style_object[':hover'] ) ) { wp_style_engine_get_styles( $element_style_object[':hover'], array( 'selector' => $element_config['hover_selector'], 'context' => 'block-supports', ) ); } } // Process related elements e.g. h1-h6 for headings. if ( isset( $element_config['elements'] ) ) { foreach ( $element_config['elements'] as $element ) { $element_style_object = isset( $element_block_styles[ $element ] ) ? $element_block_styles[ $element ] : null; if ( $element_style_object ) { wp_style_engine_get_styles( $element_style_object, array( 'selector' => ".$class_name $element", 'context' => 'block-supports', ) ); } } } } return $parsed_block; } /** * Ensure the elements block support class name generated, and added to * block attributes, in the `render_block_data` filter gets applied to the * block's markup. * * @see wp_render_elements_support_styles * @since 6.6.0 * * @param string $block_content Rendered block content. * @param array $block Block object. * @return string Filtered block content. */ function wp_render_elements_class_name( $block_content, $block ) { $class_string = $block['attrs']['className'] ?? ''; preg_match( '/\bwp-elements-\S+\b/', $class_string, $matches ); if ( empty( $matches ) ) { return $block_content; } $tags = new WP_HTML_Tag_Processor( $block_content ); if ( $tags->next_tag() ) { $tags->add_class( $matches[0] ); } return $tags->get_updated_html(); } add_filter( 'render_block', 'wp_render_elements_class_name', 10, 2 ); add_filter( 'render_block_data', 'wp_render_elements_support_styles', 10, 1 ); Decroix k Langerovi: Je snadné kritizovat europeismus. Nechala bych to nyní Konečné – Eva Decroix
14. května 2025

Decroix k Langerovi: Je snadné kritizovat europeismus. Nechala bych to nyní Konečné

Ivan Langer (ODS) má jako každý člen strany právo na vlastní názor. Pokud by však jeho názor byl většinový, zastával by vyšší funkce. V pořadu K věci na CNN Prima NEWS to uvedla poslankyně a místopředsedkyně ODS Eva Decroix. Podle ní je třeba brát v potaz, že Česko se nachází ve středu Evropy, a kritiku „europeismu“ a „házení EU přes palubu“ by přenechala Kateřině Konečné (KSČM).

Členové ODS mají podle Decroix právo vyjadřovat své názory a vymezovat se vůči současnému vedení strany. „Zachováváme si demokratičnost strany a právo na určitou její vizi,“ uvedla.

K viditelným kritikům směřování ODS v současné době patří exministr vnitra Ivan Langer. Podle něj se ze strany vytrácí důraz na národní zájem na úkor Evropské unie. „Například Eva Decroix pro mě představuje symbol jednoho z atributů současné ODS, a to europeismus. Abych jí nekřivdil, rozhodně není sama. Jestli ODS byla v něčem silná, tak to byl eurorealismus – někdy možná hraničící až s euroskepticismem,“ řekl Langer v rozhovoru pro CNN Prima NEWS.

Decroix se podle svých slov diskusi o směřování strany nebrání. Důležitý je však většinový názor ve straně. „Pokud by jeho názor byl většinový, zřejmě by zastával vyšší posty ve straně,“ řekla.

Kritika podle ní musí zohledňovat politickou realitu. „Kritici to mají snadné. Je jednoduché sedět na gauči a kritizovat nějaký europeismus. Uvědomme si ale, že se nacházíme ve střední Evropě a nemůžeme hodit Evropskou unii přes palubu a říkat, že Brusel je zlý. To bych zrovna teď nechala Kateřině Konečné, ale ne ODS,“ dodala Decroix.

Celý rozhovor s Evou Decroix můžete zhlédnout na CNN Prima News.