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