Add Gutenberg block helper functions for Oribi Sync
This commit is contained in:
@@ -9,11 +9,35 @@
|
|||||||
|
|
||||||
if ( ! defined( 'ABSPATH' ) ) exit;
|
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 '<!-- wp:oribi/' . $name . ' ' . wp_json_encode( $attrs, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) . ' /-->';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 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 '<!-- wp:oribi/' . $name . $json . ' -->';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Generate a closing tag for a parent block comment. */
|
||||||
|
if ( ! function_exists( 'oribi_b_close' ) ) {
|
||||||
|
function oribi_b_close( $name ) {
|
||||||
|
return '<!-- /wp:oribi/' . $name . ' -->';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute a PHP page-data file fetched from the repo and return its block markup.
|
* 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()
|
* 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 $php_source Raw PHP source code from the repo.
|
||||||
* @param string $slug Page slug (used for error context).
|
* @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.
|
* @return string|WP_Error The rendered block markup, or WP_Error on failure.
|
||||||
*/
|
*/
|
||||||
function oribi_sync_execute_php( string $php_source, string $slug ) {
|
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
|
// Write to a temp file so we can include it
|
||||||
$tmp = wp_tempnam( 'oribi-sync-' . $slug . '.php' );
|
$tmp = wp_tempnam( 'oribi-sync-' . $slug . '.php' );
|
||||||
|
|||||||
Reference in New Issue
Block a user