Added "WordPress + Component Manager" adapter.
This commit is contained in:
@@ -12,11 +12,14 @@ const {isDev, developmentBlockName} = getConfigs();
|
|||||||
const blockName = !isDev && config.has('blockName') ? config.get('blockName') : developmentBlockName;
|
const blockName = !isDev && config.has('blockName') ? config.get('blockName') : developmentBlockName;
|
||||||
|
|
||||||
export const PLATFORM_OPTIONS = [{
|
export const PLATFORM_OPTIONS = [{
|
||||||
|
name: 'wordpress-blocks',
|
||||||
|
title: 'WordPress AFC Block'
|
||||||
|
}, {
|
||||||
name: 'wordpress',
|
name: 'wordpress',
|
||||||
title: 'WordPress'
|
title: 'WordPress'
|
||||||
}, {
|
}, {
|
||||||
name: 'wordpress-blocks',
|
name: 'wordpress-component-manager',
|
||||||
title: 'WordPress Block'
|
title: 'WordPress (Component Manager)'
|
||||||
}, {
|
}, {
|
||||||
name: 'wordpress-elementor',
|
name: 'wordpress-elementor',
|
||||||
title: 'WordPress Elementor'
|
title: 'WordPress Elementor'
|
||||||
@@ -47,9 +50,11 @@ console.log('--------------------\nDone!');
|
|||||||
export async function buildExportFiles(platform) {
|
export async function buildExportFiles(platform) {
|
||||||
if (platform.name.startsWith('wordpress')) {
|
if (platform.name.startsWith('wordpress')) {
|
||||||
if (platform.name === 'wordpress-blocks') {
|
if (platform.name === 'wordpress-blocks') {
|
||||||
await buildWordPress(blockName, true);
|
await buildWordPress(blockName, {block: true});
|
||||||
} else if (platform.name === 'wordpress-elementor') {
|
} else if (platform.name === 'wordpress-elementor') {
|
||||||
await buildWordPress(blockName, false, true);
|
await buildWordPress(blockName, {elementor: true});
|
||||||
|
} else if (platform.name === 'wordpress-component-manager') {
|
||||||
|
await buildWordPress(blockName, {componentManager: true});
|
||||||
} else {
|
} else {
|
||||||
await buildWordPress(blockName);
|
await buildWordPress(blockName);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -9,9 +9,9 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "component-dev",
|
"start": "component-dev",
|
||||||
"info": "node debug.js",
|
"info": "node debug.js",
|
||||||
"dev": "NODE_ENV=development NODE_CONFIG_DIR=blocks/text-block/config BLOCK_NAME=text-block node server.js",
|
"dev": "NODE_ENV=development NODE_CONFIG_DIR=blocks/header/config BLOCK_NAME=header node server.js",
|
||||||
"build": "rollup --config rollup.config.js",
|
"build": "rollup --config rollup.config.js",
|
||||||
"build-platform": "NODE_ENV=development NODE_CONFIG_DIR=blocks/text-block/config BLOCK_NAME=text-block node ./build.js",
|
"build-platform": "NODE_ENV=development NODE_CONFIG_DIR=blocks/header/config BLOCK_NAME=header node ./build.js",
|
||||||
"build-platform-cli": "component-build",
|
"build-platform-cli": "component-build",
|
||||||
"dev-js": "NODE_ENV=development rollup --config rollup.config.js --watch"
|
"dev-js": "NODE_ENV=development rollup --config rollup.config.js --watch"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,48 +2,41 @@
|
|||||||
|
|
||||||
namespace AXEWEB_Blocks\Blocks\<%= ownerClass %>\<%= blockClassModel %>;
|
namespace AXEWEB_Blocks\Blocks\<%= ownerClass %>\<%= blockClassModel %>;
|
||||||
|
|
||||||
class <%= blockClassModel %>_Component {
|
class <%= blockClassModel %>_Component <% if (isComponentManager) { %>extends \Core\Component <% } %>{
|
||||||
|
const VERSION = '<%= version %>';
|
||||||
|
|
||||||
public function __construct() {
|
<% if (!isComponentManager) { %>public function __construct() {
|
||||||
// add_action( 'wp_enqueue_scripts', [ $this, 'register_assets' ] );
|
// add_action( 'wp_enqueue_scripts', [ $this, 'register_assets' ] );
|
||||||
add_action( 'after_setup_theme', [ $this, 'register_assets' ] );
|
add_action( 'after_setup_theme', [ $this, 'register_assets' ] );
|
||||||
}
|
}
|
||||||
|
<% } %>
|
||||||
function register_assets(): void {
|
function register_assets(): void {
|
||||||
// $version = get_plugin_data( __DIR__ . "/../../scytale-custom-blocks.php" )['Version']; // In Plugins
|
$base_path = plugin_dir_url( __FILE__ ); // In Plugins
|
||||||
$version = \Core\Global_Functions::get_current_version_number(); // In Theme
|
// $base_path = get_template_directory_uri() . '/components/partials/<%= blockFilename %>/'; // In Theme
|
||||||
|
|
||||||
// $base_path = plugin_dir_url( __FILE__ ); // In Plugins
|
wp_register_style( 'block-<%= blockFilename %>', $base_path . 'templates/styles/<%= blockFilename %>.min.css', [ 'assets-style' ], self::VERSION );
|
||||||
$base_path = get_template_directory_uri() . '/components/partials/<%= blockFilename %>/';
|
wp_enqueue_style( 'block-<%= blockFilename %>' );
|
||||||
|
|
||||||
wp_register_style( '<%= blockFilename %>',
|
wp_register_script( 'block-<%= blockFilename %>', $base_path . 'templates/scripts/<%= blockFilename %>.min.js', [ 'assets-script' ], self::VERSION, true );
|
||||||
$base_path . 'templates/styles/<%= blockFilename %>.min.css',
|
wp_enqueue_script( 'block-<%= blockFilename %>' );
|
||||||
[ 'style-wp' ],
|
|
||||||
$version
|
|
||||||
);
|
|
||||||
wp_enqueue_style( '<%= blockFilename %>' );
|
|
||||||
|
|
||||||
wp_register_script( 'script-<%= blockFilename %>',
|
|
||||||
$base_path . 'templates/scripts/<%= blockFilename %>.min.js',
|
|
||||||
[ 'jquery', 'swiper' ],
|
|
||||||
$version,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
wp_enqueue_script( 'script-<%= blockFilename %>' );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render( $args = [] ): void {
|
public function get_content( $args = [] ): string {
|
||||||
$args = array_merge( [], Helpers\<%= blockClassModel %>_Defaults::default_args( $args ), $args);
|
$default_args = apply_filters( 'axeweb_blocks/<%= ownerFilename %>/<%= blockFilename %>::default_args', [] ); // Not really practical.
|
||||||
|
|
||||||
|
$args = apply_filters( 'axeweb_blocks/<%= ownerFilename %>/<%= blockFilename %>::prepare_args', array_merge( $default_args, $args ) );
|
||||||
|
|
||||||
$output = ( include( __DIR__ . '/templates/<%= blockFilename %>.template.php' ) )( $args, self::class );
|
$output = ( include( __DIR__ . '/templates/<%= blockFilename %>.template.php' ) )( $args, self::class );
|
||||||
|
|
||||||
echo apply_filters( 'the_content', wpautop( $output ) );
|
return apply_filters( 'axeweb_blocks/<%= ownerFilename %>/<%= blockFilename %>::content', $output );
|
||||||
}
|
}<% if (isElementor) { %>
|
||||||
|
|
||||||
<% if (isElementor) { %>function register_elementor_widget( $widgets_manager ): void {
|
function register_elementor_widget( $widgets_manager ): void {
|
||||||
require_once "helpers/<%= blockClassModel %>_Elementor_Widget.php";
|
require_once "helpers/<%= blockClassModel %>_Elementor_Widget.php";
|
||||||
$widgets_manager->register_widget_type( new Helpers\<%= blockClassModel %>_Elementor_Widget() );
|
$widgets_manager->register_widget_type( new Helpers\<%= blockClassModel %>_Elementor_Widget() );
|
||||||
}<% } %>
|
}
|
||||||
|
<% } %>
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ( new <%= blockClassModel %>_Component() ); // Initialization
|
<%= blockClassModel %>_Component::get_instance();
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace AXEWEB_Blocks\Blocks\<%= ownerClass %>\<%= blockClassModel %>;
|
namespace AXEWEB_Blocks\Blocks\<%= ownerClass %>\<%= blockClassModel %>;
|
||||||
|
|
||||||
class <%= blockClassModel %>_Component extends \Core\Component {
|
class <%= blockClassModel %>_Component extends \Core\Component {
|
||||||
|
const VERSION = '<%= version %>';
|
||||||
|
|
||||||
public function get_content( $args = [] ): string {
|
public function get_content( $args = [] ): string {
|
||||||
$default_args = apply_filters( 'axeweb_blocks/<%= ownerFilename %>/<%= blockFilename %>::default_args', [] ); // Not really practical.
|
$default_args = apply_filters( 'axeweb_blocks/<%= ownerFilename %>/<%= blockFilename %>::default_args', [] ); // Not really practical.
|
||||||
@@ -18,8 +19,8 @@ class <%= blockClassModel %>_Component extends \Core\Component {
|
|||||||
// $version = \Core\Global_Functions::get_current_version_number(); // In Theme
|
// $version = \Core\Global_Functions::get_current_version_number(); // In Theme
|
||||||
|
|
||||||
// $base_path = get_template_directory_uri() . '/components/partials/<%= blockFilename %>/';
|
// $base_path = get_template_directory_uri() . '/components/partials/<%= blockFilename %>/';
|
||||||
wp_enqueue_style( 'block-<%= blockFilename %>', plugins_url( 'templates/styles/<%= blockFilename %>.min.css', __FILE__ ), ['assets-style'], get_blocks_version() );<% if (include_script) { %>
|
wp_enqueue_style( 'block-<%= blockFilename %>', plugins_url( 'templates/styles/<%= blockFilename %>.min.css', __FILE__ ), ['assets-style'], self::VERSION );<% if (include_script) { %>
|
||||||
wp_enqueue_script( 'block-<%= blockFilename %>', plugins_url( 'templates/scripts/<%= blockFilename %>.min.js', __FILE__ ), ['assets-script'], get_blocks_version(), true );<% } %>
|
wp_enqueue_script( 'block-<%= blockFilename %>', plugins_url( 'templates/scripts/<%= blockFilename %>.min.js', __FILE__ ), ['assets-script'], self::VERSION, true );<% } %>
|
||||||
|
|
||||||
wp_enqueue_script( 'script-block-<%= blockFilename %>' );
|
wp_enqueue_script( 'script-block-<%= blockFilename %>' );
|
||||||
}<% } %>
|
}<% } %>
|
||||||
|
|||||||
@@ -9,7 +9,11 @@ import execPhp from "exec-php";
|
|||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = path.dirname(__filename);
|
const __dirname = path.dirname(__filename);
|
||||||
|
|
||||||
export async function buildWordPress(blockName, isBlock = false, isElementor = false) {
|
export async function buildWordPress(blockName, args = {}) {
|
||||||
|
const isBlock = !!args.block;
|
||||||
|
const isElementor = !!args.elementor;
|
||||||
|
const isComponentManager = !!args.componentManager;
|
||||||
|
|
||||||
const {modulesPath, projectPath} = getConfigs();
|
const {modulesPath, projectPath} = getConfigs();
|
||||||
|
|
||||||
const distPath = path.join(projectPath, 'exports', 'wordpress');
|
const distPath = path.join(projectPath, 'exports', 'wordpress');
|
||||||
@@ -38,6 +42,7 @@ export async function buildWordPress(blockName, isBlock = false, isElementor = f
|
|||||||
include_script: true,
|
include_script: true,
|
||||||
include_elementor_widget: isElementor,
|
include_elementor_widget: isElementor,
|
||||||
isElementor,
|
isElementor,
|
||||||
|
isComponentManager,
|
||||||
});
|
});
|
||||||
|
|
||||||
await copyFile(blockFilePath, path.join(distPath, data.blockFilename + '.block.json'));
|
await copyFile(blockFilePath, path.join(distPath, data.blockFilename + '.block.json'));
|
||||||
|
|||||||
Reference in New Issue
Block a user