parent
be8d8589bf
commit
622f468a12
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/**
|
||||
* Register Favorite movie quote block
|
||||
*
|
||||
* @link http://example.com
|
||||
* @since 1.0.0
|
||||
*
|
||||
* @package Movies
|
||||
* @subpackage Movies/includes
|
||||
*/
|
||||
|
||||
/**
|
||||
* Register Favorite movie quote block.
|
||||
*
|
||||
* @package Movies
|
||||
* @subpackage Movies/includes
|
||||
* @author Your Name <email@example.com>
|
||||
*/
|
||||
class Favorite_Movie_Quote {
|
||||
public function __construct() {
|
||||
add_action( 'init', array( $this, 'register_block' ) );
|
||||
add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_assets' ) );
|
||||
add_action( 'enqueue_block_assets', array( $this, 'enqueue_assets' ) );
|
||||
}
|
||||
|
||||
public function register_block() {
|
||||
wp_register_script(
|
||||
'favorite-movie-quote-block',
|
||||
plugin_dir_url( __FILE__ ) . 'favorite-movie-quote-block.js',
|
||||
array( 'wp-blocks', 'wp-editor', 'wp-element' ),
|
||||
filemtime( plugin_dir_path( __FILE__ ) . 'favorite-movie-quote-block.js' )
|
||||
);
|
||||
|
||||
register_block_type( 'movies/favorite-movie-quote', array(
|
||||
'editor_script' => 'favorite-movie-quote-block',
|
||||
'render_callback' => array( $this, 'render_block' ),
|
||||
) );
|
||||
}
|
||||
|
||||
public function enqueue_assets() {
|
||||
wp_enqueue_script(
|
||||
'favorite-movie-quote-block',
|
||||
plugin_dir_url( __FILE__ ) . 'favorite-movie-quote-block.js',
|
||||
array( 'wp-blocks', 'wp-editor', 'wp-element' ),
|
||||
filemtime( plugin_dir_path( __FILE__ ) . 'favorite-movie-quote-block.js' )
|
||||
);
|
||||
}
|
||||
|
||||
public function render_block( $attributes ) {
|
||||
$quote = isset( $attributes['content'] ) ? $attributes['content'] : '';
|
||||
return '<blockquote>' . $quote . '</blockquote>';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
new Favorite_Movie_Quote();
|
@ -0,0 +1,40 @@
|
||||
wp.blocks.registerBlockType( 'movies/favorite-movie-quote', {
|
||||
title: 'Favorite movie quote',
|
||||
icon: 'format-quote',
|
||||
category: 'common',
|
||||
attributes: {
|
||||
content: {
|
||||
type: 'string',
|
||||
selector: 'blockquote',
|
||||
},
|
||||
},
|
||||
edit: function( props ) {
|
||||
let attributes = props.attributes;
|
||||
|
||||
console.log(props.attributes);
|
||||
|
||||
function onChangeContent( value ) {
|
||||
props.setAttributes( { content: value } );
|
||||
}
|
||||
|
||||
return wp.element.createElement(
|
||||
'blockquote',
|
||||
null,
|
||||
wp.element.createElement(
|
||||
wp.components.TextControl,
|
||||
{
|
||||
value: attributes.content,
|
||||
onChange: onChangeContent,
|
||||
placeholder: 'Enter favorite movie quote',
|
||||
}
|
||||
)
|
||||
);
|
||||
},
|
||||
save: function( props ) {
|
||||
return wp.element.createElement(
|
||||
'blockquote',
|
||||
null,
|
||||
props.attributes.content,
|
||||
);
|
||||
},
|
||||
});
|
Loading…
Reference in new issue