PluginProbe
Elementor Website Builder – more than just a page builder / 3.29.0-beta4
Elementor Website Builder – more than just a page builder v3.29.0-beta4
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 +25 -31 4.2.3 → 3.29.0-beta4 View file →
@@ -1,48 +1,42 @@
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\Utils;
7 8 use Elementor\Plugin;
8 9
9 10 class Atomic_Widget_Base_Styles {
10 - const STYLES_KEY = 'base';
11 -
12 11 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 - );
12 + add_action( 'elementor/css-file/post/parse', fn( Post_CSS $post ) => $this->inject_elements_base_styles( $post ), 10 );
24 13 }
25 14
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 - }
15 + private function inject_elements_base_styles( Post_CSS $post ) {
16 + if ( ! Plugin::$instance->kits_manager->is_kit( $post->get_post_id() ) ) {
17 + return;
18 + }
32 19
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 20 $elements = Plugin::$instance->elements_manager->get_element_types();
39 21 $widgets = Plugin::$instance->widgets_manager->get_widget_types();
40 22
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();
23 + $base_styles = Collection::make( $elements )
24 + ->merge( $widgets )
25 + ->filter( fn( $element ) => Utils::is_atomic( $element ) )
26 + ->map( fn( $element ) => $element->get_base_styles() )
27 + ->flatten()
28 + ->all();
29 +
30 + $css = Styles_Renderer::make(
31 + Plugin::$instance->breakpoints->get_breakpoints_config()
32 + )->on_prop_transform( function( $key, $value ) use ( &$post ) {
33 + if ( 'font-family' !== $key ) {
34 + return;
35 + }
36 +
37 + $post->add_font( $value );
38 + } )->render( $base_styles );
39 +
40 + $post->get_stylesheet()->add_raw_css( $css );
47 41 }
48 42 }