PluginProbe
Elementor Website Builder – more than just a page builder / 3.28.0-dev2
Elementor Website Builder – more than just a page builder v3.28.0-dev2
4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 All 455 releases
← All changes | modules/atomic-widgets/styles/atomic-widget-base-styles.php +26 -31 4.1.0-beta3 → 3.28.0-dev2 View file →
@@ -1,48 +1,43 @@
1 1 <?php
2 2
3 3 namespace Elementor\Modules\AtomicWidgets\Styles;
4 4
5 +use Elementor\Core\Files\CSS\Post as Post_CSS;
5 6 use Elementor\Core\Utils\Collection;
6 -use Elementor\Modules\AtomicWidgets\Utils\Utils;
7 +use Elementor\Modules\AtomicWidgets\Elements\Atomic_Element_Base;
8 +use Elementor\Modules\AtomicWidgets\Elements\Atomic_Widget_Base;
7 9 use Elementor\Plugin;
8 10
9 11 class Atomic_Widget_Base_Styles {
10 - const STYLES_KEY = 'base';
11 -
12 12 public function register_hooks() {
13 - add_action(
14 - 'elementor/atomic-widgets/styles/register',
15 - fn( Atomic_Styles_Manager $styles_manager ) => $this->register_styles( $styles_manager ),
16 - 10,
17 - 1
18 - );
19 -
20 - add_action(
21 - 'elementor/core/files/clear_cache',
22 - fn() => $this->invalidate_cache(),
23 - );
13 + add_action( 'elementor/css-file/post/parse', fn( Post_CSS $post ) => $this->inject_elements_base_styles( $post ), 10 );
24 14 }
25 15
26 - private function register_styles( Atomic_Styles_Manager $styles_manager ) {
27 - $styles_manager->register(
28 - [ self::STYLES_KEY ],
29 - fn () => $this->get_all_base_styles(),
30 - );
31 - }
16 + private function inject_elements_base_styles( Post_CSS $post ) {
17 + if ( ! Plugin::$instance->kits_manager->is_kit( $post->get_post_id() ) ) {
18 + return;
19 + }
32 20
33 - private function invalidate_cache() {
34 - do_action( 'elementor/atomic-widgets/styles/clear', [ self::STYLES_KEY ] );
35 - }
36 -
37 - public function get_all_base_styles(): array {
38 21 $elements = Plugin::$instance->elements_manager->get_element_types();
39 22 $widgets = Plugin::$instance->widgets_manager->get_widget_types();
40 23
41 - return Collection::make( $elements )
42 - ->merge( $widgets )
43 - ->filter( fn( $element ) => Utils::is_atomic( $element ) )
44 - ->map( fn( $element ) => $element->get_base_styles() )
45 - ->flatten()
46 - ->all();
24 + $base_styles = Collection::make( $elements )
25 + ->merge( $widgets )
26 + ->filter( fn( $element ) => $element instanceof Atomic_Widget_Base || $element instanceof Atomic_Element_Base )
27 + ->map( fn( $element ) => $element->get_base_styles() )
28 + ->flatten()
29 + ->all();
30 +
31 + $css = Styles_Renderer::make(
32 + Plugin::$instance->breakpoints->get_breakpoints_config()
33 + )->on_prop_transform( function( $key, $value ) use ( &$post ) {
34 + if ( 'font-family' !== $key ) {
35 + return;
36 + }
37 +
38 + $post->add_font( $value );
39 + } )->render( $base_styles );
40 +
41 + $post->get_stylesheet()->add_raw_css( $css );
47 42 }
48 43 }