diff options
Diffstat (limited to 'plugins/jetpack/extensions/blocks/rating-star/rating-star.php')
-rw-r--r-- | plugins/jetpack/extensions/blocks/rating-star/rating-star.php | 99 |
1 files changed, 59 insertions, 40 deletions
diff --git a/plugins/jetpack/extensions/blocks/rating-star/rating-star.php b/plugins/jetpack/extensions/blocks/rating-star/rating-star.php index 8b351e9b..3a5597dd 100644 --- a/plugins/jetpack/extensions/blocks/rating-star/rating-star.php +++ b/plugins/jetpack/extensions/blocks/rating-star/rating-star.php @@ -4,63 +4,82 @@ * * @since 8.0.0 * - * @package Jetpack + * @package automattic/jetpack */ +namespace Automattic\Jetpack\Extensions\Rating_Star; + +use Automattic\Jetpack\Blocks; +use Jetpack_Gutenberg; + +const FEATURE_NAME = 'rating-star'; +const BLOCK_NAME = 'jetpack/' . FEATURE_NAME; + // Load generic function definitions. require_once __DIR__ . '/rating-meta.php'; /** + * Registers the block for use in Gutenberg + * This is done via an action so that we can disable + * registration if we need to. + */ +function register_block() { + Blocks::jetpack_register_block( + BLOCK_NAME, + array( + 'render_callback' => __NAMESPACE__ . '\render_block', + 'attributes' => array( + 'rating' => array( + 'type' => 'number', + 'default' => 1, + ), + 'maxRating' => array( + 'type' => 'number', + 'default' => 5, + ), + 'color' => array( + 'type' => 'string', + ), + 'ratingStyle' => array( + 'type' => 'string', + 'default' => 'star', + ), + 'className' => array( + 'type' => 'string', + ), + 'align' => array( + 'type' => 'string', + 'default' => 'left', + ), + ), + ) + ); +} +add_action( 'init', __NAMESPACE__ . '\register_block' ); + +/** * Dynamic rendering of the block. * * @param array $attributes Array containing the block attributes. * * @return string */ -function jetpack_rating_star_render_block( $attributes ) { +function render_block( $attributes ) { // Tell Jetpack to load the assets registered via jetpack_register_block. - Jetpack_Gutenberg::load_assets_as_required( 'rating-star' ); + Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME ); return jetpack_rating_meta_render_block( $attributes ); } /** - * The following filter is added only to support the old 0.6.2 version of the AMP plugin. - * This entire section can be removed once we're on version a newer version. - * Confirmed that version 1.4.1 (or presumably newer) does not need this filter. + * Older versions of AMP (0.6.2) are unable to render the markup, so we hide it + * Newer versions of AMP (1.4.1+) seem OK, but need the screen-reader text hidden */ -function jetpack_rating_star_amp_add_inline_css() { - echo '.wp-block-jetpack-rating-star span { display: none; }'; +function amp_add_inline_css() { + if ( defined( 'AMP__VERSION' ) && version_compare( AMP__VERSION, '1.4.1', '>=' ) ) { + echo '.wp-block-jetpack-rating-star span.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal; }'; + } else { + echo '.wp-block-jetpack-rating-star span:not([aria-hidden="true"]) { display: none; }'; + } } -add_action( 'amp_post_template_css', 'jetpack_rating_star_amp_add_inline_css', 11 ); - -jetpack_register_block( - 'jetpack/rating-star', - array( - 'render_callback' => 'jetpack_rating_star_render_block', - 'attributes' => array( - 'rating' => array( - 'type' => 'number', - 'default' => 1, - ), - 'maxRating' => array( - 'type' => 'number', - 'default' => 5, - ), - 'color' => array( - 'type' => 'string', - ), - 'ratingStyle' => array( - 'type' => 'string', - 'default' => 'star', - ), - 'className' => array( - 'type' => 'string', - ), - 'align' => array( - 'type' => 'string', - 'default' => 'left', - ), - ), - ) -); +add_action( 'amp_post_template_css', __NAMESPACE__ . '\amp_add_inline_css', 11 ); |