PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.4
Booking for Appointments and Events Calendar – Amelia v2.4.4
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Infrastructure / WP / GutenbergBlock / AmeliaEventsListBookingGutenbergBlock.php
ameliabooking / src / Infrastructure / WP / GutenbergBlock Last commit date
AmeliaBookingGutenbergBlock.php 3 months ago AmeliaCatalogBookingGutenbergBlock.php 3 months ago AmeliaCatalogGutenbergBlock.php 3 months ago AmeliaEventsCalendarBookingGutenbergBlock.php 3 months ago AmeliaEventsGutenbergBlock.php 3 months ago AmeliaEventsListBookingButtonGutenbergBlock.php 1 month ago AmeliaEventsListBookingGutenbergBlock.php 3 months ago AmeliaStepBookingButtonGutenbergBlock.php 1 month ago AmeliaStepBookingGutenbergBlock.php 3 weeks ago GutenbergBlock.php 3 weeks ago
AmeliaEventsListBookingGutenbergBlock.php
84 lines
1 <?php
2
3 /**
4 * @copyright © Melograno Ventures. All rights reserved.
5 * @licence See LICENCE.md for license details.
6 */
7
8 namespace AmeliaBooking\Infrastructure\WP\GutenbergBlock;
9
10 use AmeliaBooking\Infrastructure\WP\Translations\BackendStrings;
11 use AmeliaBooking\Infrastructure\Licence;
12
13 /**
14 * Class AmeliaEventsListBookingGutenbergBlock
15 *
16 * @package AmeliaBooking\Infrastructure\WP\GutenbergBlock
17 */
18 class AmeliaEventsListBookingGutenbergBlock extends GutenbergBlock
19 {
20 public static function getBlockAttributes(): array
21 {
22 return [
23 'short_code' => ['type' => 'string', 'default' => '[ameliaeventslistbooking]'],
24 'trigger' => ['type' => 'string', 'default' => ''],
25 'trigger_type' => ['type' => 'string', 'default' => 'id'],
26 'in_dialog' => ['type' => 'boolean', 'default' => false],
27 'event' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
28 'recurring' => ['type' => 'boolean', 'default' => false],
29 'tag' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
30 'location' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
31 'eventOptions' => ['type' => 'string', 'default' => ''],
32 'parametars' => ['type' => 'boolean', 'default' => false],
33 ];
34 }
35
36 public static function renderBlock(array $attributes): string
37 {
38 $shortCode = $attributes['short_code'] ?? '[ameliaeventslistbooking]';
39
40 if (strpos($shortCode, '[ameliaeventslistbooking') !== 0) {
41 return '';
42 }
43
44 return do_shortcode($shortCode);
45 }
46
47 public static function registerBlockForRendering()
48 {
49 register_block_type(
50 'amelia/events-list-booking-gutenberg-block',
51 array(
52 'attributes' => self::getBlockAttributes(),
53 'render_callback' => array(__CLASS__, 'renderBlock'),
54 )
55 );
56 }
57
58 /**
59 * Register Amelia Events block for Gutenberg
60 */
61 public static function registerBlockType()
62 {
63 // Enqueue shared icon and styles
64 parent::enqueueSharedIcon();
65 parent::enqueueSharedStyles();
66
67 wp_enqueue_script(
68 'amelia_events_list_booking_gutenberg_block',
69 AMELIA_URL . 'public/js/gutenberg/amelia-events-list-booking/amelia-events-list-booking-gutenberg.js',
70 array('wp-blocks', 'wp-components', 'wp-element', 'wp-block-editor', 'amelia_block_icon')
71 );
72
73 wp_localize_script(
74 'amelia_events_list_booking_gutenberg_block',
75 'wpAmeliaLabels',
76 array_merge(
77 BackendStrings::getAllStrings(),
78 self::getEntitiesData(),
79 array('isLite' => !Licence\Licence::isPremium())
80 )
81 );
82 }
83 }
84