PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.8
Booking for Appointments and Events Calendar – Amelia v2.4.8
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 / extensions / divi_5_amelia / server / ModuleMetadata.php
ameliabooking / extensions / divi_5_amelia / server Last commit date
AmeliaBookingButtonRendererTrait.php 3 months ago AmeliaBookingModule.php 2 days ago AmeliaCatalogBookingModule.php 2 days ago AmeliaCatalogModule.php 2 days ago AmeliaCatalogShortcodeHelper.php 2 days ago AmeliaCustomerPanelModule.php 2 days ago AmeliaEmployeePanelModule.php 2 days ago AmeliaEventsCalendarModule.php 2 days ago AmeliaEventsListBookingButtonModule.php 2 days ago AmeliaEventsListModule.php 2 days ago AmeliaEventsModule.php 2 days ago AmeliaSearchModule.php 2 days ago AmeliaStepBookingButtonModule.php 2 days ago AmeliaStepBookingModule.php 2 days ago ModuleMetadata.php 2 months ago SharedShortcodeModule.php 2 months ago index.php 2 days ago
ModuleMetadata.php
50 lines
1 <?php
2
3 namespace Divi5Amelia;
4
5 /**
6 * Helpers for merging module.json with shared-module.json for Divi 5 registration.
7 */
8 class ModuleMetadata
9 {
10 /**
11 * Merge shared attributes into module registration args.
12 *
13 * @param string $moduleFolder Absolute path to the module directory containing module.json.
14 * @param array $args Extra arguments passed to ModuleRegistration::register_module().
15 *
16 * @return array Registration args with merged attributes.
17 */
18 public static function getRegistrationArgs(string $moduleFolder, array $args = []): array
19 {
20 $moduleFolder = untrailingslashit($moduleFolder);
21 $moduleFile = $moduleFolder . '/module.json';
22 $sharedFile = dirname($moduleFolder, 2) . '/shared-module.json';
23
24 if (! is_readable($moduleFile)) {
25 return $args;
26 }
27
28 $moduleMetadata = json_decode(file_get_contents($moduleFile), true);
29
30 if (! is_array($moduleMetadata)) {
31 return $args;
32 }
33
34 $sharedMetadata = [];
35
36 if (is_readable($sharedFile)) {
37 $decoded = json_decode(file_get_contents($sharedFile), true);
38 if (is_array($decoded)) {
39 $sharedMetadata = $decoded;
40 }
41 }
42
43 $moduleAttributes = $moduleMetadata['attributes'] ?? [];
44 $sharedAttributes = $sharedMetadata['attributes'] ?? [];
45 $mergedAttributes = array_merge($sharedAttributes, $moduleAttributes);
46
47 return array_merge($args, ['attributes' => $mergedAttributes]);
48 }
49 }
50