PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.14
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.14
2.0.14 2.0.13 2.0.12 2.0.11 2.0.10 2.0.9 trunk 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8
blockenberg / assets / php / template-preview.php

template-preview.php in Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor 2.0.14, at assets/php/template-preview.php

23 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /** Authenticated catalogue preview; renders bundled blocks without creating posts/media. */
3 defined('ABSPATH') || exit;
4 add_action('template_redirect',function(){
5 if(!isset($_GET['bkbg_template_preview']))return;
6 if(!current_user_can('manage_options')){auth_redirect();exit;}
7 show_admin_bar(false);
8 $key=sanitize_key(wp_unslash($_GET['bkbg_template_preview']));$data=bkbg_template_data($key,true);
9 if(is_wp_error($data))wp_die(esc_html($data->get_error_message()),'Template preview',array('response'=>403));
10 if(!$data)wp_die('Template is not available.', 'Template preview',array('response'=>404));
11 $valid=bkbg_template_validate_nodes($data['blocks']??array());if(is_wp_error($valid))wp_die(esc_html($valid->get_error_message()));
12 $content='';foreach($data['blocks'] as $node)$content.=bkbg_template_serialize($node);
13 // Render first so Gutenberg registers every needed view asset before wp_head.
14 $rendered=do_blocks($content);
15 wp_enqueue_style('bkbg-template-pilot');wp_enqueue_style('bkbg-template-components');
16 wp_enqueue_script('bkbg-template-pilot-front');wp_enqueue_script('bkbg-template-components-front');
17 if(bkbg_post_has_motion(parse_blocks($content))){wp_enqueue_style('bkbg-motion');wp_enqueue_script('bkbg-motion');}
18 bkbg_library_enqueue_template_style($key,$data['blocks'][0]['attrs']['templateStyleUrl']??'');
19 nocache_headers();header('X-Robots-Tag: noindex, nofollow');
20 ?><!doctype html><html <?php language_attributes(); ?>><head><meta charset="<?php bloginfo('charset'); ?>"><meta name="viewport" content="width=device-width, initial-scale=1"><title><?php echo esc_html($data['title'].' — Blockenberg preview'); ?></title><?php wp_head(); ?></head><body <?php body_class('bkbg-template-canvas'); ?>><?php wp_body_open(); echo $rendered; wp_footer(); ?></body></html><?php
21 exit;
22 },1);
23