← All changes
|
modules/global-classes/atomic-global-styles.php
+10
-6
4.0.8
→
3.32.0-dev3
View file →
| @@ -3,8 +3,9 @@ | ||
| 3 | 3 | namespace Elementor\Modules\GlobalClasses; |
| 4 | 4 | |
| 5 | 5 | use Elementor\Plugin; |
| 6 | 6 | use Elementor\Modules\AtomicWidgets\Styles\Atomic_Styles_Manager; |
| 7 | +use Elementor\Modules\AtomicWidgets\Cache_Validity; | |
| 7 | 8 | |
| 8 | 9 | class Atomic_Global_Styles { |
| 9 | 10 | const STYLES_KEY = 'global'; |
| 10 | 11 | |
| @@ -10,9 +11,9 @@ | ||
| 10 | 11 | |
| 11 | 12 | public function register_hooks() { |
| 12 | 13 | add_action( |
| 13 | 14 | 'elementor/atomic-widgets/styles/register', |
| 14 | - fn( Atomic_Styles_Manager $styles_manager ) => $this->register_styles( $styles_manager ), | |
| 15 | + fn( Atomic_Styles_Manager $styles_manager, array $post_ids ) => $this->register_styles( $styles_manager ), | |
| 15 | 16 | 20, |
| 16 | 17 | 2 |
| 17 | 18 | ); |
| 18 | 19 | |
| @@ -36,17 +37,18 @@ | ||
| 36 | 37 | private function register_styles( Atomic_Styles_Manager $styles_manager ) { |
| 37 | 38 | $context = is_preview() ? Global_Classes_Repository::CONTEXT_PREVIEW : Global_Classes_Repository::CONTEXT_FRONTEND; |
| 38 | 39 | |
| 39 | 40 | $get_styles = function () use ( $context ) { |
| 40 | - return Global_Classes_Repository::make()->context( $context )->all()->get_ordered_items()->map( function( $item ) { | |
| 41 | + return Global_Classes_Repository::make()->context( $context )->all()->get_items()->map( function( $item ) { | |
| 41 | 42 | $item['id'] = $item['label']; |
| 42 | 43 | return $item; |
| 43 | - })->reverse()->all(); // we should reverse the order of the items so that the last in the original array should be rendered first (to be overridden by the previous ones) | |
| 44 | + })->all(); | |
| 44 | 45 | }; |
| 45 | 46 | |
| 46 | 47 | $styles_manager->register( |
| 47 | - [ self::STYLES_KEY, $context ], | |
| 48 | + self::STYLES_KEY . '-' . $context, | |
| 48 | 49 | $get_styles, |
| 50 | + [ self::STYLES_KEY, $context ] | |
| 49 | 51 | ); |
| 50 | 52 | } |
| 51 | 53 | |
| 52 | 54 | private function on_post_delete( $post_id ) { |
| @@ -57,15 +59,17 @@ | ||
| 57 | 59 | $this->invalidate_cache(); |
| 58 | 60 | } |
| 59 | 61 | |
| 60 | 62 | private function invalidate_cache( ?string $context = null ) { |
| 63 | + $cache_validity = new Cache_Validity(); | |
| 64 | + | |
| 61 | 65 | if ( empty( $context ) || Global_Classes_Repository::CONTEXT_FRONTEND === $context ) { |
| 62 | - do_action( 'elementor/atomic-widgets/styles/clear', [ self::STYLES_KEY ] ); | |
| 66 | + $cache_validity->invalidate( [ self::STYLES_KEY ] ); | |
| 63 | 67 | |
| 64 | 68 | return; |
| 65 | 69 | } |
| 66 | 70 | |
| 67 | - do_action( 'elementor/atomic-widgets/styles/clear', [ self::STYLES_KEY, $context ] ); | |
| 71 | + $cache_validity->invalidate( [ self::STYLES_KEY, $context ] ); | |
| 68 | 72 | } |
| 69 | 73 | |
| 70 | 74 | private function transform_classes_names( $ids ) { |
| 71 | 75 | $context = is_preview() ? Global_Classes_Repository::CONTEXT_PREVIEW : Global_Classes_Repository::CONTEXT_FRONTEND; |