PluginProbe
Booktics – Appointment Booking Calendar for Service Businesses / 1.0.28
Booktics – Appointment Booking Calendar for Service Businesses v1.0.28
1.0.29 1.0.28 1.0.27 1.0.26 1.0.25 1.0.24 1.0.23 1.0.22 1.0.21 1.0.20 1.0.19 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.2 1.0.3 All 31 releases
← All changes | vendor/arraytics/tools-sdk/src/Extension.php +21 -3 1.0.2 → 1.0.28 View file →
@@ -49,8 +49,16 @@
49 49 foreach ($this->extensions as $key => $extension) {
50 50 $status = isset($settings[$key]) ? $settings[$key] : $extension['status'];
51 51 $extension['status'] = $status;
52 52
53 + $parent_key = isset($extension['parent']) ? $extension['parent'] : '';
54 +
55 + if ( ! empty( $parent_key ) ) {
56 + $parent_status = isset($settings[$parent_key]) ? $settings[$parent_key] : $this->extensions[$parent_key]['status'];
57 +
58 + $extension['status'] = $status === 'on' && $parent_status === 'on' ? 'on' : 'off';
59 + }
60 +
53 61 $slug = isset($extension['slug']) ? $extension['slug'] : '';
54 62 $deps = isset($extension['deps']) ? $extension['deps'] : [];
55 63
56 64 if ($extension['type'] === 'module' && !empty($deps)) {
@@ -64,13 +72,13 @@
64 72 $extension['status'] = 'activate';
65 73 }
66 74 } elseif (in_array($extension['type'], ['plugin', 'addon'])) {
67 75 if (!PluginManager::is_installed($slug)) {
68 - $extension['status'] = 'upgrade';
76 + $extension['status'] = 'install';
69 77 } elseif (!PluginManager::is_activated($slug)) {
70 - $extension['status'] = 'install';
78 + $extension['status'] = 'activate';
71 79 } else {
72 - $extension['status'] = 'activate';
80 + $extension['status'] = 'deactivate';
73 81 }
74 82 } elseif ($extension['type'] === 'arraytics-plugin') {
75 83 if (!PluginManager::is_activated($slug)) {
76 84 $extension['status'] = 'install';
@@ -121,8 +129,18 @@
121 129 * @return array|null
122 130 */
123 131 public function find($key) {
124 132 return isset($this->extensions[$key]) ? $this->extensions[$key] : null;
133 + }
134 +
135 + /**
136 + * Find the parent of a given extension.
137 + *
138 + * @param string $key The extension key.
139 + * @return array|null
140 + */
141 + public function find_parent($key) {
142 + return isset($this->extensions[$key]['parent']) ? $this->extensions[$key]['parent'] : null;
125 143 }
126 144
127 145 /**
128 146 * Get the current option name used for storing extension settings.