PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.0-beta3
Elementor Website Builder – more than just a page builder v4.3.0-beta3
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
← All changes | modules/system-info/module.php +39 -2 4.1.0-dev24.3.0-beta3 View file →
@@ -1,13 +1,14 @@
1 1 <?php
2 2 namespace Elementor\Modules\System_Info;
3 3
4 4 use Elementor\Core\Base\Module as BaseModule;
5 -use Elementor\Modules\System_Info\Reporters\Base;
6 -use Elementor\Modules\System_Info\Helpers\Model_Helper;
7 5 use Elementor\Modules\EditorOne\Classes\Menu_Data_Provider;
8 6 use Elementor\Modules\System_Info\AdminMenuItems\Editor_One_System_Info_Menu;
9 7 use Elementor\Modules\System_Info\AdminMenuItems\Editor_One_System_Menu;
8 +use Elementor\Modules\System_Info\Helpers\Model_Helper;
9 +use Elementor\Modules\System_Info\Reporters\Base;
10 +use Elementor\Modules\System_Info\Rest\Rest_Api;
10 11 use Elementor\Plugin;
11 12 use Elementor\Settings;
12 13
13 14 if ( ! defined( 'ABSPATH' ) ) {
@@ -124,8 +125,44 @@
124 125 $this->register_editor_one_menu( $menu_data_provider );
125 126 } );
126 127
127 128 add_action( 'wp_ajax_elementor_system_info_download_file', [ $this, 'download_file' ] );
129 + add_action( 'rest_api_init', [ $this, 'register_rest_routes' ] );
130 + }
131 +
132 + public function register_rest_routes(): void {
133 + ( new Rest_Api() )->register_routes();
134 + }
135 +
136 + public function get_reports_data(): array {
137 + $reports = $this->load_reports( self::get_allowed_reports() );
138 +
139 + return $this->build_reports_data( $reports );
140 + }
141 +
142 + private function build_reports_data( array $reports ): array {
143 + $data = [];
144 +
145 + foreach ( $reports as $report_name => $report_details ) {
146 + $report = $report_details['report']->get_report();
147 +
148 + if ( is_wp_error( $report ) ) {
149 + continue;
150 + }
151 +
152 + $report_data = [
153 + 'label' => $report_details['label'],
154 + 'report' => $report,
155 + ];
156 +
157 + if ( ! empty( $report_details['sub'] ) ) {
158 + $report_data['sub'] = $this->build_reports_data( $report_details['sub'] );
159 + }
160 +
161 + $data[ $report_name ] = $report_data;
162 + }
163 +
164 + return $data;
128 165 }
129 166
130 167 private function register_editor_one_menu( Menu_Data_Provider $menu_data_provider ) {
131 168 $menu_data_provider->register_menu( new Editor_One_System_Menu() );