PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
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 / extensions / divi_5_amelia / server / ModuleMetadata.php
ameliabooking / extensions / divi_5_amelia / server Last commit date
AmeliaBookingButtonRendererTrait.php 3 months ago AmeliaBookingModule.php 1 week ago AmeliaCatalogBookingModule.php 1 week ago AmeliaCatalogModule.php 1 week ago AmeliaCatalogShortcodeHelper.php 1 week ago AmeliaCustomerPanelModule.php 1 week ago AmeliaEmployeePanelModule.php 1 week ago AmeliaEventsCalendarModule.php 1 week ago AmeliaEventsListBookingButtonModule.php 1 week ago AmeliaEventsListModule.php 1 week ago AmeliaEventsModule.php 1 week ago AmeliaSearchModule.php 1 week ago AmeliaStepBookingButtonModule.php 1 week ago AmeliaStepBookingModule.php 1 week ago ModuleMetadata.php 2 months ago SharedShortcodeModule.php 2 months ago index.php 1 week 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