You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
3.2 KiB
68 lines
3.2 KiB
<?php
|
|
|
|
namespace AXEWEB_Blocks\Blocks\<%= ownerClass %>\<%= blockClassModel %>;
|
|
|
|
class <%= blockClassModel %>_Component extends \Core\Component {
|
|
const VERSION = '<%= version %>';
|
|
public $hook_prefix = 'axeweb_blocks/<%= ownerFilename %>/<%= blockFilename %>';
|
|
|
|
public function get_content( $args = [] ): string {
|
|
$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 );
|
|
|
|
return apply_filters( 'axeweb_blocks/<%= ownerFilename %>/<%= blockFilename %>::content', $output );
|
|
}
|
|
<% if (!include_acf_block && !include_native_gutenberg_block) { %>function register_assets(): void {
|
|
$version = get_plugin_data( __DIR__ . "/../../scytale-custom-blocks.php" )['Version']; // In Plugins
|
|
// $version = \Core\Global_Functions::get_current_version_number(); // In Theme
|
|
|
|
// $base_path = get_template_directory_uri() . '/components/partials/<%= blockFilename %>/';
|
|
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'], self::VERSION, true );<% } %>
|
|
|
|
wp_enqueue_script( 'script-block-<%= blockFilename %>' );
|
|
}<% } %>
|
|
<% if (include_elementor_widget) { %>function register_custom_logic(): void {
|
|
add_action( 'elementor/widgets/widgets_registered', [ $this, 'register_elementor_widget' ] );
|
|
}
|
|
|
|
<% } %><% if (include_elementor_widget) { %> function register_elementor_widget( $widgets_manager ) {
|
|
$widgets_manager->register_widget_type( new Helpers\<%= blockClassModel %>_Elementor_Widget() );
|
|
}
|
|
|
|
<% } %><% if (include_acf_block) { %>function register_acf_block() {
|
|
$this->register_block( __DIR__ . "/<%= blockFilename %>.block.json", [
|
|
'style_assets' => [
|
|
[
|
|
'name' => '<%= blockFilename %>',
|
|
'url' => plugins_url( 'templates/styles/<%= blockFilename %>.min.css', __FILE__ ),
|
|
]
|
|
],
|
|
'script_assets' => [
|
|
[
|
|
'name' => '<%= blockFilename %>',
|
|
'url' => plugins_url( 'templates/scripts/<%= blockFilename %>.min.js', __FILE__ ),
|
|
]
|
|
]
|
|
] );
|
|
}
|
|
<% } %><% if (include_native_gutenberg_block) { %> function register_native_gutenberg_block() {
|
|
register_block_type( __DIR__ . '/templates/gutenberg-block/block.json' );<% if (include_script) { %>
|
|
|
|
add_action( 'wp_enqueue_scripts', function () {
|
|
$asset_file_front = include( plugin_dir_path( __FILE__ ) . '/templates/gutenberg-block/build/front.asset.php' );
|
|
wp_enqueue_script(
|
|
'gutenberg-<%= blockFilename %>-scripts-front',
|
|
plugins_url( 'templates/gutenberg-block/build/front.js', __FILE__ ),
|
|
$asset_file_front['dependencies'],
|
|
$asset_file_front['version'],
|
|
true
|
|
);
|
|
} );<% } %>
|
|
}<% } %>
|
|
}
|
|
|
|
<%= blockClassModel %>_Component::get_instance();
|
|
|