PluginProbe ʕ •ᴥ•ʔ
Kirki – Freeform Page Builder, Website Builder & Customizer / 6.3.0
Kirki – Freeform Page Builder, Website Builder & Customizer v6.3.0
6.3.0 6.2.5 6.2.4 6.2.3 6.2.2 6.2.1 6.2.0 6.1.1 6.1.0 6.0.14 6.0.13 6.0.12 6.0.11 6.0.10 6.0.9 6.0.8 6.0.7 6.0.6 6.0.5 6.0.4 6.0.3 6.0.2 6.0.1 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 4.0.19 4.0.20 4.0.21 4.0.22 4.0.23 4.0.24 4.1 4.2.0 5.0.0 5.1.0 5.1.1 5.2.0 5.2.1 5.2.2 5.2.3 6.0.0 trunk 3.0.40 3.0.41 3.0.42 3.0.43 3.0.44 3.0.45 3.1.0 3.1.1 3.1.2
kirki / routes / api.php
kirki / routes Last commit date
api.php 2 days ago
api.php
179 lines
1 <?php
2
3 defined('ABSPATH') || exit;
4
5 use Kirki\App\Constants\PageContentTypes;
6 use Kirki\App\Http\Controllers\Api\AppsController;
7 use Kirki\App\Http\Controllers\Api\MediaController;
8 use Kirki\App\Http\Controllers\Api\PageController;
9 use Kirki\App\Http\Controllers\Api\FormController;
10 use Kirki\App\Http\Controllers\Api\CollectionController;
11 use Kirki\App\Http\Controllers\Api\CollaborationCommentController;
12 use Kirki\App\Http\Controllers\Api\CollaborationController;
13 use Kirki\App\Http\Middlewares\EditAccessMiddleware;
14 use Kirki\App\Http\Middlewares\FullAccessMiddleware;
15 use Kirki\App\Http\Controllers\Api\CollectionItemController;
16 use Kirki\App\Http\Controllers\Api\EditorController;
17 use Kirki\App\Http\Controllers\Api\GlobalDataController;
18 use Kirki\App\Http\Controllers\Api\PageSettingsController;
19 use Kirki\App\Http\Controllers\Api\PostController;
20 use Kirki\App\Http\Controllers\Api\UserController;
21 use Kirki\App\Http\Middlewares\VerifyRestNonceMiddleware;
22 use Kirki\App\Http\Middlewares\ViewAccessMiddleware;
23 use Kirki\App\Http\Middlewares\ViewOrPreviewMiddleware;
24 use Kirki\Framework\Http\Request;
25 use Kirki\Framework\Route;
26 use Kirki\Framework\Supports\Arr;
27
28 use function Kirki\Framework\response;
29
30 Route::set_namespace('kirki/v1');
31
32 Route::get('/ping', function (Request $request) {
33 return response()->json([
34 'is_working' => true,
35 ]);
36 });
37
38 Route::get('/is-user-logged-in', [UserController::class, 'is_logged_in']);
39
40 Route::group([
41 'middleware' => [
42 EditAccessMiddleware::class
43 ]
44 ], function () {
45 Route::post('/pages/{page_id}/{page_content_type}', [PageController::class, 'save_page_data'])
46 ->where('page_id', '[\d]+')
47 ->where(
48 'page_content_type',
49 '(?:' . Arr::join([
50 PageContentTypes::BLOCKS,
51 PageContentTypes::STYLES,
52 PageContentTypes::USED_STYLES,
53 PageContentTypes::USED_STYLE_IDS_RANDOM,
54 PageContentTypes::USED_FONTS
55 ], '|') . ')'
56 );
57 Route::put('/pages/{page_id}', [PageController::class, 'update'])->where('page_id', '[\d]+');
58 Route::put('/popups/{popup_id}', [PageController::class, 'update_popup'])->where('popup_id', '[\d]+');
59
60 // Global data routes
61 Route::put('/global-ui-controller', [GlobalDataController::class, 'update_ui_controller']);
62 Route::put('/global-ui-saved-data', [GlobalDataController::class, 'update_ui_saved_data']);
63
64 Route::put('/walkthrough-shown-state', [UserController::class, 'set_walkthrough_state']);
65
66 Route::post('/collaboration-actions', [CollaborationController::class, 'save_actions']);
67
68 Route::get('/validate-wp-post-slug', [PostController::class, 'validate_slug']);
69 Route::post('/global-styles', [GlobalDataController::class, 'save_global_styles']);
70 });
71
72 Route::group([
73 'middleware' => [
74 FullAccessMiddleware::class
75 ]
76 ], function () {
77 Route::post('/pages', [PageController::class, 'save']);
78 Route::post('/pages/{page_id}/publish-staging-version', [PageController::class, 'publish_staging_version'])->where('page_id', '[\d]+');
79 Route::put('/pages/{page_id}/rename-staging-version', [PageController::class, 'rename_staging_version'])->where('page_id', '[\d]+');
80 Route::post('/pages/{page_id}/restore-staging-version', [PageController::class, 'restore_staging_version'])->where('page_id', '[\d]+');
81 Route::delete('/pages/{page_id}/remove-staging-version', [PageController::class, 'remove_staging_version'])->where('page_id', '[\d]+');
82 Route::post('toggle-disabled-page-symbols', [PageController::class, 'toggle_disabled_page_symbols']);
83 Route::post('/pages/{page_id}/duplicate', [PageController::class, 'duplicate'])->where('page_id', '[\d]+');
84 Route::delete('/pages/{page_id}', [PageController::class, 'delete'])->where('page_id', '[\d]+');
85 Route::put('/pages/{page_id}/settings', [PageSettingsController::class, 'update_page_settings'])->where('page_id', '[\d]+');
86 Route::put('/custom-code-data', [PageSettingsController::class, 'update_custom_codes']);
87 Route::get('/wp-posts/{post_id}', [PageController::class, 'get_wp_single_post'])->where('post_id', '[\d]+');
88
89 Route::post('/back-to-kirki-editor', [EditorController::class, 'back_to_kirki_editor']);
90 Route::post('/back-to-wordpress-editor', [EditorController::class, 'back_to_wordpress_editor']);
91
92 // Global data routes
93 Route::put('/global-custom-fonts', [GlobalDataController::class, 'update_custom_fonts']);
94 Route::post('/download-google-font-offline', [GlobalDataController::class, 'download_google_font_offline']);
95 Route::delete('/remove-google-font-offline', [GlobalDataController::class, 'remove_google_font_offline']);
96 Route::delete('/remove-custom-font-permanently', [GlobalDataController::class, 'remove_custom_fonts_permanently']);
97
98 // Apps routes
99 Route::post('/install-app', [AppsController::class, 'install_app']);
100 Route::put('/update-app', [AppsController::class, 'update_app']);
101 Route::delete('/remove-app', [AppsController::class, 'remove_app']);
102 Route::put('/app-settings', [AppsController::class, 'save_app_settings']);
103 Route::get('/app-settings', [AppsController::class, 'get_app_settings_using_slug']);
104 });
105
106 Route::group(['middleware' => ViewOrPreviewMiddleware::class], function () {
107 // Page Routes
108 Route::get('/pages/{page_id}', [PageController::class, 'get_page_content'])->where('page_id', '[\d]+');
109
110 // Apps routes
111 Route::get('/app-list', [AppsController::class, 'get_all_apps']);
112 Route::get('/installed-app-list', [AppsController::class, 'get_installed_apps']);
113
114 // Global data routes
115 Route::get('/global-ui-controller', [GlobalDataController::class, 'get_ui_controller']);
116 Route::get('/global-ui-saved-data', [GlobalDataController::class, 'get_ui_saved_data']);
117 Route::get('/global-custom-fonts', [GlobalDataController::class, 'get_custom_fonts']);
118
119 // Pages routes
120 Route::get('/current-page/{page_id}', [PageController::class, 'get_current_page'])->where('page_id', '[\d]+');
121 Route::get('/data-list-for-template-edit-search-flyout', [PageController::class, 'get_data_list_for_template_edit_search_flyout']);
122 Route::get('/pages', [PageController::class, 'paginated'])->middleware(EditAccessMiddleware::class);
123 Route::get('/posts-by-type', [PostController::class, 'get_all_posts_grouped_by_type']);
124 Route::get('/pages/{page_id}/staged-versions', [PageController::class, 'get_all_staged_versions'])->where('page_id', '[\d]+');
125 Route::get('/page-panel-pages', [PageController::class, 'page_panel_pages']);
126
127 Route::get('/walkthrough-shown-state', [UserController::class, 'get_walkthrough_state']);
128 });
129
130 // Content Manager — Collection Routes
131 Route::group(['middleware' => ViewOrPreviewMiddleware::class], function () {
132 Route::get('/content-manager/collections', [CollectionController::class, 'index']);
133 Route::get('/content-manager/collections/{collection_id}', [CollectionController::class, 'show'])
134 ->where('collection_id', '\d+');
135 Route::get('/content-manager/validate_slug', [CollectionController::class, 'validate_slug'])->middleware(ViewAccessMiddleware::class);
136 });
137
138 Route::group(['middleware' => EditAccessMiddleware::class], function () {
139 Route::post('/content-manager/collections', [CollectionController::class, 'store']);
140 Route::delete('/content-manager/collections/{collection_id}', [CollectionController::class, 'destroy'])->where('collection_id', '\d+');
141 Route::post('/content-manager/collections/{collection_id}/duplicate', [CollectionController::class, 'duplicate'])
142 ->where('collection_id', '\d+');
143 });
144
145 // Content Manager — Collection Item Routes
146 Route::group(['middleware' => ViewOrPreviewMiddleware::class], function () {
147 Route::get('/content-manager/collections/items', [CollectionItemController::class, 'index']);
148 Route::get('/content-manager/collections/items/{item}', [CollectionItemController::class, 'show'])
149 ->where('item', '\d+');
150 });
151
152 Route::group(['middleware' => EditAccessMiddleware::class], function () {
153 Route::post('/content-manager/collections/items', [CollectionItemController::class, 'store']);
154 Route::post('/content-manager/collections/items/action', [CollectionItemController::class, 'action']);
155 Route::post('/content-manager/collections/items/bulk-action', [CollectionItemController::class, 'bulk_action']);
156 });
157
158 // Media Route
159 Route::get('/media', [MediaController::class, 'paginated'])->middleware(EditAccessMiddleware::class);
160
161 // Comment Routes
162 Route::group(['middleware' => ViewAccessMiddleware::class], function () {
163 Route::get('/collaboration-comments', [CollaborationCommentController::class, 'index']);
164 Route::get('/collaboration-comments/all-users', [CollaborationCommentController::class, 'users']);
165 });
166
167 Route::group(['middleware' => EditAccessMiddleware::class], function () {
168 Route::post('/collaboration-comments', [CollaborationCommentController::class, 'store']);
169 Route::put('/collaboration-comments/resolve', [CollaborationCommentController::class, 'resolve']);
170 Route::put('/collaboration-comments/read', [CollaborationCommentController::class, 'read']);
171 Route::put('/collaboration-comments/unread', [CollaborationCommentController::class, 'unread']);
172 Route::delete('/collaboration-comments/delete', [CollaborationCommentController::class, 'destroy']);
173 Route::put('/collaboration-comments/read-all', [CollaborationCommentController::class, 'read_all']);
174 Route::put('/collaboration-comments/resolve-all', [CollaborationCommentController::class, 'resolve_all']);
175 });
176
177 // Front-end form submission
178 Route::post('/frontend/form', [FormController::class, 'store'])->middleware(VerifyRestNonceMiddleware::class);
179