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