PluginProbe
Templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud! / 3.3.3
Templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud! v3.3.3
3.7.5 3.7.4 3.7.3 3.7.2 1-final 3.7.1 3.7.0 3.6.8 3.6.7 3.6.6 3.6.5 3.6.4 3.6.3 3.6.2 3.6.1 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.10 All 111 releases
← All changes | includes/Core/Platform/Gutenberg.php +4 -97 3.7.13.3.3 View file →
@@ -5,9 +5,8 @@
5 5 use Templately\Core\Importer\Utils\Utils;
6 6 use Templately\Core\Platform;
7 7 use Templately\Core\Module;
8 8 use Templately\Utils\Helper;
9 -use Templately\Utils\Options;
10 9
11 10 use WP_Error;
12 11 use function get_permalink;
13 12 use function get_edit_post_link;
@@ -13,9 +12,8 @@
13 12 use function get_edit_post_link;
14 13 use function wp_insert_post;
15 14 use function wp_slash;
16 15 use function wp_unslash;
17 -use function wp_update_post;
18 16 use function json_decode;
19 17
20 18 class Gutenberg extends Platform {
21 19 /**
@@ -58,9 +56,8 @@
58 56 */
59 57 public function scripts(){
60 58 $this->is_gutenberg_active = true;
61 59 templately()->assets->enqueue( 'templately-gutenberg', 'css/gutenberg.css' );
62 - templately()->assets->enqueue( 'templately-tailwind', 'css/tailwind.css', ['templately-gutenberg'] );
63 60 templately()->assets->enqueue( 'templately-gutenberg', 'js/gutenberg.js' );
64 61 templately()->admin->scripts( 'gutenberg' );
65 62 }
66 63
@@ -112,9 +109,9 @@
112 109 * @since 2.0.0
113 110 *
114 111 * @return array|WP_Error array on success, WP_Error on failure.
115 112 */
116 - public function create_page( $id, $title, $importer = null, $settings = [] ){
113 + public function create_page( $id, $title, $importer = null ){
117 114 $post_data = $inserted_ID = $importer->get_content( $id, 'gutenberg' );
118 115
119 116 if( is_wp_error( $inserted_ID ) ) {
120 117 return $inserted_ID;
@@ -119,13 +116,8 @@
119 116 if( is_wp_error( $inserted_ID ) ) {
120 117 return $inserted_ID;
121 118 }
122 119
123 - if ( ! empty( $settings ) && ! empty( $inserted_ID['content'] ) && is_string( $inserted_ID['content'] ) ) {
124 - $inserted_ID['content'] = \Templately\Core\Importer\Utils\GutenbergSettingsMerger::merge( $inserted_ID['content'], $settings );
125 - $post_data['content'] = $inserted_ID['content'];
126 - }
127 -
128 120 if ( ! empty( $inserted_ID['content'] ) ) {
129 121 $inserted_ID = wp_insert_post( array (
130 122 'post_status' => 'draft',
131 123 'post_type' => 'page',
@@ -165,100 +157,15 @@
165 157 * Inserts a template into the Gutenberg editor.
166 158 *
167 159 * @param mixed $data
168 160 * @param int $postId
169 - * @param array $settings
170 161 * @return array
171 162 */
172 - public function insert($data, $postId = 0, $settings = []) {
173 - if ( ! empty( $settings ) && is_array( $settings ) && ! empty( $data['content'] ) && is_string( $data['content'] ) ) {
174 - $data['content'] = \Templately\Core\Importer\Utils\GutenbergSettingsMerger::merge( $data['content'], $settings );
175 - }
176 -
177 - $data['content'] = Utils::import_and_replace_attachments(
178 - $data['content'],
179 - $postId,
180 - [
181 - 'attachment_timeout' => 8,
182 - 'attachment_retries' => 0,
183 - 'attachment_deadline' => microtime( true ) + 20,
184 - ]
185 - );
163 + public function insert($data, $postId = 0) {
164 + $data['content'] = Utils::import_and_replace_attachments($data['content'], $postId);
186 165 return $data;
187 166 }
188 167
189 - /**
190 - * Import template to Templately Library
191 - *
192 - * @param integer $id
193 - * @param Import $importer
194 - * @param array $settings
195 - *
196 - * @return array|WP_Error array on success, WP_Error on failure.
197 - */
198 - public function import_in_library( $id, $importer = null, $settings = [], $template_type = '', $item_type = '' ) {
199 - $template_data = $importer->get_content( $id, 'gutenberg', 'remote' );
200 -
201 - if ( is_wp_error( $template_data ) ) {
202 - return $template_data;
203 - }
204 -
205 - if ( ! empty( $settings ) && ! empty( $template_data['content'] ) && is_string( $template_data['content'] ) ) {
206 - $template_data['content'] = \Templately\Core\Importer\Utils\GutenbergSettingsMerger::merge( $template_data['content'], $settings );
207 - }
208 -
209 - // Handle attachment replacements before saving
210 - $template_data['content'] = Utils::import_and_replace_attachments( $template_data['content'], 0 );
211 -
212 - // Frontend-provided template_type (from item details API) takes precedence over
213 - // whatever the fetched content JSON reports.
214 - if ( ! empty( $template_type ) ) {
215 - $template_data['template_type'] = $template_type;
216 - }
217 -
218 - // Resolve the correct Builder Type using template_type before passing to the importer.
219 - try {
220 - $type = static::resolve_library_type( $template_data );
221 - } catch ( \InvalidArgumentException $e ) {
222 - return Helper::error( 'unsupported_template_type', $e->getMessage(), 'import', 400 );
223 - }
224 -
225 - $factory = new \Templately\Builder\Factory\TemplateFactory( 'gutenberg' );
226 -
227 - $template = $factory->create( $type, [
228 - 'post_title' => $template_data['title'],
229 - 'post_status' => 'publish',
230 - 'post_type' => 'templately_library',
231 - ] );
232 -
233 - if ( is_wp_error( $template ) ) {
234 - return $template;
235 - }
236 -
237 - $template->import( array_merge( $template_data, [
238 - 'import_settings' => [
239 - 'title' => $template_data['title'],
240 - 'type' => $type,
241 - ]
242 - ] ) );
243 -
244 - $post_id = $template->get_main_id();
245 -
246 - // Companion content for archive/fluent types — same side effects (Shop page,
247 - // page_for_posts, LearnDash courses slug, fluent single-page template) the FSI
248 - // Templates runner performs when importing these template types.
249 - Utils::create_companion_content( $type, $template_data['title'] ?? '', 'gutenberg' );
250 -
251 - // Mark user as having imported a template
252 - Options::get_instance()->set( 'has_imported_template', true );
253 -
254 - return [
255 - 'post_id' => $post_id,
256 - 'edit_link' => get_edit_post_link( $post_id, 'internal' ),
257 - 'visit' => get_permalink( $post_id ),
258 - ];
259 - }
260 -
261 168 /**
262 169 * AJAX handler to update the option `templately-gutenberg-hide-buttons`
263 170 */
264 171 public function update_gutenberg_hide_buttons() {
@@ -277,5 +184,5 @@
277 184 wp_send_json_success([
278 185 'hide_buttons' => $hide_buttons,
279 186 ]);
280 187 }
281 -}
188 +}