summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/extensions/blocks/rating-star/rating-star.php')
-rw-r--r--plugins/jetpack/extensions/blocks/rating-star/rating-star.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/plugins/jetpack/extensions/blocks/rating-star/rating-star.php b/plugins/jetpack/extensions/blocks/rating-star/rating-star.php
new file mode 100644
index 00000000..8b351e9b
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/rating-star/rating-star.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Star Rating Block.
+ *
+ * @since 8.0.0
+ *
+ * @package Jetpack
+ */
+
+// Load generic function definitions.
+require_once __DIR__ . '/rating-meta.php';
+
+/**
+ * Dynamic rendering of the block.
+ *
+ * @param array $attributes Array containing the block attributes.
+ *
+ * @return string
+ */
+function jetpack_rating_star_render_block( $attributes ) {
+ // Tell Jetpack to load the assets registered via jetpack_register_block.
+ Jetpack_Gutenberg::load_assets_as_required( 'rating-star' );
+
+ 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.
+ */
+function jetpack_rating_star_amp_add_inline_css() {
+ echo '.wp-block-jetpack-rating-star span { 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',
+ ),
+ ),
+ )
+);