PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.8
Booking for Appointments and Events Calendar – Amelia v2.4.8
2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 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 1 week ago AmeliaCatalogBookingGutenbergBlock.php 1 week ago AmeliaCatalogGutenbergBlock.php 1 week ago AmeliaEventsCalendarBookingGutenbergBlock.php 1 week ago AmeliaEventsGutenbergBlock.php 1 week ago AmeliaEventsListBookingButtonGutenbergBlock.php 1 week ago AmeliaEventsListBookingGutenbergBlock.php 1 week ago AmeliaStepBookingButtonGutenbergBlock.php 1 week ago AmeliaStepBookingGutenbergBlock.php 1 week ago GutenbergBlock.php 1 week ago
AmeliaEventsListBookingGutenbergBlock.php
90 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\Licence;
11
12 /**
13 * Class AmeliaEventsListBookingGutenbergBlock
14 *
15 * @package AmeliaBooking\Infrastructure\WP\GutenbergBlock
16 */
17 class AmeliaEventsListBookingGutenbergBlock extends GutenbergBlock
18 {
19 public static function getBlockAttributes(): array
20 {
21 return [
22 'short_code' => ['type' => 'string', 'default' => '[ameliaeventslistbooking]'],
23 'trigger' => ['type' => 'string', 'default' => ''],
24 'trigger_type' => ['type' => 'string', 'default' => 'id'],
25 'in_dialog' => ['type' => 'boolean', 'default' => false],
26 'event' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
27 'recurring' => ['type' => 'boolean', 'default' => false],
28 'tag' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
29 'location' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
30 'eventOptions' => ['type' => 'string', 'default' => ''],
31 'parametars' => ['type' => 'boolean', 'default' => false],
32 ];
33 }
34
35 public static function renderBlock(array $attributes): string
36 {
37 $shortCode = $attributes['short_code'] ?? '[ameliaeventslistbooking]';
38
39 if (!self::isAllowedShortCode($shortCode, self::getAllowedShortcodeTags('eventslistbooking', 'ameliaeventslistbooking'))) {
40 return '';
41 }
42
43 return do_shortcode($shortCode);
44 }
45
46 public static function registerBlockForRendering()
47 {
48 register_block_type(
49 'amelia/events-list-booking-gutenberg-block',
50 array(
51 'attributes' => self::getBlockAttributes(),
52 'render_callback' => array(__CLASS__, 'renderBlock'),
53 )
54 );
55 }
56
57 /**
58 * Register Amelia Events block for Gutenberg
59 */
60 public static function registerBlockType()
61 {
62 // Enqueue shared icon and styles
63 parent::enqueueSharedIcon();
64 parent::enqueueSharedStyles();
65
66 wp_enqueue_script(
67 'amelia_events_list_booking_gutenberg_block',
68 AMELIA_URL . 'public/js/gutenberg/amelia-events-list-booking/amelia-events-list-booking-gutenberg.js',
69 array('wp-blocks', 'wp-components', 'wp-element', 'wp-block-editor', 'amelia_block_icon')
70 );
71
72 wp_localize_script(
73 'amelia_events_list_booking_gutenberg_block',
74 'wpAmeliaLabels',
75 array_merge(
76 self::getBlockStrings(),
77 self::getEntitiesData(),
78 array('isLite' => !Licence\Licence::isPremium())
79 )
80 );
81
82 self::localizePreviewImages(
83 'amelia_events_list_booking_gutenberg_block',
84 'wpAmeliaEventsListBookingPreview',
85 'elf-preview.svg',
86 'elf-mobile-preview.svg'
87 );
88 }
89 }
90