diff --git a/includes/sync-engine.php b/includes/sync-engine.php index 035012e..d0f33cd 100644 --- a/includes/sync-engine.php +++ b/includes/sync-engine.php @@ -9,11 +9,35 @@ if ( ! defined( 'ABSPATH' ) ) exit; +// ─── Gutenberg block helpers ────────────────────────────────────────────────── + +/** Generate a self-closing block comment (standalone or child blocks). */ +if ( ! function_exists( 'oribi_b' ) ) { + function oribi_b( $name, $attrs = [] ) { + return ''; + } +} + +/** Generate an opening tag for a parent block comment. */ +if ( ! function_exists( 'oribi_b_open' ) ) { + function oribi_b_open( $name, $attrs = [] ) { + $json = ! empty( $attrs ) ? ' ' . wp_json_encode( $attrs, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) : ''; + return ''; + } +} + +/** Generate a closing tag for a parent block comment. */ +if ( ! function_exists( 'oribi_b_close' ) ) { + function oribi_b_close( $name ) { + return ''; + } +} + /** * Execute a PHP page-data file fetched from the repo and return its block markup. * * The file is expected to use oribi_b() / oribi_b_open() / oribi_b_close() - * helpers (from oribi-tech-setup) and return a string of Gutenberg block markup. + * helpers and return a string of Gutenberg block markup. * * @param string $php_source Raw PHP source code from the repo. * @param string $slug Page slug (used for error context). @@ -21,14 +45,6 @@ if ( ! defined( 'ABSPATH' ) ) exit; * @return string|WP_Error The rendered block markup, or WP_Error on failure. */ function oribi_sync_execute_php( string $php_source, string $slug ) { - // Ensure the block helpers are available - if ( ! function_exists( 'oribi_b' ) ) { - return new WP_Error( - 'oribi_sync_missing_helpers', - 'Block helper functions (oribi_b, oribi_b_open, oribi_b_close) are not available. ' - . 'Make sure the Oribi Tech Setup plugin is active.' - ); - } // Write to a temp file so we can include it $tmp = wp_tempnam( 'oribi-sync-' . $slug . '.php' );