PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.3
Elementor Website Builder – more than just a page builder v4.0.3
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 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
← All changes | modules/global-classes/utils/template-library-global-classes-snapshot-builder.php +12 -41 4.3.0-beta24.0.3 View file →
@@ -62,17 +62,17 @@
62 62 if ( empty( $ids ) ) {
63 63 return null;
64 64 }
65 65
66 - $repository = Global_Classes_Repository::make()->set_preview( false );
67 - $order = $repository->get_order();
68 - $filtered_order = array_values( array_filter( $order, fn( $id ) => in_array( $id, $ids, true ) ) );
69 - $filtered_items = $repository->get_by_ids( $ids );
66 + $current = self::make()->load_current_data();
67 + $filtered_items = Template_Library_Import_Export_Utils::filter_items_by_ids( $current['items'], $ids );
70 68
71 69 if ( empty( $filtered_items ) ) {
72 70 return null;
73 71 }
74 72
73 + $filtered_order = Template_Library_Import_Export_Utils::build_filtered_order( $current['order'], $filtered_items );
74 +
75 75 return self::parse_snapshot_or_null( [
76 76 'items' => $filtered_items,
77 77 'order' => $filtered_order,
78 78 ] );
@@ -133,22 +133,13 @@
133 133 return class_exists( Global_Classes_Repository::class ) && $this->has_active_kit();
134 134 }
135 135
136 136 protected function load_current_data(): array {
137 - $repository = Global_Classes_Repository::make()->set_preview( true );
138 - $labels = $repository->all_labels();
137 + $current = Global_Classes_Repository::make()->context( Global_Classes_Repository::CONTEXT_PREVIEW )->all()->get();
139 138
140 - $items = [];
141 - foreach ( $labels as $id => $label ) {
142 - $items[ $id ] = [
143 - 'id' => $id,
144 - 'label' => $label,
145 - ];
146 - }
147 -
148 139 return [
149 - 'items' => $items,
150 - 'order' => $repository->get_order(),
140 + 'items' => $current['items'] ?? [],
141 + 'order' => $current['order'] ?? [],
151 142 ];
152 143 }
153 144
154 145 protected function parse_incoming_snapshot( array $snapshot ): ?array {
@@ -171,37 +162,17 @@
171 162 protected function count_current_items( array $items ): int {
172 163 return count( $items );
173 164 }
174 165
175 - protected function save_data( array $data, array $metadata ): array {
176 - $new_items = $data['new_items'] ?? [];
177 - $order = $data['order'] ?? [];
166 + protected function save_data( array $items, array $metadata ): array {
167 + $order = $metadata['order'] ?? [];
178 168
179 - if ( empty( $new_items ) ) {
180 - return [
181 - 'global_classes' => [
182 - 'added_items' => [],
183 - 'added_items_order' => [],
184 - ],
185 - ];
186 - }
169 + Global_Classes_Repository::make()->put( $items, $order );
187 170
188 - $repository = Global_Classes_Repository::make()->set_preview( false );
189 - $added_ids = array_keys( $new_items );
190 -
191 - $repository->apply_changes(
192 - $new_items,
193 - [
194 - 'added' => $added_ids,
195 - 'order' => true,
196 - ],
197 - $order
198 - );
199 -
200 171 return [
201 172 'global_classes' => [
202 - 'added_items_order' => $added_ids,
203 - 'added_items' => $new_items,
173 + 'items' => $items,
174 + 'order' => $order,
204 175 ],
205 176 ];
206 177 }
207 178