Browse Source

Added "WordPress + Component Manager" adapter.

pull/8/head
Roman Axelrod 3 years ago
parent
commit
b882c9a1c3
  1. 13
      build.js
  2. 4
      package.json
  3. 53
      platforms/wordpress/templates/Template_Basic_Component.php
  4. 7
      platforms/wordpress/templates/Template_Component.php
  5. 7
      platforms/wordpress/wordpress-adapter.js

13
build.js

@ -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);
} }

4
package.json

@ -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"
}, },

53
platforms/wordpress/templates/Template_Basic_Component.php

@ -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();

7
platforms/wordpress/templates/Template_Component.php

@ -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 %>' );
}<% } %> }<% } %>
@ -31,7 +32,7 @@ class <%= blockClassModel %>_Component extends \Core\Component {
$widgets_manager->register_widget_type( new Helpers\<%= blockClassModel %>_Elementor_Widget() ); $widgets_manager->register_widget_type( new Helpers\<%= blockClassModel %>_Elementor_Widget() );
} }
<% } %><% if (include_acf_block) { %> function register_acf_block() { <% } %><% if (include_acf_block) { %>function register_acf_block() {
$this->register_block( __DIR__ . "/<%= blockFilename %>.block.json", [ $this->register_block( __DIR__ . "/<%= blockFilename %>.block.json", [
'style_assets' => [ 'style_assets' => [
[ [

7
platforms/wordpress/wordpress-adapter.js

@ -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'));

Loading…
Cancel
Save