PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.6
Booking for Appointments and Events Calendar – Amelia v2.4.6
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 2 months ago AmeliaBookingModule.php 7 months ago AmeliaCatalogBookingModule.php 2 months ago AmeliaCatalogModule.php 7 months ago AmeliaCustomerPanelModule.php 7 months ago AmeliaEmployeePanelModule.php 7 months ago AmeliaEventsCalendarModule.php 2 months ago AmeliaEventsListBookingButtonModule.php 2 months ago AmeliaEventsListModule.php 2 months ago AmeliaEventsModule.php 7 months ago AmeliaSearchModule.php 7 months ago AmeliaStepBookingButtonModule.php 2 months ago AmeliaStepBookingModule.php 2 months ago ModuleMetadata.php 2 months ago SharedShortcodeModule.php 2 months ago index.php 2 months 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