PluginProbe
MainWP Dashboard: Self-hosted WordPress Management for Agencies / 6.2.2
MainWP Dashboard: Self-hosted WordPress Management for Agencies v6.2.2
6.2.3 6.2.2 6.2.1 6.2 6.1.8 6.1.7 6.1.6 6.1.5 6.1.4 6.1.3 6.1.2 6.1.1 6.1 6.0.12 6.0.11 4.6.0.1 5.0 5.0.1 5.0.2 5.0.3 5.0.3.1 5.0.3.2 5.1 5.1.1 5.2 All 156 releases
← All changes | pages/page-mainwp-extensions-groups.php +930 -1004 5.0 → 6.2.2 View file →
@@ -6,1118 +6,1044 @@
6 6 */
7 7
8 8 namespace MainWP\Dashboard;
9 9
10 +// Exit if accessed directly.
11 +if ( ! defined( 'ABSPATH' ) ) {
12 + exit;
13 +}
14 +
10 15 /**
11 16 * Class MainWP_Extensions_Groups
12 17 */
13 -class MainWP_Extensions_Groups {
18 +class MainWP_Extensions_Groups { // phpcs:ignore Generic.Classes.OpeningBraceSameLine.ContentAfterBrace -- NOSONAR.
14 19
15 - /**
16 - * Method get_class_name()
17 - *
18 - * Get Class Name.
19 - *
20 - * @return object Class name.
21 - */
22 - public static function get_class_name() {
23 - return __CLASS__;
24 - }
20 + /**
21 + * Method get_class_name()
22 + *
23 + * Get Class Name.
24 + *
25 + * @return object Class name.
26 + */
27 + public static function get_class_name() {
28 + return __CLASS__;
29 + }
25 30
26 - /**
27 - * Instantiate action hooks.
28 - */
29 - public static function init() {
30 - add_action( 'mainwp_admin_menu', array( self::get_class_name(), 'init_extensions_menu' ), 10, 2 );
31 - }
31 + /**
32 + * Instantiate action hooks.
33 + */
34 + public static function init() {
35 + add_action( 'mainwp_admin_menu', array( static::get_class_name(), 'init_extensions_menu' ), 10, 2 );
36 + }
32 37
33 - /**
34 - * Method init_extensions_menu()
35 - *
36 - * Initiate left Extensions menus.
37 - */
38 - public static function init_extensions_menu() {
38 + /**
39 + * Method init_extensions_menu()
40 + *
41 + * Initiate left Extensions menus.
42 + */
43 + public static function init_extensions_menu() { //phpcs:ignore -- NOSONAR - complex.
39 44
40 - add_submenu_page(
41 - 'mainwp_tab',
42 - esc_html__( 'Backups', 'mainwp' ),
43 - '<div class="mainwp-hidden" id="mainwp-extensions-backups">' . esc_html__( 'Backups', 'mainwp' ) . '</div>',
44 - 'read',
45 - 'Extensions-Mainwp-Backups',
46 - array(
47 - self::class,
48 - 'render_extensions_groups',
49 - )
50 - );
45 + // @NO_SONAR_START@ - duplicated issue.
46 + $end_div = '</div>';
51 47
52 - add_submenu_page(
53 - 'mainwp_tab',
54 - esc_html__( 'Security', 'mainwp' ),
55 - '<div class="mainwp-hidden" id="mainwp-extensions-security">' . esc_html__( 'Security', 'mainwp' ) . '</div>',
56 - 'read',
57 - 'Extensions-Mainwp-Security',
58 - array(
59 - self::class,
60 - 'render_extensions_groups',
61 - )
62 - );
48 + $submenu_pages = array(
49 + array(
50 + 'parent_slug' => 'mainwp_tab',
51 + 'page_title' => esc_html__( 'Content Operations', 'mainwp' ),
52 + 'menu_title' => '<div class="mainwp-hidden" id="mainwp-extensions-content-operations">' . esc_html__( 'Content Operations', 'mainwp' ) . $end_div,
53 + 'capability' => 'read',
54 + 'menu_slug' => 'Extensions-Mainwp-Content-Operations',
55 + 'callback' => array(
56 + static::class,
57 + 'render_extensions_groups',
58 + ),
59 + ),
60 + array(
61 + 'parent_slug' => 'mainwp_tab',
62 + 'page_title' => esc_html__( 'Backups', 'mainwp' ),
63 + 'menu_title' => '<div class="mainwp-hidden" id="mainwp-extensions-backups">' . esc_html__( 'Backups', 'mainwp' ) . $end_div,
64 + 'capability' => 'read',
65 + 'menu_slug' => 'Extensions-Mainwp-Backups',
66 + 'callback' => array(
67 + static::class,
68 + 'render_extensions_groups',
69 + ),
70 + ),
71 + array(
72 + 'parent_slug' => 'mainwp_tab',
73 + 'page_title' => esc_html__( 'Security', 'mainwp' ),
74 + 'menu_title' => '<div class="mainwp-hidden" id="mainwp-extensions-security">' . esc_html__( 'Security', 'mainwp' ) . $end_div,
75 + 'capability' => 'read',
76 + 'menu_slug' => 'Extensions-Mainwp-Security',
77 + 'callback' => array(
78 + static::class,
79 + 'render_extensions_groups',
80 + ),
81 + ),
82 + array(
83 + 'parent_slug' => 'mainwp_tab',
84 + 'page_title' => esc_html__( 'Monitoring', 'mainwp' ),
85 + 'menu_title' => '<div class="mainwp-hidden" id="mainwp-extensions-monitoring">' . esc_html__( 'Monitoring', 'mainwp' ) . $end_div,
86 + 'capability' => 'read',
87 + 'menu_slug' => 'Extensions-Mainwp-Monitoring',
88 + 'callback' => array(
89 + static::class,
90 + 'render_extensions_groups',
91 + ),
92 + ),
93 + array(
94 + 'parent_slug' => 'mainwp_tab',
95 + 'page_title' => esc_html__( 'Analytics', 'mainwp' ),
96 + 'menu_title' => '<div class="mainwp-hidden" id="mainwp-extensions-analytics">' . esc_html__( 'Analytics', 'mainwp' ) . $end_div,
97 + 'capability' => 'read',
98 + 'menu_slug' => 'Extensions-Mainwp-Analytics',
99 + 'callback' => array(
100 + static::class,
101 + 'render_extensions_groups',
102 + ),
103 + ),
104 + array(
105 + 'parent_slug' => 'mainwp_tab',
106 + 'page_title' => esc_html__( 'Performance', 'mainwp' ),
107 + 'menu_title' => '<div class="mainwp-hidden" id="mainwp-extensions-performance">' . esc_html__( 'Performance', 'mainwp' ) . $end_div,
108 + 'capability' => 'read',
109 + 'menu_slug' => 'Extensions-Mainwp-Performance',
110 + 'callback' => array(
111 + static::class,
112 + 'render_extensions_groups',
113 + ),
114 + ),
115 + array(
116 + 'parent_slug' => 'mainwp_tab',
117 + 'page_title' => esc_html__( 'Agency', 'mainwp' ),
118 + 'menu_title' => '<div class="mainwp-hidden" id="mainwp-extensions-agency">' . esc_html__( 'Agency', 'mainwp' ) . $end_div,
119 + 'capability' => 'read',
120 + 'menu_slug' => 'Extensions-Mainwp-Agency',
121 + 'callback' => array(
122 + static::class,
123 + 'render_extensions_groups',
124 + ),
125 + ),
126 + array(
127 + 'parent_slug' => 'mainwp_tab',
128 + 'page_title' => esc_html__( 'Administrative', 'mainwp' ),
129 + 'menu_title' => '<div class="mainwp-hidden" id="mainwp-extensions-administrative">' . esc_html__( 'Administrative', 'mainwp' ) . $end_div,
130 + 'capability' => 'read',
131 + 'menu_slug' => 'Extensions-Mainwp-Administrative',
132 + 'callback' => array(
133 + static::class,
134 + 'render_extensions_groups',
135 + ),
136 + ),
137 + );
63 138
64 - add_submenu_page(
65 - 'mainwp_tab',
66 - esc_html__( 'Monitoring', 'mainwp' ),
67 - '<div class="mainwp-hidden" id="mainwp-extensions-monitoring">' . esc_html__( 'Monitoring', 'mainwp' ) . '</div>',
68 - 'read',
69 - 'Extensions-Mainwp-Monitoring',
70 - array(
71 - self::class,
72 - 'render_extensions_groups',
73 - )
74 - );
139 + foreach ( $submenu_pages as $item ) {
140 + add_submenu_page(
141 + $item['parent_slug'],
142 + $item['page_title'],
143 + $item['menu_title'],
144 + $item['capability'],
145 + $item['menu_slug'],
146 + $item['callback'],
147 + );
148 + }
75 149
76 - add_submenu_page(
77 - 'mainwp_tab',
78 - esc_html__( 'Analytics', 'mainwp' ),
79 - '<div class="mainwp-hidden" id="mainwp-extensions-analytics">' . esc_html__( 'Analytics', 'mainwp' ) . '</div>',
80 - 'read',
81 - 'Extensions-Mainwp-Analytics',
82 - array(
83 - self::class,
84 - 'render_extensions_groups',
85 - )
86 - );
150 + $extensions_and_leftmenus = array(
151 + array(
152 + 'title' => esc_html__( 'Content Operations', 'mainwp' ),
153 + 'parent_key' => 'managesites',
154 + 'slug' => 'Extensions-Mainwp-Content-Operations',
155 + 'href' => 'admin.php?page=Extensions-Mainwp-Content-Operations',
156 + 'leftsub_order' => 8,
157 + 'id' => 'mainwp-content-operations-extensions-category',
158 + 'level' => 1,
159 + ),
160 + );
87 161
88 - add_submenu_page(
89 - 'mainwp_tab',
90 - esc_html__( 'Performance', 'mainwp' ),
91 - '<div class="mainwp-hidden" id="mainwp-extensions-performance">' . esc_html__( 'Performance', 'mainwp' ) . '</div>',
92 - 'read',
93 - 'Extensions-Mainwp-Performance',
94 - array(
95 - self::class,
96 - 'render_extensions_groups',
97 - )
98 - );
162 + $extensions_and_leftmenus[] = array(
163 + 'title' => esc_html__( 'Backups', 'mainwp' ),
164 + 'parent_key' => 'managesites',
165 + 'slug' => 'Extensions-Mainwp-Backups',
166 + 'href' => 'admin.php?page=Extensions-Mainwp-Backups',
167 + 'leftsub_order' => 8.1,
168 + 'id' => 'mainwp-backups-extensions-category',
169 + 'level' => 1,
170 + );
99 171
100 - add_submenu_page(
101 - 'mainwp_tab',
102 - esc_html__( 'Development', 'mainwp' ),
103 - '<div class="mainwp-hidden" id="mainwp-extensions-development">' . esc_html__( 'Development', 'mainwp' ) . '</div>',
104 - 'read',
105 - 'Extensions-Mainwp-Development',
106 - array(
107 - self::class,
108 - 'render_extensions_groups',
109 - )
110 - );
172 + if ( defined( 'MAINWP_MODULE_API_BACKUPS_ENABLED' ) && MAINWP_MODULE_API_BACKUPS_ENABLED ) {
173 + $extensions_and_leftmenus[] = array(
174 + 'type' => 'extension',
175 + 'title' => esc_html__( 'API Backups', 'mainwp' ),
176 + 'slug' => 'mainwp-api-backpus',
177 + 'parent_key' => 'Extensions-Mainwp-Backups',
178 + 'ext_page' => 'admin.php?page=ManageApiBackups',
179 + 'leftsub_order_level2' => 1,
180 + 'level' => 2,
181 + 'active_path' => array( 'ManageApiBackups' => 'managesites' ),
182 + );
183 + }
111 184
112 - add_submenu_page(
113 - 'mainwp_tab',
114 - esc_html__( 'Agency', 'mainwp' ),
115 - '<div class="mainwp-hidden" id="mainwp-extensions-agency">' . esc_html__( 'Agency', 'mainwp' ) . '</div>',
116 - 'read',
117 - 'Extensions-Mainwp-Agency',
118 - array(
119 - self::class,
120 - 'render_extensions_groups',
121 - )
122 - );
185 + $extensions_and_leftmenus[] = array(
186 + 'type' => 'extension',
187 + 'title' => esc_html__( 'BackWPup', 'mainwp' ),
188 + 'slug' => 'mainwp-backwpup-extension/mainwp-backwpup-extension.php',
189 + 'parent_key' => 'Extensions-Mainwp-Backups',
190 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Backwpup-Extension',
191 + 'leftsub_order_level2' => 2,
192 + 'level' => 2,
193 + 'active_path' => array( 'Extensions-Mainwp-Backwpup-Extension' => 'managesites' ),
194 + );
123 195
124 - add_submenu_page(
125 - 'mainwp_tab',
126 - esc_html__( 'Administrative', 'mainwp' ),
127 - '<div class="mainwp-hidden" id="mainwp-extensions-administrative">' . esc_html__( 'Administrative', 'mainwp' ) . '</div>',
128 - 'read',
129 - 'Extensions-Mainwp-Administrative',
130 - array(
131 - self::class,
132 - 'render_extensions_groups',
133 - )
134 - );
196 + $extensions_and_leftmenus[] = array(
197 + 'type' => 'extension',
198 + 'title' => esc_html__( 'UpdraftPlus', 'mainwp' ),
199 + 'slug' => 'mainwp-updraftplus-extension/mainwp-updraftplus-extension.php',
200 + 'parent_key' => 'Extensions-Mainwp-Backups',
201 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Updraftplus-Extension',
202 + 'leftsub_order_level2' => 3,
203 + 'level' => 2,
204 + 'active_path' => array( 'Extensions-Mainwp-Updraftplus-Extension' => 'managesites' ),
205 + );
135 206
136 - MainWP_Menu::add_left_menu(
137 - array(
138 - 'title' => esc_html__( 'Backups', 'mainwp' ),
139 - 'parent_key' => 'managesites',
140 - 'slug' => 'Extensions-Mainwp-Backups',
141 - 'href' => 'admin.php?page=Extensions-Mainwp-Backups',
142 - 'leftsub_order' => 8.1,
143 - ),
144 - 1
145 - );
207 + $extensions_and_leftmenus[] = array(
208 + 'type' => 'extension',
209 + 'title' => esc_html__( 'MainWP Buddy', 'mainwp' ),
210 + 'slug' => 'mainwp-buddy-extension/mainwp-buddy-extension.php',
211 + 'parent_key' => 'Extensions-Mainwp-Backups',
212 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Buddy-Extension',
213 + 'leftsub_order_level2' => 4,
214 + 'level' => 2,
215 + 'active_path' => array( 'Extensions-Mainwp-Buddy-Extension' => 'managesites' ),
216 + );
146 217
147 - self::add_extension_menu(
148 - array(
149 - 'title' => esc_html__( 'API Backups', 'mainwp' ),
150 - 'slug' => 'mainwp-api-backpus',
151 - 'parent_key' => 'Extensions-Mainwp-Backups',
152 - 'ext_page' => 'admin.php?page=ManageApiBackups',
153 - 'leftsub_order_level2' => 1,
154 - 'level' => 2,
155 - 'active_path' => array( 'ManageApiBackups' => 'managesites' ),
156 - ),
157 - );
218 + $extensions_and_leftmenus[] = array(
219 + 'type' => 'extension',
220 + 'title' => esc_html__( 'Time Capsule', 'mainwp' ),
221 + 'slug' => 'mainwp-timecapsule-extension/mainwp-timecapsule-extension.php',
222 + 'parent_key' => 'Extensions-Mainwp-Backups',
223 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Timecapsule-Extension',
224 + 'leftsub_order_level2' => 5,
225 + 'level' => 2,
226 + 'active_path' => array( 'Extensions-Mainwp-Timecapsule-Extension' => 'managesites' ),
227 + );
158 228
159 - self::add_extension_menu(
160 - array(
161 - 'title' => esc_html__( 'BackWPup', 'mainwp' ),
162 - 'slug' => 'mainwp-backwpup-extension/mainwp-backwpup-extension.php',
163 - 'parent_key' => 'Extensions-Mainwp-Backups',
164 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Backwpup-Extension',
165 - 'leftsub_order_level2' => 2,
166 - 'level' => 2,
167 - 'active_path' => array( 'Extensions-Mainwp-Backwpup-Extension' => 'managesites' ),
168 - ),
169 - );
229 + $extensions_and_leftmenus[] = array(
230 + 'type' => 'extension',
231 + 'title' => esc_html__( 'WPvivid Backup', 'mainwp' ),
232 + 'slug' => 'wpvivid-backup-mainwp/wpvivid-backup-mainwp.php',
233 + 'parent_key' => 'Extensions-Mainwp-Backups',
234 + 'ext_page' => 'admin.php?page=Extensions-Wpvivid-Backup-Mainwp',
235 + 'leftsub_order_level2' => 6,
236 + 'level' => 2,
237 + 'active_path' => array( 'Extensions-Wpvivid-Backup-Mainwp' => 'managesites' ),
238 + );
170 239
171 - self::add_extension_menu(
172 - array(
173 - 'title' => esc_html__( 'UpdraftPlus', 'mainwp' ),
174 - 'slug' => 'mainwp-updraftplus-extension/mainwp-updraftplus-extension.php',
175 - 'parent_key' => 'Extensions-Mainwp-Backups',
176 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Updraftplus-Extension',
177 - 'leftsub_order_level2' => 3,
178 - 'level' => 2,
179 - 'active_path' => array( 'Extensions-Mainwp-Updraftplus-Extension' => 'managesites' ),
180 - ),
181 - );
240 + $extensions_and_leftmenus[] = array(
241 + 'title' => esc_html__( 'Security', 'mainwp' ),
242 + 'parent_key' => 'managesites',
243 + 'slug' => 'Extensions-Mainwp-Security',
244 + 'href' => 'admin.php?page=Extensions-Mainwp-Security',
245 + 'leftsub_order' => 8.2,
246 + 'id' => 'mainwp-security-extensions-category',
247 + 'level' => 1,
248 + );
182 249
183 - self::add_extension_menu(
184 - array(
185 - 'title' => esc_html__( 'MainWP Buddy', 'mainwp' ),
186 - 'slug' => 'mainwp-buddy-extension/mainwp-buddy-extension.php',
187 - 'parent_key' => 'Extensions-Mainwp-Backups',
188 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Buddy-Extension',
189 - 'leftsub_order_level2' => 4,
190 - 'level' => 2,
191 - 'active_path' => array( 'Extensions-Mainwp-Buddy-Extension' => 'managesites' ),
192 - ),
193 - );
250 + $extensions_and_leftmenus[] = array(
251 + 'type' => 'extension',
252 + 'title' => esc_html__( 'Activity Log for MainWP', 'mainwp' ),
253 + 'slug' => 'activity-log-mainwp/activity-log-mainwp.php',
254 + 'parent_key' => 'Extensions-Mainwp-Security',
255 + 'ext_page' => 'admin.php?page=Extensions-Activity-Log-Mainwp',
256 + 'leftsub_order_level2' => 1,
257 + 'level' => 2,
258 + 'active_path' => array( 'Extensions-Activity-Log-Mainwp' => 'managesites' ),
259 + );
194 260
195 - self::add_extension_menu(
196 - array(
197 - 'title' => esc_html__( 'Time Capsule', 'mainwp' ),
198 - 'slug' => 'mainwp-timecapsule-extension/mainwp-timecapsule-extension.php',
199 - 'parent_key' => 'Extensions-Mainwp-Backups',
200 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Timecapsule-Extension',
201 - 'leftsub_order_level2' => 5,
202 - 'level' => 2,
203 - 'active_path' => array( 'Extensions-Mainwp-Timecapsule-Extension' => 'managesites' ),
204 - ),
205 - );
261 + $extensions_and_leftmenus[] = array(
262 + 'type' => 'extension',
263 + 'title' => esc_html__( 'Dashboard Lock', 'mainwp' ),
264 + 'slug' => 'mainwp-clean-and-lock-extension/mainwp-clean-and-lock-extension.php',
265 + 'parent_key' => 'Extensions-Mainwp-Security',
266 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Clean-And-Lock-Extension',
267 + 'leftsub_order_level2' => 2,
268 + 'level' => 2,
269 + 'active_path' => array( 'Extensions-Mainwp-Clean-And-Lock-Extension' => 'managesites' ),
270 + );
206 271
207 - MainWP_Menu::add_left_menu(
208 - array(
209 - 'title' => esc_html__( 'Security', 'mainwp' ),
210 - 'parent_key' => 'managesites',
211 - 'slug' => 'Extensions-Mainwp-Security',
212 - 'href' => 'admin.php?page=Extensions-Mainwp-Security',
213 - 'leftsub_order' => 8.2,
214 - ),
215 - 1
216 - );
272 + $extensions_and_leftmenus[] = array(
273 + 'type' => 'extension',
274 + 'title' => esc_html__( 'Jetpack Scan', 'mainwp' ),
275 + 'slug' => 'mainwp-jetpack-scan-extension/mainwp-jetpack-scan-extension.php',
276 + 'parent_key' => 'Extensions-Mainwp-Security',
277 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Jetpack-Scan-Extension',
278 + 'leftsub_order_level2' => 3,
279 + 'level' => 2,
280 + 'active_path' => array( 'Extensions-Mainwp-Jetpack-Scan-Extension' => 'managesites' ),
281 + );
217 282
218 - self::add_extension_menu(
219 - array(
220 - 'title' => esc_html__( 'Activity Log for MainWP', 'mainwp' ),
221 - 'slug' => 'activity-log-mainwp/activity-log-mainwp.php',
222 - 'parent_key' => 'Extensions-Mainwp-Security',
223 - 'ext_page' => 'admin.php?page=Extensions-Activity-Log-Mainwp',
224 - 'leftsub_order_level2' => 1,
225 - 'level' => 2,
226 - 'active_path' => array( 'Extensions-Activity-Log-Mainwp' => 'managesites' ),
227 - ),
228 - );
283 + $extensions_and_leftmenus[] = array(
284 + 'type' => 'extension',
285 + 'title' => esc_html__( 'Jetpack Protect', 'mainwp' ),
286 + 'slug' => 'mainwp-jetpack-protect-extension/mainwp-jetpack-protect-extension.php',
287 + 'parent_key' => 'Extensions-Mainwp-Security',
288 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Jetpack-Protect-Extension',
289 + 'leftsub_order_level2' => 4,
290 + 'level' => 2,
291 + 'active_path' => array( 'Extensions-Mainwp-Jetpack-Protect-Extension' => 'managesites' ),
292 + );
229 293
230 - self::add_extension_menu(
231 - array(
232 - 'title' => esc_html__( 'Dashboard Lock', 'mainwp' ),
233 - 'slug' => 'mainwp-clean-and-lock-extension/mainwp-clean-and-lock-extension.php',
234 - 'parent_key' => 'Extensions-Mainwp-Security',
235 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Clean-And-Lock-Extension',
236 - 'leftsub_order_level2' => 2,
237 - 'level' => 2,
238 - 'active_path' => array( 'Extensions-Mainwp-Clean-And-Lock-Extension' => 'managesites' ),
239 - ),
240 - );
294 + $extensions_and_leftmenus[] = array(
295 + 'type' => 'extension',
296 + 'title' => esc_html__( 'Security Ninja', 'mainwp' ),
297 + 'slug' => 'security-ninja-for-mainwp/security-ninja-mainwp.php',
298 + 'parent_key' => 'Extensions-Mainwp-Security',
299 + 'ext_page' => 'admin.php?page=Extensions-Security-Ninja-For-Mainwp',
300 + 'leftsub_order_level2' => 5,
301 + 'level' => 2,
302 + 'active_path' => array( 'Extensions-Security-Ninja-For-Mainwp' => 'managesites' ),
303 + );
241 304
242 - self::add_extension_menu(
243 - array(
244 - 'title' => esc_html__( 'Jetpack Scan', 'mainwp' ),
245 - 'slug' => 'mainwp-jetpack-scan-extension/mainwp-jetpack-scan-extension.php',
246 - 'parent_key' => 'Extensions-Mainwp-Security',
247 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Jetpack-Scan-Extension',
248 - 'leftsub_order_level2' => 3,
249 - 'level' => 2,
250 - 'active_path' => array( 'Extensions-Mainwp-Jetpack-Scan-Extension' => 'managesites' ),
251 - ),
252 - );
305 + $extensions_and_leftmenus[] = array(
306 + 'type' => 'extension',
307 + 'title' => esc_html__( 'Sucuri', 'mainwp' ),
308 + 'slug' => 'mainwp-sucuri-extension/mainwp-sucuri-extension.php',
309 + 'parent_key' => 'Extensions-Mainwp-Security',
310 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Sucuri-Extension',
311 + 'leftsub_order_level2' => 6,
312 + 'level' => 2,
313 + 'active_path' => array( 'Extensions-Mainwp-Sucuri-Extension' => 'managesites' ),
314 + );
253 315
254 - self::add_extension_menu(
255 - array(
256 - 'title' => esc_html__( 'Jetpack Protect', 'mainwp' ),
257 - 'slug' => 'mainwp-jetpack-protect-extension/mainwp-jetpack-protect-extension.php',
258 - 'parent_key' => 'Extensions-Mainwp-Security',
259 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Jetpack-Protect-Extension',
260 - 'leftsub_order_level2' => 4,
261 - 'level' => 2,
262 - 'active_path' => array( 'Extensions-Mainwp-Jetpack-Protect-Extension' => 'managesites' ),
263 - ),
264 - );
316 + $extensions_and_leftmenus[] = array(
317 + 'type' => 'extension',
318 + 'title' => esc_html__( 'Solid Security Integration', 'mainwp' ),
319 + 'slug' => 'mainwp-ithemes-security-extension/mainwp-ithemes-security-extension.php',
320 + 'parent_key' => 'Extensions-Mainwp-Security',
321 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Ithemes-Security-Extension',
322 + 'leftsub_order_level2' => 7,
323 + 'level' => 2,
324 + 'active_path' => array( 'Extensions-Mainwp-Ithemes-Security-Extension' => 'managesites' ),
325 + );
265 326
266 - self::add_extension_menu(
267 - array(
268 - 'title' => esc_html__( 'Security Ninja', 'mainwp' ),
269 - 'slug' => 'security-ninja-for-mainwp/security-ninja-mainwp.php',
270 - 'parent_key' => 'Extensions-Mainwp-Security',
271 - 'ext_page' => 'admin.php?page=Extensions-Security-Ninja-For-Mainwp',
272 - 'leftsub_order_level2' => 5,
273 - 'level' => 2,
274 - 'active_path' => array( 'Extensions-Security-Ninja-For-Mainwp' => 'managesites' ),
275 - ),
276 - );
327 + $extensions_and_leftmenus[] = array(
328 + 'type' => 'extension',
329 + 'title' => esc_html__( 'Virusdie', 'mainwp' ),
330 + 'slug' => 'mainwp-virusdie-extension/mainwp-virusdie-extension.php',
331 + 'parent_key' => 'Extensions-Mainwp-Security',
332 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Virusdie-Extension',
333 + 'leftsub_order_level2' => 8,
334 + 'level' => 2,
335 + 'active_path' => array( 'Extensions-Mainwp-Virusdie-Extension' => 'managesites' ),
336 + );
277 337
278 - self::add_extension_menu(
279 - array(
280 - 'title' => esc_html__( 'Sucuri', 'mainwp' ),
281 - 'slug' => 'mainwp-sucuri-extension/mainwp-sucuri-extension.php',
282 - 'parent_key' => 'Extensions-Mainwp-Security',
283 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Sucuri-Extension',
284 - 'leftsub_order_level2' => 6,
285 - 'level' => 2,
286 - 'active_path' => array( 'Extensions-Mainwp-Sucuri-Extension' => 'managesites' ),
287 - ),
288 - );
338 + $extensions_and_leftmenus[] = array(
339 + 'type' => 'extension',
340 + 'title' => esc_html__( 'Vulnerability Checker', 'mainwp' ),
341 + 'slug' => 'mainwp-vulnerability-checker-extension/mainwp-vulnerability-checker-extension.php',
342 + 'parent_key' => 'Extensions-Mainwp-Security',
343 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Vulnerability-Checker-Extension',
344 + 'leftsub_order_level2' => 9,
345 + 'level' => 2,
346 + 'active_path' => array( 'Extensions-Mainwp-Vulnerability-Checker-Extension' => 'managesites' ),
347 + );
289 348
290 - self::add_extension_menu(
291 - array(
292 - 'title' => esc_html__( 'Solid Security', 'mainwp' ),
293 - 'slug' => 'mainwp-ithemes-extension/mainwp-ithemes-extension.php',
294 - 'parent_key' => 'Extensions-Mainwp-Security',
295 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Ithemes-Extension',
296 - 'leftsub_order_level2' => 7,
297 - 'level' => 2,
298 - 'active_path' => array( 'Extensions-Mainwp-Ithemes-Extension' => 'managesites' ),
299 - ),
300 - );
349 + $extensions_and_leftmenus[] = array(
350 + 'type' => 'extension',
351 + 'title' => esc_html__( 'Wordfence', 'mainwp' ),
352 + 'slug' => 'mainwp-wordfence-extension/mainwp-wordfence-extension.php',
353 + 'parent_key' => 'Extensions-Mainwp-Security',
354 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Wordfence-Extension',
355 + 'leftsub_order_level2' => 10,
356 + 'level' => 2,
357 + 'active_path' => array( 'Extensions-Mainwp-Wordfence-Extension' => 'managesites' ),
358 + );
301 359
302 - self::add_extension_menu(
303 - array(
304 - 'title' => esc_html__( 'Virusdie', 'mainwp' ),
305 - 'slug' => 'mainwp-virusdie-extension/mainwp-virusdie-extension.php',
306 - 'parent_key' => 'Extensions-Mainwp-Security',
307 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Virusdie-Extension',
308 - 'leftsub_order_level2' => 8,
309 - 'level' => 2,
310 - 'active_path' => array( 'Extensions-Mainwp-Virusdie-Extension' => 'managesites' ),
311 - ),
312 - );
360 + $extensions_and_leftmenus[] = array(
361 + 'title' => esc_html__( 'Analytics', 'mainwp' ),
362 + 'parent_key' => 'managesites',
363 + 'slug' => 'Extensions-Mainwp-Analytics',
364 + 'href' => 'admin.php?page=Extensions-Mainwp-Analytics',
365 + 'leftsub_order' => 8.3,
366 + 'id' => 'mainwp-analytics-extensions-category',
367 + 'level' => 1,
368 + );
313 369
314 - self::add_extension_menu(
315 - array(
316 - 'title' => esc_html__( 'Vulnerability Checker', 'mainwp' ),
317 - 'slug' => 'mainwp-vulnerability-extension/mainwp-vulnerability-checker-extension.php',
318 - 'parent_key' => 'Extensions-Mainwp-Security',
319 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Vulnerability-Checker-Extension',
320 - 'leftsub_order_level2' => 9,
321 - 'level' => 2,
322 - 'active_path' => array( 'Extensions-Mainwp-Vulnerability-Checker-Extension' => 'managesites' ),
323 - ),
324 - );
370 + $extensions_and_leftmenus[] = array(
371 + 'type' => 'extension',
372 + 'title' => esc_html__( 'Google Analytics', 'mainwp' ),
373 + 'slug' => 'mainwp-google-analytics-extension/mainwp-google-analytics-extension.php',
374 + 'parent_key' => 'Extensions-Mainwp-Analytics',
375 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Google-Analytics-Extension',
376 + 'leftsub_order_level2' => 1,
377 + 'level' => 2,
378 + 'active_path' => array( 'Extensions-Mainwp-Google-Analytics-Extension' => 'managesites' ),
379 + );
325 380
326 - self::add_extension_menu(
327 - array(
328 - 'title' => esc_html__( 'Wordfence', 'mainwp' ),
329 - 'slug' => 'mainwp-wordfence-extension/mainwp-wordfence-extension.php',
330 - 'parent_key' => 'Extensions-Mainwp-Security',
331 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Wordfence-Extension',
332 - 'leftsub_order_level2' => 10,
333 - 'level' => 2,
334 - 'active_path' => array( 'Extensions-Mainwp-Wordfence-Extension' => 'managesites' ),
335 - ),
336 - );
381 + $extensions_and_leftmenus[] = array(
382 + 'type' => 'extension',
383 + 'title' => esc_html__( 'Fathom', 'mainwp' ),
384 + 'slug' => 'mainwp-fathom-extension/mainwp-fathom-extension.php',
385 + 'parent_key' => 'Extensions-Mainwp-Analytics',
386 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Fathom-Extension',
387 + 'leftsub_order_level2' => 2,
388 + 'level' => 2,
389 + 'active_path' => array( 'Extensions-Mainwp-Fathom-Extension' => 'managesites' ),
390 + );
337 391
338 - MainWP_Menu::add_left_menu(
339 - array(
340 - 'title' => esc_html__( 'Analytics', 'mainwp' ),
341 - 'parent_key' => 'managesites',
342 - 'slug' => 'Extensions-Mainwp-Analytics',
343 - 'href' => 'admin.php?page=Extensions-Mainwp-Analytics',
344 - 'leftsub_order' => 8.3,
345 - ),
346 - 1
347 - );
392 + $extensions_and_leftmenus[] = array(
393 + 'type' => 'extension',
394 + 'title' => esc_html__( 'Matomo', 'mainwp' ),
395 + 'slug' => 'mainwp-piwik-extension/mainwp-piwik-extension.php',
396 + 'parent_key' => 'Extensions-Mainwp-Analytics',
397 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Piwik-Extension',
398 + 'leftsub_order_level2' => 3,
399 + 'level' => 2,
400 + 'active_path' => array( 'Extensions-Mainwp-Piwik-Extension' => 'managesites' ),
401 + );
348 402
349 - self::add_extension_menu(
350 - array(
351 - 'title' => esc_html__( 'Google Analytics', 'mainwp' ),
352 - 'slug' => 'mainwp-google-analytics-extension/mainwp-google-analytics-extension.php',
353 - 'parent_key' => 'Extensions-Mainwp-Analytics',
354 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Google-Analytics-Extension',
355 - 'leftsub_order_level2' => 1,
356 - 'level' => 2,
357 - 'active_path' => array( 'Extensions-Mainwp-Google-Analytics-Extension' => 'managesites' ),
358 - ),
359 - );
403 + $extensions_and_leftmenus[] = array(
404 + 'title' => esc_html__( 'Monitoring', 'mainwp' ),
405 + 'parent_key' => 'managesites',
406 + 'slug' => 'Extensions-Mainwp-Monitoring',
407 + 'href' => 'admin.php?page=Extensions-Mainwp-Monitoring',
408 + 'leftsub_order' => 8.4,
409 + 'id' => 'mainwp-monitoring-extensions-category',
410 + 'level' => 1,
411 + );
360 412
361 - self::add_extension_menu(
362 - array(
363 - 'title' => esc_html__( 'Fathom', 'mainwp' ),
364 - 'slug' => 'mainwp-fathom-extension/mainwp-fathom-extension.php',
365 - 'parent_key' => 'Extensions-Mainwp-Analytics',
366 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Fathom-Extension',
367 - 'leftsub_order_level2' => 2,
368 - 'level' => 2,
369 - 'active_path' => array( 'Extensions-Mainwp-Fathom-Extension' => 'managesites' ),
370 - ),
371 - );
413 + $extensions_and_leftmenus[] = array(
414 + 'title' => esc_html__( 'Monitoring', 'mainwp' ),
415 + 'parent_key' => 'Extensions-Mainwp-Monitoring',
416 + 'slug' => 'MonitoringSites',
417 + 'href' => 'admin.php?page=MonitoringSites',
418 + 'leftsub_order_level2' => 0.5,
419 + 'level' => 2,
420 + );
372 421
373 - self::add_extension_menu(
374 - array(
375 - 'title' => esc_html__( 'Matomo', 'mainwp' ),
376 - 'slug' => 'mainwp-piwik-extension/mainwp-piwik-extension.php',
377 - 'parent_key' => 'Extensions-Mainwp-Analytics',
378 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Piwik-Extension',
379 - 'leftsub_order_level2' => 3,
380 - 'level' => 2,
381 - 'active_path' => array( 'Extensions-Mainwp-Piwik-Extension' => 'managesites' ),
382 - ),
383 - );
422 + $extensions_and_leftmenus[] = array(
423 + 'type' => 'extension',
424 + 'title' => esc_html__( 'Advanced Uptime Monitor', 'mainwp' ),
425 + 'slug' => 'advanced-uptime-monitor-extension/advanced-uptime-monitor-extension.php',
426 + 'parent_key' => 'Extensions-Mainwp-Monitoring',
427 + 'ext_page' => 'admin.php?page=Extensions-Advanced-Uptime-Monitor-Extension',
428 + 'leftsub_order_level2' => 1,
429 + 'level' => 2,
430 + 'active_path' => array( 'Extensions-Advanced-Uptime-Monitor-Extension' => 'managesites' ),
431 + );
384 432
385 - MainWP_Menu::add_left_menu(
386 - array(
387 - 'title' => esc_html__( 'Monitoring', 'mainwp' ),
388 - 'parent_key' => 'managesites',
389 - 'slug' => 'Extensions-Mainwp-Monitoring',
390 - 'href' => 'admin.php?page=Extensions-Mainwp-Monitoring',
391 - 'leftsub_order' => 8.4,
392 - ),
393 - 1
394 - );
433 + $extensions_and_leftmenus[] = array(
434 + 'type' => 'extension',
435 + 'title' => esc_html__( 'SSL Monitor', 'mainwp' ),
436 + 'slug' => 'mainwp-ssl-monitor-extension/mainwp-ssl-monitor-extension.php',
437 + 'parent_key' => 'Extensions-Mainwp-Monitoring',
438 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Ssl-Monitor-Extension',
439 + 'leftsub_order_level2' => 2,
440 + 'level' => 2,
441 + 'active_path' => array( 'Extensions-Mainwp-Ssl-Monitor-Extension' => 'managesites' ),
442 + );
395 443
396 - MainWP_Menu::add_left_menu(
397 - array(
398 - 'title' => esc_html__( 'Basic Monitoring', 'mainwp' ),
399 - 'parent_key' => 'Extensions-Mainwp-Monitoring',
400 - 'slug' => 'MonitoringSites',
401 - 'href' => 'admin.php?page=MonitoringSites',
402 - 'leftsub_order_level2' => 0.5,
403 - ),
404 - 2
405 - );
444 + $extensions_and_leftmenus[] = array(
445 + 'type' => 'extension',
446 + 'title' => esc_html__( 'Domain Monitor', 'mainwp' ),
447 + 'slug' => 'mainwp-domain-monitor-extension/mainwp-domain-monitor-extension.php',
448 + 'parent_key' => 'Extensions-Mainwp-Monitoring',
449 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Domain-Monitor-Extension',
450 + 'leftsub_order_level2' => 3,
451 + 'level' => 2,
452 + 'active_path' => array( 'Extensions-Mainwp-Domain-Monitor-Extension' => 'managesites' ),
453 + );
406 454
407 - self::add_extension_menu(
408 - array(
409 - 'title' => esc_html__( 'Advanced Uptime Monitor', 'mainwp' ),
410 - 'slug' => 'advanced-uptime-monitor-extension/advanced-uptime-monitor-extension.php',
411 - 'parent_key' => 'Extensions-Mainwp-Monitoring',
412 - 'ext_page' => 'admin.php?page=Extensions-Advanced-Uptime-Monitor-Extension',
413 - 'leftsub_order_level2' => 1,
414 - 'level' => 2,
415 - 'active_path' => array( 'Extensions-Advanced-Uptime-Monitor-Extension' => 'managesites' ),
416 - ),
417 - );
455 + $extensions_and_leftmenus[] = array(
456 + 'type' => 'extension',
457 + 'title' => esc_html__( 'Lighthouse', 'mainwp' ),
458 + 'slug' => 'mainwp-lighthouse-extension/mainwp-lighthouse-extension.php',
459 + 'parent_key' => 'Extensions-Mainwp-Monitoring',
460 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Lighthouse-Extension',
461 + 'leftsub_order_level2' => 4,
462 + 'level' => 2,
463 + 'active_path' => array( 'Extensions-Mainwp-Lighthouse-Extension' => 'managesites' ),
464 + );
418 465
419 - self::add_extension_menu(
420 - array(
421 - 'title' => esc_html__( 'SSL Monitor', 'mainwp' ),
422 - 'slug' => 'mainwp-ssl-monitor-extension/mainwp-ssl-monitor-extension.php',
423 - 'parent_key' => 'Extensions-Mainwp-Monitoring',
424 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Ssl-Monitor-Extension',
425 - 'leftsub_order_level2' => 2,
426 - 'level' => 2,
427 - 'active_path' => array( 'Extensions-Mainwp-Ssl-Monitor-Extension' => 'managesites' ),
428 - ),
429 - );
466 + $extensions_and_leftmenus[] = array(
467 + 'type' => 'extension',
468 + 'title' => esc_html__( 'WooCommerce Status', 'mainwp' ),
469 + 'slug' => 'mainwp-woocommerce-status-extension/mainwp-woocommerce-status-extension.php',
470 + 'parent_key' => 'Extensions-Mainwp-Monitoring',
471 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Woocommerce-Status-Extension',
472 + 'leftsub_order_level2' => 2,
473 + 'level' => 2,
474 + 'active_path' => array( 'Extensions-Mainwp-Woocommerce-Status-Extension' => 'managesites' ),
475 + );
430 476
431 - self::add_extension_menu(
432 - array(
433 - 'title' => esc_html__( 'Domain Monitor', 'mainwp' ),
434 - 'slug' => 'mainwp-domain-monitor-extension/mainwp-domain-monitor-extension.php',
435 - 'parent_key' => 'Extensions-Mainwp-Monitoring',
436 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Domain-Monitor-Extension',
437 - 'leftsub_order_level2' => 3,
438 - 'level' => 2,
439 - 'active_path' => array( 'Extensions-Mainwp-Domain-Monitor-Extension' => 'managesites' ),
440 - ),
441 - );
477 + $extensions_and_leftmenus[] = array(
478 + 'title' => esc_html__( 'Agency', 'mainwp' ),
479 + 'parent_key' => 'managesites',
480 + 'slug' => 'Extensions-Mainwp-Agency',
481 + 'href' => 'admin.php?page=Extensions-Mainwp-Agency',
482 + 'leftsub_order' => 8.4,
483 + 'id' => 'mainwp-agency-extensions-category',
484 + 'level' => 1,
485 + );
442 486
443 - self::add_extension_menu(
444 - array(
445 - 'title' => esc_html__( 'Lighthouse', 'mainwp' ),
446 - 'slug' => 'mainwp-lighthouse-extension/mainwp-lighthouse-extension.php',
447 - 'parent_key' => 'Extensions-Mainwp-Monitoring',
448 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Lighthouse-Extension',
449 - 'leftsub_order_level2' => 4,
450 - 'level' => 2,
451 - 'active_path' => array( 'Extensions-Mainwp-Lighthouse-Extension' => 'managesites' ),
452 - ),
453 - );
487 + $extensions_and_leftmenus[] = array(
488 + 'type' => 'extension',
489 + 'title' => esc_html__( 'White Label', 'mainwp' ),
490 + 'slug' => 'mainwp-branding-extension/mainwp-branding-extension.php',
491 + 'parent_key' => 'Extensions-Mainwp-Agency',
492 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Branding-Extension',
493 + 'leftsub_order_level2' => 1,
494 + 'level' => 2,
495 + 'active_path' => array( 'Extensions-Mainwp-Branding-Extension' => 'managesites' ),
496 + );
454 497
455 - MainWP_Menu::add_left_menu(
456 - array(
457 - 'title' => esc_html__( 'Agency', 'mainwp' ),
458 - 'parent_key' => 'managesites',
459 - 'slug' => 'Extensions-Mainwp-Agency',
460 - 'href' => 'admin.php?page=Extensions-Mainwp-Agency',
461 - 'leftsub_order' => 8.4,
462 - ),
463 - 1
464 - );
498 + $extensions_and_leftmenus[] = array(
499 + 'type' => 'extension',
500 + 'title' => esc_html__( 'Team Control', 'mainwp' ),
501 + 'slug' => 'mainwp-team-control/mainwp-team-control.php',
502 + 'parent_key' => 'Extensions-Mainwp-Agency',
503 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Team-Control',
504 + 'leftsub_order_level2' => 2,
505 + 'level' => 2,
506 + 'active_path' => array( 'Extensions-Mainwp-Team-Control' => 'managesites' ),
507 + );
465 508
466 - self::add_extension_menu(
467 - array(
468 - 'title' => esc_html__( 'White Label', 'mainwp' ),
469 - 'slug' => 'mainwp-branding-extension/mainwp-branding-extension.php',
470 - 'parent_key' => 'Extensions-Mainwp-Agency',
471 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Branding-Extension',
472 - 'leftsub_order_level2' => 1,
473 - 'level' => 2,
474 - 'active_path' => array( 'Extensions-Mainwp-Branding-Extension' => 'managesites' ),
475 - ),
476 - );
509 + $extensions_and_leftmenus[] = array(
510 + 'title' => esc_html__( 'Administrative', 'mainwp' ),
511 + 'parent_key' => 'managesites',
512 + 'slug' => 'Extensions-Mainwp-Administrative',
513 + 'href' => 'admin.php?page=Extensions-Mainwp-Administrative',
514 + 'leftsub_order' => 8.5,
515 + 'id' => 'mainwp-administrative-extensions-category',
516 + 'level' => 1,
517 + );
477 518
478 - self::add_extension_menu(
479 - array(
480 - 'title' => esc_html__( 'Team Control', 'mainwp' ),
481 - 'slug' => 'mainwp-team-control/mainwp-team-control.php',
482 - 'parent_key' => 'Extensions-Mainwp-Agency',
483 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Team-Control',
484 - 'leftsub_order_level2' => 2,
485 - 'level' => 2,
486 - 'active_path' => array( 'Extensions-Mainwp-Team-Control' => 'managesites' ),
487 - ),
488 - );
519 + $extensions_and_leftmenus[] = array(
520 + 'type' => 'extension',
521 + 'title' => esc_html__( 'Atarim', 'mainwp' ),
522 + 'slug' => 'mainwp-atarim-extension/mainwp-atarim-extension.php',
523 + 'parent_key' => 'Extensions-Mainwp-Administrative',
524 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Atarim-Extension',
525 + 'leftsub_order_level2' => 1,
526 + 'level' => 2,
527 + 'active_path' => array( 'Extensions-Mainwp-Atarim-Extension' => 'managesites' ),
528 + );
489 529
490 - MainWP_Menu::add_left_menu(
491 - array(
492 - 'title' => esc_html__( 'Administrative', 'mainwp' ),
493 - 'parent_key' => 'managesites',
494 - 'slug' => 'Extensions-Mainwp-Administrative',
495 - 'href' => 'admin.php?page=Extensions-Mainwp-Administrative',
496 - 'leftsub_order' => 8.5,
497 - ),
498 - 1
499 - );
530 + $extensions_and_leftmenus[] = array(
531 + 'type' => 'extension',
532 + 'title' => esc_html__( 'Bulk Settings Manager', 'mainwp' ),
533 + 'slug' => 'mainwp-bulk-settings-manager/mainwp-bulk-settings-manager.php',
534 + 'parent_key' => 'Extensions-Mainwp-Administrative',
535 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Bulk-Settings-Manager',
536 + 'leftsub_order_level2' => 2,
537 + 'level' => 2,
538 + 'active_path' => array( 'Extensions-Mainwp-Bulk-Settings-Manager' => 'managesites' ),
539 + );
500 540
501 - self::add_extension_menu(
502 - array(
503 - 'title' => esc_html__( 'WooCommerce Shortcuts', 'mainwp' ),
504 - 'slug' => 'mainwp-woocommerce-shortcuts-extension/mainwp-woocommerce-shortcuts-extension.php',
505 - 'parent_key' => 'Extensions-Mainwp-Administrative',
506 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Woocommerce-Shortcuts-Extension',
507 - 'leftsub_order_level2' => 1,
508 - 'level' => 2,
509 - 'active_path' => array( 'Extensions-Mainwp-Woocommerce-Shortcuts-Extension' => 'managesites' ),
510 - ),
511 - );
541 + $extensions_and_leftmenus[] = array(
542 + 'type' => 'extension',
543 + 'title' => esc_html__( 'Code Snippets', 'mainwp' ),
544 + 'slug' => 'mainwp-code-snippets-extension/mainwp-code-snippets-extension.php',
545 + 'parent_key' => 'Extensions-Mainwp-Administrative',
546 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Code-Snippets-Extension',
547 + 'leftsub_order_level2' => 3,
548 + 'level' => 2,
549 + 'active_path' => array( 'Extensions-Mainwp-Code-Snippets-Extension' => 'managesites' ),
550 + );
551 + $extensions_and_leftmenus[] = array(
552 + 'type' => 'extension',
553 + 'title' => esc_html__( 'Custom Dashboard', 'mainwp' ),
554 + 'slug' => 'mainwp-custom-dashboard-extension/mainwp-custom-dashboard-extension.php',
555 + 'parent_key' => 'Extensions-Mainwp-Administrative',
556 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Custom-Dashboard-Extension',
557 + 'leftsub_order_level2' => 4,
558 + 'level' => 2,
559 + 'active_path' => array( 'Extensions-Mainwp-Custom-Dashboard-Extension' => 'managesites' ),
560 + );
512 561
513 - self::add_extension_menu(
514 - array(
515 - 'title' => esc_html__( 'WooCommerce Status', 'mainwp' ),
516 - 'slug' => 'mainwp-woocommerce-status-extension/mainwp-woocommerce-status-extension.php',
517 - 'parent_key' => 'Extensions-Mainwp-Administrative',
518 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Woocommerce-status-Extension',
519 - 'leftsub_order_level2' => 2,
520 - 'level' => 2,
521 - 'active_path' => array( 'Extensions-Mainwp-Woocommerce-status-Extension' => 'managesites' ),
522 - ),
523 - );
562 + $extensions_and_leftmenus[] = array(
563 + 'type' => 'extension',
564 + 'title' => esc_html__( 'Custom Post Type', 'mainwp' ),
565 + 'slug' => 'mainwp-custom-post-types/mainwp-custom-post-types.php',
566 + 'parent_key' => 'Extensions-Mainwp-Administrative',
567 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Custom-Post-Types',
568 + 'leftsub_order_level2' => 5,
569 + 'level' => 2,
570 + 'active_path' => array( 'Extensions-Mainwp-Custom-Post-Types' => 'managesites' ),
571 + );
524 572
525 - MainWP_Menu::add_left_menu(
526 - array(
527 - 'title' => esc_html__( 'Development', 'mainwp' ),
528 - 'parent_key' => 'managesites',
529 - 'slug' => 'Extensions-Mainwp-Development',
530 - 'href' => 'admin.php?page=Extensions-Mainwp-Development',
531 - 'leftsub_order' => 8.6,
532 - ),
533 - 1
534 - );
573 + $extensions_and_leftmenus[] = array(
574 + 'type' => 'extension',
575 + 'title' => esc_html__( 'File Uploader', 'mainwp' ),
576 + 'slug' => 'mainwp-file-uploader-extension/mainwp-file-uploader-extension.php',
577 + 'parent_key' => 'Extensions-Mainwp-Administrative',
578 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-File-Uploader-Extension',
579 + 'leftsub_order_level2' => 6,
580 + 'level' => 2,
581 + 'active_path' => array( 'Extensions-Mainwp-File-Uploader-Extension' => 'managesites' ),
582 + );
535 583
536 - self::add_extension_menu(
537 - array(
538 - 'title' => esc_html__( 'Atarim', 'mainwp' ),
539 - 'slug' => 'mainwp-atarim-extension/mainwp-atarim-extension.php',
540 - 'parent_key' => 'Extensions-Mainwp-Development',
541 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Atarim-Extension',
542 - 'leftsub_order_level2' => 1,
543 - 'level' => 2,
544 - 'active_path' => array( 'Extensions-Mainwp-Atarim-Extension' => 'managesites' ),
545 - ),
546 - );
584 + $extensions_and_leftmenus[] = array(
585 + 'type' => 'extension',
586 + 'title' => esc_html__( 'Pressable', 'mainwp' ),
587 + 'slug' => 'mainwp-pressable-extension/mainwp-pressable-extension.php',
588 + 'parent_key' => 'Extensions-Mainwp-Administrative',
589 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Pressable-Extension',
590 + 'leftsub_order_level2' => 7,
591 + 'level' => 2,
592 + 'active_path' => array( 'Extensions-Mainwp-Pressable-Extension' => 'managesites' ),
593 + );
547 594
548 - self::add_extension_menu(
549 - array(
550 - 'title' => esc_html__( 'Bulk Settings Manager', 'mainwp' ),
551 - 'slug' => 'mainwp-bulk-settings-manager/mainwp-bulk-settings-manager.php',
552 - 'parent_key' => 'Extensions-Mainwp-Development',
553 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Bulk-Settings-Manager',
554 - 'leftsub_order_level2' => 2,
555 - 'level' => 2,
556 - 'active_path' => array( 'Extensions-Mainwp-Bulk-Settings-Manager' => 'managesites' ),
557 - ),
558 - );
595 + $extensions_and_leftmenus[] = array(
596 + 'type' => 'extension',
597 + 'title' => esc_html__( 'Staging', 'mainwp' ),
598 + 'slug' => 'mainwp-staging-extension/mainwp-staging-extension.php',
599 + 'parent_key' => 'Extensions-Mainwp-Administrative',
600 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Staging-Extension',
601 + 'leftsub_order_level2' => 8,
602 + 'level' => 2,
603 + 'active_path' => array( 'Extensions-Mainwp-Staging-Extension' => 'managesites' ),
604 + );
559 605
560 - self::add_extension_menu(
561 - array(
562 - 'title' => esc_html__( 'Code Snippets', 'mainwp' ),
563 - 'slug' => 'mainwp-code-snippets-extension/mainwp-code-snippets-extension.php',
564 - 'parent_key' => 'Extensions-Mainwp-Development',
565 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Code-Snippets-Extension',
566 - 'leftsub_order_level2' => 3,
567 - 'level' => 2,
568 - 'active_path' => array( 'Extensions-Mainwp-Code-Snippets-Extension' => 'managesites' ),
569 - ),
570 - );
606 + $extensions_and_leftmenus[] = array(
607 + 'type' => 'extension',
608 + 'title' => esc_html__( 'URL Extractor', 'mainwp' ),
609 + 'slug' => 'mainwp-url-extractor-extension/mainwp-url-extractor-extension.php',
610 + 'parent_key' => 'Extensions-Mainwp-Administrative',
611 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Url-Extractor-Extension',
612 + 'leftsub_order_level2' => 9,
613 + 'level' => 2,
614 + 'active_path' => array( 'Extensions-Mainwp-Url-Extractor-Extension' => 'managesites' ),
615 + );
571 616
572 - self::add_extension_menu(
573 - array(
574 - 'title' => esc_html__( 'Custom Dashboard', 'mainwp' ),
575 - 'slug' => 'mainwp-custom-dashboard-extension/mainwp-custom-dashboard-extension.php',
576 - 'parent_key' => 'Extensions-Mainwp-Development',
577 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Custom-Dashboard-Extension',
578 - 'leftsub_order_level2' => 4,
579 - 'level' => 2,
580 - 'active_path' => array( 'Extensions-Mainwp-Custom-Dashboard-Extension' => 'managesites' ),
581 - ),
582 - );
617 + $extensions_and_leftmenus[] = array(
618 + 'type' => 'extension',
619 + 'title' => esc_html__( 'WooCommerce Shortcuts', 'mainwp' ),
620 + 'slug' => 'mainwp-woocommerce-shortcuts-extension/mainwp-woocommerce-shortcuts-extension.php',
621 + 'parent_key' => 'Extensions-Mainwp-Administrative',
622 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Woocommerce-Shortcuts-Extension',
623 + 'leftsub_order_level2' => 1,
624 + 'level' => 2,
625 + 'active_path' => array( 'Extensions-Mainwp-Woocommerce-Shortcuts-Extension' => 'managesites' ),
626 + );
583 627
584 - self::add_extension_menu(
585 - array(
586 - 'title' => esc_html__( 'Custom Post Type', 'mainwp' ),
587 - 'slug' => 'mainwp-custom-post-types/mainwp-custom-post-type.php',
588 - 'parent_key' => 'Extensions-Mainwp-Development',
589 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Custom-Post-Types',
590 - 'leftsub_order_level2' => 5,
591 - 'level' => 2,
592 - 'active_path' => array( 'Extensions-Mainwp-Custom-Post-Types' => 'managesites' ),
593 - ),
594 - );
628 + $extensions_and_leftmenus[] = array(
629 + 'title' => esc_html__( 'Performance', 'mainwp' ),
630 + 'parent_key' => 'managesites',
631 + 'slug' => 'Extensions-Mainwp-Performance',
632 + 'href' => 'admin.php?page=Extensions-Mainwp-Performance',
633 + 'leftsub_order' => 8.6,
634 + 'id' => 'mainwp-performance-extensions-category',
635 + 'level' => 1,
636 + );
595 637
596 - self::add_extension_menu(
597 - array(
598 - 'title' => esc_html__( 'File Uploader', 'mainwp' ),
599 - 'slug' => 'mainwp-file-uploader-extension/mainwp-file-uploader-extension.php',
600 - 'parent_key' => 'Extensions-Mainwp-Development',
601 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-File-Uploader-Extension',
602 - 'leftsub_order_level2' => 6,
603 - 'level' => 2,
604 - 'active_path' => array( 'Extensions-Mainwp-File-Uploader-Extension' => 'managesites' ),
605 - ),
606 - );
638 + $extensions_and_leftmenus[] = array(
639 + 'type' => 'extension',
640 + 'title' => esc_html__( 'Cache Control', 'mainwp' ),
641 + 'slug' => 'mainwp-cache-control-extension/mainwp-cache-control-extension.php',
642 + 'parent_key' => 'Extensions-Mainwp-Performance',
643 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Cache-Control-Extension',
644 + 'leftsub_order_level2' => 1,
645 + 'level' => 2,
646 + 'active_path' => array( 'Extensions-Mainwp-Cache-Control-Extension' => 'managesites' ),
647 + );
607 648
608 - self::add_extension_menu(
609 - array(
610 - 'title' => esc_html__( 'Pressable', 'mainwp' ),
611 - 'slug' => 'mainwp-pressable-extension/mainwp-pressable-extension.php',
612 - 'parent_key' => 'Extensions-Mainwp-Development',
613 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Pressable-Extension',
614 - 'leftsub_order_level2' => 7,
615 - 'level' => 2,
616 - 'active_path' => array( 'Extensions-Mainwp-Pressable-Extension' => 'managesites' ),
617 - ),
618 - );
649 + $extensions_and_leftmenus[] = array(
650 + 'type' => 'extension',
651 + 'title' => esc_html__( 'Maintenance', 'mainwp' ),
652 + 'slug' => 'mainwp-maintenance-extension/mainwp-maintenance-extension.php',
653 + 'parent_key' => 'Extensions-Mainwp-Performance',
654 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Maintenance-Extension',
655 + 'leftsub_order_level2' => 2,
656 + 'level' => 2,
657 + 'active_path' => array( 'Extensions-Mainwp-Maintenance-Extension' => 'managesites' ),
658 + );
619 659
620 - self::add_extension_menu(
621 - array(
622 - 'title' => esc_html__( 'Staging', 'mainwp' ),
623 - 'slug' => 'mainwp-staging-extension/mainwp-staging-extension.php',
624 - 'parent_key' => 'Extensions-Mainwp-Development',
625 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Staging-Extension',
626 - 'leftsub_order_level2' => 8,
627 - 'level' => 2,
628 - 'active_path' => array( 'Extensions-Mainwp-Staging-Extension' => 'managesites' ),
629 - ),
630 - );
660 + $extensions_and_leftmenus[] = array(
661 + 'type' => 'extension',
662 + 'title' => esc_html__( 'Rocket', 'mainwp' ),
663 + 'slug' => 'mainwp-rocket-extension/mainwp-rocket-extension.php',
664 + 'parent_key' => 'Extensions-Mainwp-Performance',
665 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Rocket-Extension',
666 + 'leftsub_order_level2' => 3,
667 + 'level' => 2,
668 + 'active_path' => array( 'Extensions-Mainwp-Rocket-Extension' => 'managesites' ),
669 + );
631 670
632 - self::add_extension_menu(
633 - array(
634 - 'title' => esc_html__( 'URL Extractor', 'mainwp' ),
635 - 'slug' => 'mainwp-url-extractor-extension/mainwp-url-extractor-extension.php',
636 - 'parent_key' => 'Extensions-Mainwp-Development',
637 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Url-Extractor-Extension',
638 - 'leftsub_order_level2' => 9,
639 - 'level' => 2,
640 - 'active_path' => array( 'Extensions-Mainwp-Url-Extractor-Extension' => 'managesites' ),
641 - ),
642 - );
671 + $extensions_and_leftmenus[] = array(
672 + 'type' => 'extension',
673 + 'title' => esc_html__( 'WP Compress', 'mainwp' ),
674 + 'slug' => 'wp-compress-mainwp/wp-compress-main-wp.php',
675 + 'parent_key' => 'Extensions-Mainwp-Performance',
676 + 'ext_page' => 'admin.php?page=Extensions-Wp-Compress-Mainwp',
677 + 'leftsub_order_level2' => 4,
678 + 'level' => 2,
679 + 'active_path' => array( 'Extensions-Wp-Compress-Mainwp' => 'managesites' ),
680 + );
643 681
644 - MainWP_Menu::add_left_menu(
645 - array(
646 - 'title' => esc_html__( 'Performance', 'mainwp' ),
647 - 'parent_key' => 'managesites',
648 - 'slug' => 'Extensions-Mainwp-Performance',
649 - 'href' => 'admin.php?page=Extensions-Mainwp-Performance',
650 - 'leftsub_order' => 8.6,
651 - ),
652 - 1
653 - );
682 + $extensions_and_leftmenus[] = array(
683 + 'type' => 'extension',
684 + 'title' => esc_html__( 'Comments', 'mainwp' ),
685 + 'slug' => 'mainwp-comments-extension/mainwp-comments-extension.php',
686 + 'parent_key' => 'Extensions-Mainwp-Content-Operations',
687 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Comments-Extension',
688 + 'leftsub_order_level2' => 2.1,
689 + 'level' => 2,
690 + 'active_path' => array( 'Extensions-Mainwp-Comments-Extension' => 'managesites' ),
691 + );
654 692
655 - self::add_extension_menu(
656 - array(
657 - 'title' => esc_html__( 'Cache Control', 'mainwp' ),
658 - 'slug' => 'mainwp-cache-control-extension/mainwp-cache-control-extension.php',
659 - 'parent_key' => 'Extensions-Mainwp-Performance',
660 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Cache-Control-Extension',
661 - 'leftsub_order_level2' => 1,
662 - 'level' => 2,
663 - 'active_path' => array( 'Extensions-Mainwp-Cache-Control-Extension' => 'managesites' ),
664 - ),
665 - );
693 + $extensions_and_leftmenus[] = array(
694 + 'type' => 'extension',
695 + 'title' => esc_html__( 'Clone', 'mainwp' ),
696 + 'slug' => 'mainwp-clone-extension/mainwp-clone-extension.php',
697 + 'parent_key' => 'managesites',
698 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Clone-Extension',
699 + 'leftsub_order_level2' => 5,
700 + 'level' => 2,
701 + 'active_path' => array( 'Extensions-Mainwp-Clone-Extension' => 'managesites' ),
702 + );
666 703
667 - self::add_extension_menu(
668 - array(
669 - 'title' => esc_html__( 'Maintenance', 'mainwp' ),
670 - 'slug' => 'mainwp-maintenance-extension/mainwp-maintenance-extension.php',
671 - 'parent_key' => 'Extensions-Mainwp-Performance',
672 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Maintenance-Extension',
673 - 'leftsub_order_level2' => 2,
674 - 'level' => 2,
675 - 'active_path' => array( 'Extensions-Mainwp-Maintenance-Extension' => 'managesites' ),
676 - ),
677 - );
704 + $extensions_and_leftmenus[] = array(
705 + 'type' => 'extension',
706 + 'title' => esc_html__( 'Article Uploader', 'mainwp' ),
707 + 'slug' => 'mainwp-article-uploader-extension/mainwp-article-uploader-extension.php',
708 + 'parent_key' => 'Extensions-Mainwp-Content-Operations',
709 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Article-Uploader-Extension',
710 + 'leftsub_order_level2' => 3,
711 + 'level' => 2,
712 + 'active_path' => array( 'Extensions-Mainwp-Article-Uploader-Extension' => 'managesites' ),
713 + );
678 714
679 - self::add_extension_menu(
680 - array(
681 - 'title' => esc_html__( 'Rocket', 'mainwp' ),
682 - 'slug' => 'mainwp-rocket-extension/mainwp-rocket-extension.php',
683 - 'parent_key' => 'Extensions-Mainwp-Performance',
684 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Rocket-Extension',
685 - 'leftsub_order_level2' => 3,
686 - 'level' => 2,
687 - 'active_path' => array( 'Extensions-Mainwp-Rocket-Extension' => 'managesites' ),
688 - ),
689 - );
715 + $extensions_and_leftmenus[] = array(
716 + 'type' => 'extension',
717 + 'title' => esc_html__( 'Manage Boilerplates', 'mainwp' ),
718 + 'slug' => 'boilerplate-extension/boilerplate-extension.php',
719 + 'parent_key' => 'Extensions-Mainwp-Content-Operations',
720 + 'ext_page' => 'admin.php?page=Extensions-Boilerplate-Extension',
721 + 'leftsub_order_level2' => 2,
722 + 'level' => 2,
723 + 'active_path' => array( 'Extensions-Boilerplate-Extension' => 'managesites' ),
724 + );
690 725
691 - self::add_extension_menu(
692 - array(
693 - 'title' => esc_html__( 'WP Compress', 'mainwp' ),
694 - 'slug' => 'wp-compress-mainwp/wp-compress-main-wp.php',
695 - 'parent_key' => 'Extensions-Mainwp-Performance',
696 - 'ext_page' => 'admin.php?page=Extensions-Wp-Compress-Mainwp',
697 - 'leftsub_order_level2' => 4,
698 - 'level' => 2,
699 - 'active_path' => array( 'Extensions-Wp-Compress-Mainwp' => 'managesites' ),
700 - ),
701 - );
726 + $extensions_and_leftmenus[] = array(
727 + 'type' => 'extension',
728 + 'title' => esc_html__( 'Post Dripper', 'mainwp' ),
729 + 'slug' => 'mainwp-post-dripper-extension/mainwp-post-dripper-extension.php',
730 + 'parent_key' => 'Extensions-Mainwp-Content-Operations',
731 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Post-Dripper-Extension',
732 + 'leftsub_order_level2' => 4,
733 + 'level' => 2,
734 + );
702 735
703 - self::add_extension_menu(
704 - array(
705 - 'title' => esc_html__( 'Comments', 'mainwp' ),
706 - 'slug' => 'mainwp-comments-extension/mainwp-comments-extension.php',
707 - 'parent_key' => 'PostBulkManage',
708 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Comments-Extension',
709 - 'leftsub_order_level2' => 2.1,
710 - 'level' => 2,
711 - 'active_path' => array( 'Extensions-Mainwp-Comments-Extension' => 'managesites' ),
712 - ),
713 - );
736 + $extensions_and_leftmenus[] = array(
737 + 'type' => 'extension',
738 + 'title' => esc_html__( 'Post Plus', 'mainwp' ),
739 + 'slug' => 'mainwp-post-plus-extension/mainwp-post-plus-extension.php',
740 + 'parent_key' => 'Extensions-Mainwp-Content-Operations',
741 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Post-Plus-Extension',
742 + 'leftsub_order_level2' => 5,
743 + 'level' => 2,
744 + );
714 745
715 - self::add_extension_menu(
716 - array(
717 - 'title' => esc_html__( 'Comments', 'mainwp' ),
718 - 'slug' => 'mainwp-comments-extension/mainwp-comments-extension.php',
719 - 'parent_key' => 'PageBulkManage',
720 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Comments-Extension',
721 - 'leftsub_order_level2' => 2.1,
722 - 'level' => 2,
723 - 'active_path' => array( 'Extensions-Mainwp-Comments-Extension' => 'managesites' ),
724 - ),
725 - );
746 + $extensions_and_leftmenus[] = array(
747 + 'type' => 'extension',
748 + 'title' => esc_html__( 'Pro Reports', 'mainwp' ),
749 + 'slug' => 'mainwp-pro-reports-extension/mainwp-pro-reports-extension.php',
750 + 'parent_key' => 'ManageClients',
751 + 'ext_page' => 'admin.php?page=Extensions-Mainwp-Pro-Reports-Extension',
752 + 'leftsub_order_level2' => 4,
753 + 'level' => 2,
754 + 'active_path' => array( 'Extensions-Mainwp-Pro-Reports-Extension' => 'ManageClients' ),
755 + );
726 756
727 - self::add_extension_menu(
728 - array(
729 - 'title' => esc_html__( 'Clone', 'mainwp' ),
730 - 'slug' => 'mainwp-clone-extension/mainwp-clone-extension.php',
731 - 'parent_key' => 'managesites',
732 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Clone-Extension',
733 - 'leftsub_order_level2' => 5,
734 - 'level' => 2,
735 - 'active_path' => array( 'Extensions-Mainwp-Clone-Extension' => 'managesites' ),
736 - ),
737 - );
757 + if ( defined( 'MAINWP_MODULE_COST_TRACKER_ENABLED' ) && MAINWP_MODULE_COST_TRACKER_ENABLED ) {
758 + $extensions_and_leftmenus[] = array(
759 + 'type' => 'extension',
760 + 'title' => esc_html__( 'Cost Tracker Assistant', 'mainwp' ),
761 + 'slug' => 'mainwp-cost-tracker-assistant-extension/mainwp-cost-tracker-assistant-extension.php',
762 + 'parent_key' => 'ManageCostTracker',
763 + 'ext_page' => 'admin.php?page=ManageCostTracker',
764 + 'leftsub_order_level2' => 4,
765 + 'level' => 2,
766 + );
767 + }
738 768
739 - self::add_extension_menu(
740 - array(
741 - 'title' => esc_html__( 'Article Uploader', 'mainwp' ),
742 - 'slug' => 'mainwp-article-uploader-extension/mainwp-article-uploader-extension.php',
743 - 'parent_key' => 'PostBulkManage',
744 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Article-Uploader-Extension',
745 - 'leftsub_order_level2' => 3,
746 - 'level' => 2,
747 - 'active_path' => array( 'Extensions-Mainwp-Article-Uploader-Extension' => 'managesites' ),
748 - ),
749 - );
769 + $extensions_and_leftmenus[] = array(
770 + 'type' => 'extension',
771 + 'title' => esc_html__( 'WordPress SEO', 'mainwp' ),
772 + 'slug' => 'wordpress-seo-extension/wordpress-seo-extension.php',
773 + 'parent_key' => 'Extensions-Mainwp-Content-Operations',
774 + 'ext_page' => 'admin.php?page=Extensions-Wordpress-Seo-Extension',
775 + 'leftsub_order_level2' => 6,
776 + 'level' => 2,
777 + );
750 778
751 - self::add_extension_menu(
752 - array(
753 - 'title' => esc_html__( 'Post Dripper', 'mainwp' ),
754 - 'slug' => 'mainwp-post-dripper-extension/mainwp-post-dripper-extension.php',
755 - 'parent_key' => 'PostBulkManage',
756 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Post-Dripper-Extension',
757 - 'leftsub_order_level2' => 4,
758 - 'level' => 2,
759 - 'active_path' => array( 'Extensions-Mainwp-Post-Dripper-Extension' => 'managesites' ),
760 - ),
761 - );
779 + $extensions_and_leftmenus[] = array(
780 + 'type' => 'extension',
781 + 'title' => esc_html__( 'SEOPress', 'mainwp' ),
782 + 'slug' => 'seopress-for-mainwp/seopress-for-mainwp.php',
783 + 'parent_key' => 'Extensions-Mainwp-Content-Operations',
784 + 'ext_page' => 'admin.php?page=Extensions-Seopress-For-Mainwp',
785 + 'leftsub_order_level2' => 6,
786 + 'level' => 2,
787 + );
762 788
763 - self::add_extension_menu(
764 - array(
765 - 'title' => esc_html__( 'Post Plus', 'mainwp' ),
766 - 'slug' => 'mainwp-post-plus-extension/mainwp-post-plus-extension.php',
767 - 'parent_key' => 'PostBulkManage',
768 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Post-Plus-Extension',
769 - 'leftsub_order_level2' => 5,
770 - 'level' => 2,
771 - 'active_path' => array( 'Extensions-Mainwp-Post-Plus-Extension' => 'managesites' ),
772 - ),
773 - );
789 + $extensions_and_leftmenus = apply_filters( 'mainwp_menu_extensions_left_menu', $extensions_and_leftmenus );
774 790
775 - self::add_extension_menu(
776 - array(
777 - 'title' => esc_html__( 'Post Dripper', 'mainwp' ),
778 - 'slug' => 'mainwp-post-dripper-extension/mainwp-post-dripper-extension.php',
779 - 'parent_key' => 'PageBulkManage',
780 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Post-Dripper-Extension',
781 - 'leftsub_order_level2' => 4,
782 - 'level' => 2,
783 - 'active_path' => array( 'Extensions-Mainwp-Post-Dripper-Extension' => 'managesites' ),
784 - ),
785 - );
791 + foreach ( $extensions_and_leftmenus as $item ) {
792 + if ( isset( $item['type'] ) && 'extension' === $item['type'] ) {
793 + static::add_extension_menu( $item );
794 + } else {
795 + $level = isset( $item['level'] ) ? intval( $item['level'] ) : 1;
796 + MainWP_Menu::add_left_menu( $item, $level );
797 + }
798 + }
799 + // @NO_SONAR_END@ .
800 + global $_mainwp_menu_active_slugs;
786 801
787 - self::add_extension_menu(
788 - array(
789 - 'title' => esc_html__( 'Post Plus', 'mainwp' ),
790 - 'slug' => 'mainwp-post-plus-extension/mainwp-post-plus-extension.php',
791 - 'parent_key' => 'PageBulkManage',
792 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Post-Plus-Extension',
793 - 'leftsub_order_level2' => 5,
794 - 'level' => 2,
795 - 'active_path' => array( 'Extensions-Mainwp-Post-Plus-Extension' => 'managesites' ),
796 - ),
797 - );
802 + $active_slugs = array(
803 + 'Extensions-Mainwp-Content-Operations' => 'Extensions-Mainwp-Content-Operations',
804 + 'Extensions-Mainwp-Backups' => 'Extensions-Mainwp-Backups',
805 + 'Extensions-Mainwp-Security' => 'Extensions-Mainwp-Security',
806 + 'Extensions-Mainwp-Analytics' => 'Extensions-Mainwp-Analytics',
807 + 'Extensions-Mainwp-Monitoring' => 'Extensions-Mainwp-Monitoring',
808 + 'Extensions-Mainwp-Agency' => 'Extensions-Mainwp-Agency',
809 + 'Extensions-Mainwp-Administrative' => 'Extensions-Mainwp-Administrative',
810 + 'Extensions-Mainwp-Performance' => 'Extensions-Mainwp-Performance',
811 + );
812 + // to fix activate menus state.
813 + foreach ( $active_slugs as $item => $act_slug ) {
814 + MainWP_Menu::set_menu_active_slugs( $item, $act_slug );
815 + }
816 + }
798 817
799 - self::add_extension_menu(
800 - array(
801 - 'title' => esc_html__( 'Pro Reports', 'mainwp' ),
802 - 'slug' => 'mainwp-pro-reports-extension/mainwp-pro-reports-extension.php',
803 - 'parent_key' => 'ManageClients',
804 - 'ext_page' => 'admin.php?page=Extensions-Mainwp-Pro-Reports-Extension',
805 - 'leftsub_order_level2' => 4,
806 - 'level' => 2,
807 - 'active_path' => array( 'Extensions-Mainwp-Pro-Reports-Extension' => 'ManageClients' ),
808 - ),
809 - );
818 + /**
819 + * Method render_extensions_groups()
820 + *
821 + * @param string $plugin_slug The extension's slug.
822 + *
823 + * @return bool file existed.
824 + */
825 + public static function extension_is_installed( $plugin_slug ) {
826 + return file_exists( WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $plugin_slug ) ? true : false;
827 + }
810 828
811 - self::add_extension_menu(
812 - array(
813 - 'title' => esc_html__( 'Cost Tracker Assistant', 'mainwp' ),
814 - 'slug' => 'mainwp-cost-tracker-assistant-extension/mainwp-cost-tracker-assistant-extension.php',
815 - 'parent_key' => 'ManageCostTracker',
816 - 'ext_page' => 'admin.php?page=ManageCostTracker',
817 - 'leftsub_order_level2' => 4,
818 - 'level' => 2,
819 - ),
820 - );
829 + /**
830 + * Method add_extension_menu()
831 + *
832 + * @param array $params The extension's params.
833 + */
834 + public static function add_extension_menu( $params = array() ) {
821 835
822 - self::add_extension_menu(
823 - array(
824 - 'title' => esc_html__( 'WordPress SEO', 'mainwp' ),
825 - 'slug' => 'wordpress-seo-extension/wordpress-seo-extension.php',
826 - 'parent_key' => 'PostBulkManage',
827 - 'ext_page' => 'admin.php?page=Extensions-Wordpress-Seo-Extension',
828 - 'leftsub_order_level2' => 6,
829 - 'level' => 2,
830 - 'active_path' => array( 'Extensions-Wordpress-Seo-Extension' => 'ManageClients' ),
831 - ),
832 - );
836 + $title = $params['title'];
837 + $ext_page = $params['ext_page'];
838 + $plugin_slug = $params['slug'];
839 + $parent_key = $params['parent_key'];
840 + $level = $params['level'];
841 + $nosubmenu = isset( $params['nosubmenu'] ) && $params['nosubmenu'] ? true : false;
842 + $leftsub_order = isset( $params['leftsub_order'] ) ? $params['leftsub_order'] : false;
843 + $leftsub_order_level2 = isset( $params['leftsub_order_level2'] ) ? $params['leftsub_order_level2'] : false;
833 844
834 - self::add_extension_menu(
835 - array(
836 - 'title' => esc_html__( 'WordPress SEO', 'mainwp' ),
837 - 'slug' => 'wordpress-seo-extension/wordpress-seo-extension.php',
838 - 'parent_key' => 'PageBulkManage',
839 - 'ext_page' => 'admin.php?page=Extensions-Wordpress-Seo-Extension',
840 - 'leftsub_order_level2' => 6,
841 - 'level' => 2,
842 - 'active_path' => array( 'Extensions-Wordpress-Seo-Extension' => 'ManageClients' ),
843 - ),
844 - );
845 + if ( 'mainwp-api-backpus' === $plugin_slug ) {
846 + $activated_ext = true;
847 + $href = $ext_page;
848 + } else {
849 + $activated_ext = is_plugin_active( $plugin_slug ) ? true : false;
845 850
846 - self::add_extension_menu(
847 - array(
848 - 'title' => esc_html__( 'SEOPress', 'mainwp' ),
849 - 'slug' => 'seopress-for-mainwp/seopress-for-mainwp.php',
850 - 'parent_key' => 'PostBulkManage',
851 - 'ext_page' => 'admin.php?page=Extensions-Seopress-For-Mainwp',
852 - 'leftsub_order_level2' => 6,
853 - 'level' => 2,
854 - 'active_path' => array( 'Extensions-Seopress-For-Mainwp' => 'ManageClients' ),
855 - ),
856 - );
851 + if ( $activated_ext ) {
852 + $href = $ext_page;
853 + } else {
854 + $href = '#';
855 + //phpcs:disable Squiz.PHP.CommentedOutCode.Found
856 + // $href = 'admin.php?page=Extensions';
857 + // if ( ! static::extension_is_installed( $plugin_slug ) ) {
858 + // $href .= '&message=install-ext-' . dirname( $plugin_slug );
859 + // }
860 + //phpcs:enable
861 + }
862 + }
857 863
858 - self::add_extension_menu(
859 - array(
860 - 'title' => esc_html__( 'SEOPress', 'mainwp' ),
861 - 'slug' => 'seopress-for-mainwp/seopress-for-mainwp.php',
862 - 'parent_key' => 'PageBulkManage',
863 - 'ext_page' => 'admin.php?page=Extensions-Seopress-For-Mainwp',
864 - 'leftsub_order_level2' => 6,
865 - 'level' => 2,
866 - 'active_path' => array( 'Extensions-Seopress-For-Mainwp' => 'ManageClients' ),
867 - ),
868 - );
864 + $menu_params = array(
865 + 'title' => $title,
866 + 'parent_key' => $parent_key,
867 + 'href' => $href,
868 + 'nosubmenu' => $nosubmenu,
869 + 'ext_status' => $activated_ext ? 'activated' : 'inactive',
870 + );
869 871
870 - global $_mainwp_menu_active_slugs;
872 + if ( false !== $leftsub_order ) {
873 + $menu_params['leftsub_order'] = $leftsub_order;
874 + }
871 875
872 - $active_slugs = array(
873 - 'Extensions-Mainwp-Backups' => 'Extensions-Mainwp-Backups',
874 - 'Extensions-Mainwp-Security' => 'Extensions-Mainwp-Security',
875 - 'Extensions-Mainwp-Analytics' => 'Extensions-Mainwp-Analytics',
876 - 'Extensions-Mainwp-Monitoring' => 'Extensions-Mainwp-Monitoring',
877 - 'Extensions-Mainwp-Agency' => 'Extensions-Mainwp-Agency',
878 - 'Extensions-Mainwp-Administrative' => 'Extensions-Mainwp-Administrative',
879 - 'Extensions-Mainwp-Development' => 'Extensions-Mainwp-Development',
880 - 'Extensions-Mainwp-Performance' => 'Extensions-Mainwp-Performance',
881 - );
882 - // to fix activate menus state.
883 - foreach ( $active_slugs as $item => $act_slug ) {
884 - MainWP_Menu::set_menu_active_slugs( $item, $act_slug );
885 - }
886 - }
876 + if ( false !== $leftsub_order_level2 ) {
877 + $menu_params['leftsub_order_level2'] = $leftsub_order_level2;
878 + }
887 879
888 - /**
889 - * Method render_extensions_groups()
890 - *
891 - * @param string $plugin_slug The extension's slug.
892 - *
893 - * @return bool file existed.
894 - */
895 - public static function extension_is_installed( $plugin_slug ) {
896 - return file_exists( WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $plugin_slug ) ? true : false;
897 - }
880 + if ( isset( $params['active_path'] ) ) {
881 + $menu_params['active_path'] = $params['active_path'];
882 + }
883 + MainWP_Menu::add_left_menu( $menu_params, $level );
884 + }
898 885
899 - /**
900 - * Method add_extension_menu()
901 - *
902 - * @param array $params The extension's params.
903 - */
904 - public static function add_extension_menu( $params = array() ) {
886 + /**
887 + * Method render_extensions_groups()
888 + *
889 + * @return void
890 + */
891 + public static function render_extensions_groups() { //phpcs:ignore -- NOSONAR - complex method.
905 892
906 - $title = $params['title'];
907 - $ext_page = $params['ext_page'];
908 - $plugin_slug = $params['slug'];
909 - $parent_key = $params['parent_key'];
910 - $level = $params['level'];
911 - $nosubmenu = isset( $params['nosubmenu'] ) && $params['nosubmenu'] ? true : false;
912 - $leftsub_order = isset( $params['leftsub_order'] ) ? $params['leftsub_order'] : false;
913 - $leftsub_order_level2 = isset( $params['leftsub_order_level2'] ) ? $params['leftsub_order_level2'] : false;
893 + $get_ext_group = array();
914 894
915 - if ( 'mainwp-api-backpus' === $plugin_slug ) {
916 - $activated_ext = true;
917 - $href = $ext_page;
918 - } else {
919 - $activated_ext = is_plugin_active( $plugin_slug ) ? true : false;
895 + //phpcs:disable WordPress.Security.NonceVerification.Recommended
896 + if ( isset( $_GET['page'] ) ) {
897 + if ( 'Extensions-Mainwp-Backups' === $_GET['page'] ) {
898 + $get_ext_group[] = 'backup';
899 + } elseif ( 'Extensions-Mainwp-Security' === $_GET['page'] ) {
900 + $get_ext_group[] = 'security';
901 + } elseif ( 'Extensions-Mainwp-Analytics' === $_GET['page'] ) {
902 + $get_ext_group[] = 'visitor';
903 + } elseif ( 'Extensions-Mainwp-Monitoring' === $_GET['page'] ) {
904 + $get_ext_group[] = 'monitoring';
905 + } elseif ( 'Extensions-Mainwp-Agency' === $_GET['page'] ) {
906 + $get_ext_group[] = 'agency';
907 + } elseif ( 'Extensions-Mainwp-Administrative' === $_GET['page'] ) {
908 + $get_ext_group[] = 'admin';
909 + } elseif ( 'Extensions-Mainwp-Performance' === $_GET['page'] ) {
910 + $get_ext_group[] = 'performance';
911 + } elseif ( 'Extensions-Mainwp-Content-Operations' === $_GET['page'] ) {
912 + $get_ext_group[] = 'content';
913 + }
914 + }
915 + //phpcs:enable
920 916
921 - if ( $activated_ext ) {
922 - $href = $ext_page;
923 - } else {
924 - $href = '#';
925 - //phpcs:disable Squiz.PHP.CommentedOutCode.Found
926 - // $href = 'admin.php?page=Extensions';
927 - // if ( ! self::extension_is_installed( $plugin_slug ) ) {
928 - // $href .= '&message=install-ext-' . dirname( $plugin_slug );
929 - // }
930 - //phpcs:enable
931 - }
932 - }
917 + if ( empty( $get_ext_group ) ) {
918 + return;
919 + }
933 920
934 - $menu_params = array(
935 - 'title' => $title,
936 - 'parent_key' => $parent_key,
937 - 'href' => $href,
938 - 'nosubmenu' => $nosubmenu,
939 - 'ext_status' => $activated_ext ? 'activated' : 'inactive',
940 - );
921 + $extension_update = get_site_transient( 'update_plugins' );
941 922
942 - if ( false !== $leftsub_order ) {
943 - $menu_params['leftsub_order'] = $leftsub_order;
944 - }
923 + $extensions = MainWP_Extensions_Handler::get_extensions();
945 924
946 - if ( false !== $leftsub_order_level2 ) {
947 - $menu_params['leftsub_order_level2'] = $leftsub_order_level2;
948 - }
925 + $group_available_extensions = MainWP_Extensions_View::get_available_extensions( false, $get_ext_group );
949 926
950 - if ( isset( $params['active_path'] ) ) {
951 - $menu_params['active_path'] = $params['active_path'];
952 - }
953 - MainWP_Menu::add_left_menu( $menu_params, $level );
954 - }
927 + $extensions_disabled = MainWP_Extensions_Handler::get_extensions_disabled();
955 928
956 - /**
957 - * Method render_extensions_groups()
958 - *
959 - * @return void
960 - */
961 - public static function render_extensions_groups() { //phpcs:ignore -- complex method.
929 + $extensions_not_installed = MainWP_Extensions_Handler::get_extensions_not_installed();
962 930
963 - $get_ext_group = array();
931 + $excluded_extensions = array();
964 932
965 - //phpcs:disable WordPress.Security.NonceVerification.Recommended
966 - if ( isset( $_GET['page'] ) ) {
967 - if ( 'Extensions-Mainwp-Backups' === $_GET['page'] ) {
968 - $get_ext_group[] = 'backup';
969 - } elseif ( 'Extensions-Mainwp-Security' === $_GET['page'] ) {
970 - $get_ext_group[] = 'security';
971 - } elseif ( 'Extensions-Mainwp-Analytics' === $_GET['page'] ) {
972 - $get_ext_group[] = 'visitor';
973 - } elseif ( 'Extensions-Mainwp-Monitoring' === $_GET['page'] ) {
974 - $get_ext_group[] = 'monitoring';
975 - } elseif ( 'Extensions-Mainwp-Agency' === $_GET['page'] ) {
976 - $get_ext_group[] = 'agency';
977 - } elseif ( 'Extensions-Mainwp-Administrative' === $_GET['page'] ) {
978 - $get_ext_group[] = 'admin';
979 - } elseif ( 'Extensions-Mainwp-Development' === $_GET['page'] ) {
980 - $get_ext_group[] = 'development';
981 - } elseif ( 'Extensions-Mainwp-Performance' === $_GET['page'] ) {
982 - $get_ext_group[] = 'performance';
983 - }
984 - }
985 - //phpcs:enable
933 + do_action( 'mainwp_pageheader_extensions' );
934 + ?>
935 + <div class="ui segment">
936 + <div class="ui three mainwp-cards cards" id="mainwp-extensions-list">
937 + <?php if ( isset( $_GET['page'] ) && 'Extensions-Mainwp-Backups' === $_GET['page'] ) : //phpcs:ignore WordPress.Security.NonceVerification.Recommended ?>
938 + <div class="ui extension card">
939 + <div class="content">
940 + <img class="right floated mini ui image" alt="<?php esc_attr_e( 'Add-on icon placeholder', 'mainwp' ); ?>" src="<?php echo esc_url( MAINWP_PLUGIN_URL ) . 'assets/images/extensions/placeholder.png'; ?>">
941 + <div class="header"><a href="admin.php?page=ManageApiBackups"><?php esc_html_e( 'API Backpus', 'mainwp' ); ?></a></div>
942 + <a href="admin.php?page=ManageApiBackups" class="ui green ribbon label"><?php echo esc_html__( ' MainWP core feature', 'mainwp' ); ?></a>
943 + <div class="description"><?php esc_html_e( 'Manage host-side backups via REST API. Currently, the supported providers are Cloudways, GridPane, Digital Ocean, Linode, Vultr and cPanel.', 'mainwp' ); ?></div>
944 + </div>
945 + </div>
946 + <?php endif; ?>
947 + <?php if ( isset( $_GET['page'] ) && 'Extensions-Mainwp-Monitoring' === $_GET['page'] ) : //phpcs:ignore WordPress.Security.NonceVerification.Recommended ?>
948 + <div class="ui extension card">
949 + <div class="content">
950 + <img class="right floated mini ui image" alt="<?php esc_attr_e( 'Add-on icon placeholder', 'mainwp' ); ?>" src="<?php echo esc_url( MAINWP_PLUGIN_URL ) . 'assets/images/extensions/placeholder.png'; ?>">
951 + <div class="header"><a href="admin.php?page=MonitoringSites"><?php esc_html_e( 'Uptime Monitoring', 'mainwp' ); ?></a></div>
952 + <a href="admin.php?page=MonitoringSites" class="ui green ribbon label"><?php echo esc_html__( 'MainWP core feature', 'mainwp' ); ?></a>
953 + <div class="description"><?php esc_html_e( 'The MainWP Uptime Monitoring function operates independently of third-party services, providing a straightforward and no-cost option for uptime monitoring across all your managed sites.', 'mainwp' ); ?></div>
954 + </div>
955 + </div>
956 + <?php endif; ?>
986 957
987 - if ( empty( $get_ext_group ) ) {
988 - return;
989 - }
958 + <?php if ( isset( $extensions ) && is_array( $extensions ) ) { ?>
959 + <?php foreach ( $extensions as $extension ) { ?>
960 + <?php
961 + if ( ! \mainwp_current_user_can( 'extension', dirname( $extension['slug'] ) ) ) {
962 + continue;
963 + }
990 964
991 - $extension_update = get_site_transient( 'update_plugins' );
965 + if ( ! isset( $group_available_extensions[ dirname( $extension['slug'] ) ] ) ) {
966 + continue;
967 + }
992 968
993 - $extensions = MainWP_Extensions_Handler::get_extensions();
969 + if ( in_array( dirname( $extension['slug'] ), $excluded_extensions ) ) {
970 + continue;
971 + }
994 972
995 - $group_available_extensions = MainWP_Extensions_View::get_available_extensions( false, $get_ext_group );
973 + $extensions_data = isset( $group_available_extensions[ dirname( $extension['slug'] ) ] ) ? $group_available_extensions[ dirname( $extension['slug'] ) ] : array();
996 974
997 - $extensions_disabled = MainWP_Extensions_Handler::get_extensions_disabled();
975 + if ( isset( $extensions_data['img'] ) && ! empty( $extensions_data['img'] ) ) {
976 + $img_url = $extensions_data['img'];
977 + } elseif ( isset( $extension['icon'] ) && ! empty( $extension['icon'] ) ) {
978 + $img_url = $extension['icon'];
979 + } elseif ( isset( $extension['iconURI'] ) && '' !== $extension['iconURI'] ) {
980 + $img_url = MainWP_Utility::remove_http_prefix( $extension['iconURI'] );
981 + } else {
982 + $img_url = MAINWP_PLUGIN_URL . 'assets/images/extensions/placeholder.png';
983 + }
998 984
999 - $extensions_not_installed = MainWP_Extensions_Handler::get_extensions_not_installed();
985 + MainWP_Extensions_View::render_extension_card( $extension, $extension_update, $img_url, false, true );
986 + ?>
1000 987
1001 - $excluded_extensions = array();
988 + <?php } ?>
989 + <?php } ?>
1002 990
1003 - do_action( 'mainwp_pageheader_extensions' );
1004 - ?>
1005 - <div class="ui segment">
1006 - <div class="ui four stackable cards" id="mainwp-extensions-list">
1007 - <?php if ( isset( $_GET['page'] ) && 'Extensions-Mainwp-Backups' === $_GET['page'] ) : //phpcs:ignore WordPress.Security.NonceVerification.Recommended ?>
1008 - <div class="ui extension card">
1009 - <div class="content">
1010 - <img class="right floated mini ui image" src="<?php echo esc_url( MAINWP_PLUGIN_URL ) . 'assets/images/extensions/placeholder.png'; ?>">
1011 - <div class="header"><a href="admin.php?page=ManageApiBackups"><?php esc_html_e( 'API Backpus', 'mainwp' ); ?></a></div>
1012 - <a href="admin.php?page=ManageApiBackups" class="ui green ribbon label"><?php echo esc_html__( ' MainWP core feature', 'mainwp' ); ?></a>
1013 - <div class="description"><?php esc_html_e( 'Manage host-side backups via REST API. Currently, the supported providers are Cloudways, GridPane, Digital Ocean, Linode, Vultr and cPanel.', 'mainwp' ); ?></div>
1014 - </div>
1015 - </div>
1016 - <?php endif; ?>
1017 - <?php if ( isset( $_GET['page'] ) && 'Extensions-Mainwp-Monitoring' === $_GET['page'] ) : //phpcs:ignore WordPress.Security.NonceVerification.Recommended ?>
1018 - <div class="ui extension card">
1019 - <div class="content">
1020 - <img class="right floated mini ui image" src="<?php echo esc_url( MAINWP_PLUGIN_URL ) . 'assets/images/extensions/placeholder.png'; ?>">
1021 - <div class="header"><a href="admin.php?page=MonitoringSites"><?php esc_html_e( 'Basic Monitoring', 'mainwp' ); ?></a></div>
1022 - <a href="admin.php?page=MonitoringSites" class="ui green ribbon label"><?php echo esc_html__( 'MainWP core feature', 'mainwp' ); ?></a>
1023 - <div class="description"><?php esc_html_e( 'The MainWP Basic Uptime Monitoring function operates independently of third-party services, providing a straightforward and no-cost option for uptime monitoring across all your managed sites.', 'mainwp' ); ?></div>
1024 - </div>
1025 - </div>
1026 - <?php endif; ?>
1027 - <?php if ( isset( $extensions ) && is_array( $extensions ) ) { ?>
1028 -
1029 - <?php foreach ( $extensions as $extension ) { ?>
1030 - <?php
1031 - if ( ! mainwp_current_user_have_right( 'extension', dirname( $extension['slug'] ) ) ) {
1032 - continue;
1033 - }
991 + <?php if ( is_array( $extensions_disabled ) ) { ?>
992 + <?php foreach ( $extensions_disabled as $extension ) { ?>
993 + <?php
994 + $slug = dirname( $extension['slug'] );
1034 995
1035 - if ( ! isset( $group_available_extensions[ dirname( $extension['slug'] ) ] ) ) {
1036 - continue;
1037 - }
996 + if ( ! isset( $group_available_extensions[ $slug ] ) ) {
997 + continue;
998 + }
1038 999
1039 - if ( in_array( dirname( $extension['slug'] ), $excluded_extensions ) ) {
1040 - continue;
1041 - }
1000 + if ( in_array( $slug, $excluded_extensions ) ) {
1001 + continue;
1002 + }
1042 1003
1043 - $extensions_data = isset( $group_available_extensions[ dirname( $extension['slug'] ) ] ) ? $group_available_extensions[ dirname( $extension['slug'] ) ] : array();
1004 + $extensions_data = $group_available_extensions[ $slug ];
1044 1005
1045 - if ( isset( $extensions_data['img'] ) && ! empty( $extensions_data['img'] ) ) {
1046 - $img_url = $extensions_data['img'];
1047 - } elseif ( isset( $extension['icon'] ) && ! empty( $extension['icon'] ) ) {
1048 - $img_url = $extension['icon'];
1049 - } elseif ( isset( $extension['iconURI'] ) && '' !== $extension['iconURI'] ) {
1050 - $img_url = MainWP_Utility::remove_http_prefix( $extension['iconURI'] );
1051 - } else {
1052 - $img_url = MAINWP_PLUGIN_URL . 'assets/images/extensions/placeholder.png';
1053 - }
1006 + if ( isset( $extensions_data['img'] ) && ! empty( $extensions_data['img'] ) ) {
1007 + $img_url = $extensions_data['img']; // icon from the available extensions in dashboard.
1008 + } elseif ( isset( $extension['icon'] ) && ! empty( $extension['icon'] ) ) {
1009 + $img_url = $extension['icon']; // icon from the get_this_extension().
1010 + } elseif ( isset( $extension['iconURI'] ) && '' !== $extension['iconURI'] ) {
1011 + $img_url = MainWP_Utility::remove_http_prefix( $extension['iconURI'] ); // icon from the extension header.
1012 + } else {
1013 + $img_url = MAINWP_PLUGIN_URL . 'assets/images/extensions/placeholder.png';
1014 + }
1054 1015
1055 - MainWP_Extensions_View::render_extension_card( $extension, $extension_update, $img_url, false, true );
1056 - ?>
1016 + MainWP_Extensions_View::render_inactive_extension_card( $extension, $img_url, true );
1017 + ?>
1057 1018
1058 - <?php } ?>
1059 - <?php } ?>
1019 + <?php } ?>
1020 + <?php } ?>
1060 1021
1061 - <?php if ( is_array( $extensions_disabled ) ) { ?>
1062 - <?php foreach ( $extensions_disabled as $extension ) { ?>
1063 - <?php
1064 - $slug = dirname( $extension['slug'] );
1022 + <?php if ( is_array( $extensions_not_installed ) ) { ?>
1023 + <?php foreach ( $extensions_not_installed as $slug => $extension ) { ?>
1024 + <?php
1065 1025
1066 - if ( ! isset( $group_available_extensions[ $slug ] ) ) {
1067 - continue;
1068 - }
1026 + if ( ! isset( $group_available_extensions[ $slug ] ) ) {
1027 + continue;
1028 + }
1069 1029
1070 - if ( in_array( $slug, $excluded_extensions ) ) {
1071 - continue;
1072 - }
1030 + if ( in_array( $slug, $excluded_extensions ) ) {
1031 + continue;
1032 + }
1073 1033
1074 - $extensions_data = $group_available_extensions[ $slug ];
1034 + if ( isset( $extension['img'] ) && ! empty( $extension['img'] ) ) {
1035 + $img_url = $extension['img']; // icon from the available extensions in dashboard.
1036 + } else {
1037 + $img_url = MAINWP_PLUGIN_URL . 'assets/images/extensions/placeholder.png';
1038 + }
1075 1039
1076 - if ( isset( $extensions_data['img'] ) && ! empty( $extensions_data['img'] ) ) {
1077 - $img_url = $extensions_data['img']; // icon from the available extensions in dashboard.
1078 - } elseif ( isset( $extension['icon'] ) && ! empty( $extension['icon'] ) ) {
1079 - $img_url = $extension['icon']; // icon from the get_this_extension().
1080 - } elseif ( isset( $extension['iconURI'] ) && '' !== $extension['iconURI'] ) {
1081 - $img_url = MainWP_Utility::remove_http_prefix( $extension['iconURI'] ); // icon from the extension header.
1082 - } else {
1083 - $img_url = MAINWP_PLUGIN_URL . 'assets/images/extensions/placeholder.png';
1084 - }
1085 -
1086 - MainWP_Extensions_View::render_inactive_extension_card( $extension, $img_url, true );
1087 - ?>
1088 -
1089 - <?php } ?>
1090 -
1091 - <?php } ?>
1092 -
1093 - <?php if ( is_array( $extensions_not_installed ) ) { ?>
1094 - <?php foreach ( $extensions_not_installed as $slug => $extension ) { ?>
1095 - <?php
1096 -
1097 - if ( ! isset( $group_available_extensions[ $slug ] ) ) {
1098 - continue;
1099 - }
1100 -
1101 - if ( in_array( $slug, $excluded_extensions ) ) {
1102 - continue;
1103 - }
1104 -
1105 - if ( isset( $extension['img'] ) && ! empty( $extension['img'] ) ) {
1106 - $img_url = $extension['img']; // icon from the available extensions in dashboard.
1107 - } else {
1108 - $img_url = MAINWP_PLUGIN_URL . 'assets/images/extensions/placeholder.png';
1109 - }
1110 -
1111 - MainWP_Extensions_View::render_inactive_extension_card( $extension, $img_url );
1112 - ?>
1113 -
1114 - <?php } ?>
1115 -
1116 - <?php } ?>
1117 -
1118 - </div>
1119 - </div>
1120 - <?php
1121 - do_action( 'mainwp_pagefooter_extensions' );
1122 - }
1040 + MainWP_Extensions_View::render_inactive_extension_card( $extension, $img_url );
1041 + ?>
1042 + <?php } ?>
1043 + <?php } ?>
1044 + </div>
1045 + </div>
1046 + <?php
1047 + do_action( 'mainwp_pagefooter_extensions' );
1048 + }
1123 1049 }