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 1 month ago AmeliaCatalogModule.php 7 months ago AmeliaCustomerPanelModule.php 7 months ago AmeliaEmployeePanelModule.php 7 months ago AmeliaEventsCalendarModule.php 1 month ago AmeliaEventsListBookingButtonModule.php 2 months ago AmeliaEventsListModule.php 1 month ago AmeliaEventsModule.php 7 months ago AmeliaSearchModule.php 7 months ago AmeliaStepBookingButtonModule.php 2 months ago AmeliaStepBookingModule.php 1 month ago ModuleMetadata.php 1 month ago SharedShortcodeModule.php 1 month ago index.php 1 month 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