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.0 KiB
68 lines
3.0 KiB
<?php
|
|
|
|
namespace AXEWEB_Blocks\Blocks\<%= ownerClass %>\<%= blockClassModel %>;
|
|
|
|
class <%= blockClassModel %>_Component extends \Core\Component {
|
|
|
|
public function get_content( $args = [] ): string {
|
|
$args = array_merge( Helpers\<%= blockClassModel %>_Defaults::default_args(), $args );
|
|
$args = Helpers\<%= blockClassModel %>_API::prepare_args( $args );
|
|
|
|
<% if (templateFormat === 'hbs') { %>return $this->get_component_template( __DIR__ . '/templates/<%= blockFilename %>.template.hbs', $args );<% } %>
|
|
<% if (templateFormat === 'php') { %>
|
|
$output = ( include( __DIR__ . '/templates/<%= blockFilename %>.template.php' ) )( array_merge( [], $args ), self::class );
|
|
echo apply_filters( 'the_content', wpautop( $output ) );
|
|
<% } %>
|
|
}
|
|
|
|
<% if (!include_acf_block && !include_native_gutenberg_block) { %>
|
|
public function register_assets() {
|
|
$this->add_style( __DIR__ . '/templates/styles/<%= blockFilename %>.min.css' );
|
|
<% if (include_script) { %>$this->add_script( __DIR__ . '/templates/scripts/<%= blockFilename %>.js' );<% } %>
|
|
}
|
|
|
|
<% } %><% 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", [
|
|
'enqueue_assets' => function () {
|
|
wp_enqueue_style( '<%= blockFilename %>', \Core\Global_Functions::get_file_url( __DIR__ . '/templates/styles/<%= blockFilename %>.min.css', true ), [], get_blocks_version() );<% if (include_script) { %>
|
|
wp_enqueue_script( '<%= blockFilename %>', \Core\Global_Functions::get_file_url( __DIR__ . '/templates/scripts/<%= blockFilename %>.js', true ), ['assets-script'], get_blocks_version() );<% } %>
|
|
},
|
|
'default' => Helpers\<%= blockClassModel %>_Defaults::default_args(),
|
|
'supports' => [
|
|
//'jsx' => true,
|
|
'color' => [
|
|
'background' => true,
|
|
'text' => true,
|
|
],
|
|
'spacing' => [
|
|
'margin' => [ 'top', 'bottom' ],
|
|
'padding' => [ 'top', 'bottom' ]
|
|
],
|
|
]
|
|
] );
|
|
}
|
|
|
|
<% } %><% 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
|
|
);
|
|
} );<% } %>
|
|
}<% } %>
|
|
|
|
}
|
|
|