PluginProbe ʕ •ᴥ•ʔ
Kirki – Freeform Page Builder, Website Builder & Customizer / 6.1.0
Kirki – Freeform Page Builder, Website Builder & Customizer v6.1.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
156 lines
1 <?php
2
3 defined('ABSPATH') || exit;
4
5 use Kirki\App\Constants\PageContentTypes;
6 use Kirki\App\Supports\Role;
7 use Kirki\App\Http\Controllers\Api\AppsController;
8 use Kirki\App\Http\Controllers\Api\MediaController;
9 use Kirki\App\Http\Controllers\Api\PageController;
10 use Kirki\App\Http\Controllers\Api\CollectionController;
11 use Kirki\App\Http\Controllers\Api\CollaborationCommentController;
12 use Kirki\App\Http\Middlewares\EditAccessMiddleware;
13 use Kirki\App\Http\Middlewares\FullAccessMiddleware;
14 use Kirki\App\Http\Controllers\Api\CollectionItemController;
15 use Kirki\App\Http\Controllers\Api\EditorController;
16 use Kirki\App\Http\Controllers\Api\GlobalDataController;
17 use Kirki\App\Http\Controllers\Api\PageSettingsController;
18 use Kirki\App\Http\Controllers\Api\UserController;
19 use Kirki\App\Http\Middlewares\ViewAccessMiddleware;
20 use Kirki\App\Http\Middlewares\ViewOrPreviewMiddleware;
21 use Kirki\Framework\Http\Request;
22 use Kirki\Framework\Route;
23 use Kirki\Framework\Supports\Arr;
24
25 use function Kirki\Framework\app;
26 use function Kirki\Framework\response;
27
28 Route::set_namespace('kirki/v1');
29
30 Route::get('/ping', function (Request $request) {
31 return response()->json([
32 'is_working' => true,
33 ]);
34 });
35
36 Route::get('/is-user-logged-in', [UserController::class, 'is_logged_in']);
37
38 Route::group([
39 'middleware' => [
40 EditAccessMiddleware::class
41 ]
42 ], function () {
43 Route::post('/pages/{page_id}/{page_content_type}', [PageController::class, 'save_page_data'])
44 ->where('page_id', '[\d]+')
45 ->where(
46 'page_content_type',
47 '(?:' . Arr::join([
48 PageContentTypes::BLOCKS,
49 PageContentTypes::STYLES,
50 PageContentTypes::USED_STYLES,
51 PageContentTypes::USED_STYLE_IDS_RANDOM,
52 PageContentTypes::USED_FONTS
53 ], '|') . ')'
54 );
55 Route::put('/pages/{page_id}', [PageController::class, 'update'])->where('page_id', '[\d]+');
56 Route::put('/popups/{popup_id}', [PageController::class, 'update_popup'])->where('popup_id', '[\d]+');
57
58 // Global data routes
59 Route::put('/global-ui-controller', [GlobalDataController::class, 'update_ui_controller']);
60 Route::put('/global-ui-saved-data', [GlobalDataController::class, 'update_ui_saved_data']);
61 Route::post('/global-styles', [GlobalDataController::class, 'save_global_styles']);
62 });
63
64 Route::group([
65 'middleware' => [
66 FullAccessMiddleware::class
67 ]
68 ], function () {
69 Route::post('/pages', [PageController::class, 'save']);
70 Route::post('/pages/{page_id}/publish-staging-version', [PageController::class, 'publish_staging_version'])->where('page_id', '[\d]+');
71 Route::post('toggle-disabled-page-symbols', [PageController::class, 'toggle_disabled_page_symbols']);
72 Route::post('/pages/{page_id}/duplicate', [PageController::class, 'duplicate'])->where('page_id', '[\d]+');
73 Route::delete('/pages/{page_id}', [PageController::class, 'delete'])->where('page_id', '[\d]+');
74 Route::put('/pages/{page_id}/settings', [PageSettingsController::class, 'update_page_settings'])->where('page_id', '[\d]+');
75 Route::put('/custom-code-data', [PageSettingsController::class, 'update_custom_codes']);
76
77 Route::post('/back-to-kirki-editor', [EditorController::class, 'back_to_kirki_editor']);
78 Route::post('/back-to-wordpress-editor', [EditorController::class, 'back_to_wordpress_editor']);
79
80 // Global data routes
81 Route::put('/global-custom-fonts', [GlobalDataController::class, 'update_custom_fonts']);
82 Route::post('/download-google-font-offline', [GlobalDataController::class, 'download_google_font_offline']);
83 Route::delete('/remove-google-font-offline', [GlobalDataController::class, 'remove_google_font_offline']);
84 Route::delete('/remove-custom-font-permanently', [GlobalDataController::class, 'remove_custom_fonts_permanently']);
85
86 // Apps routes
87 Route::post('/install-app', [AppsController::class, 'install_app']);
88 Route::put('/update-app', [AppsController::class, 'update_app']);
89 Route::delete('/remove-app', [AppsController::class, 'remove_app']);
90 Route::put('/app-settings', [AppsController::class, 'save_app_settings']);
91 Route::get('/app-settings', [AppsController::class, 'get_app_settings_using_slug']);
92 });
93
94 Route::group(['middleware' => ViewOrPreviewMiddleware::class], function () {
95 // Page Routes
96 Route::get('/pages/{page_id}', [PageController::class, 'get_page_content'])->where('page_id', '[\d]+');
97
98 // Apps routes
99 Route::get('/app-list', [AppsController::class, 'get_all_apps']);
100 Route::get('/installed-app-list', [AppsController::class, 'get_installed_apps']);
101
102 // Global data routes
103 Route::get('/global-ui-controller', [GlobalDataController::class, 'get_ui_controller']);
104 Route::get('/global-ui-saved-data', [GlobalDataController::class, 'get_ui_saved_data']);
105 Route::get('/global-custom-fonts', [GlobalDataController::class, 'get_custom_fonts']);
106 });
107
108 // Content Manager — Collection Routes
109 Route::group(['middleware' => ViewOrPreviewMiddleware::class], function () {
110 Route::get('/content-manager/collections', [CollectionController::class, 'index']);
111 Route::get('/content-manager/collections/{collection_id}', [CollectionController::class, 'show'])
112 ->where('collection_id', '\d+');
113 Route::get('/content-manager/validate_slug', [CollectionController::class, 'validate_slug'])->middleware(ViewAccessMiddleware::class);
114 });
115
116 Route::group(['middleware' => EditAccessMiddleware::class], function () {
117 Route::post('/content-manager/collections', [CollectionController::class, 'store']);
118 Route::delete('/content-manager/collections/{collection_id}', [CollectionController::class, 'destroy'])->where('collection_id', '\d+');
119 Route::post('/content-manager/collections/{collection_id}/duplicate', [CollectionController::class, 'duplicate'])
120 ->where('collection_id', '\d+');
121 });
122
123 // Content Manager — Collection Item Routes
124 Route::group(['middleware' => ViewOrPreviewMiddleware::class], function () {
125 Route::get('/content-manager/collections/items', [CollectionItemController::class, 'index']);
126 Route::get('/content-manager/collections/items/{item}', [CollectionItemController::class, 'show'])
127 ->where('item', '\d+');
128 });
129
130 Route::group(['middleware' => EditAccessMiddleware::class], function () {
131 Route::post('/content-manager/collections/items', [CollectionItemController::class, 'store']);
132 Route::post('/content-manager/collections/items/action', [CollectionItemController::class, 'action']);
133 Route::post('/content-manager/collections/items/bulk-action', [CollectionItemController::class, 'bulk_action']);
134 });
135
136 // Media Route
137 Route::get('/media', [MediaController::class, 'paginated'])->middleware(EditAccessMiddleware::class);
138
139 // Comment Routes
140 Route::group(['middleware' => ViewAccessMiddleware::class], function () {
141 Route::get('/collaboration-comments', [CollaborationCommentController::class, 'index']);
142 Route::get('/collaboration-comments/all-users', [CollaborationCommentController::class, 'users']);
143 });
144
145 Route::get('/collaboration-comments/all-users', [CollaborationCommentController::class, 'users'])->middleware(ViewAccessMiddleware::class);
146
147 Route::group(['middleware' => EditAccessMiddleware::class], function () {
148 Route::post('/collaboration-comments', [CollaborationCommentController::class, 'store']);
149 Route::put('/collaboration-comments/resolve', [CollaborationCommentController::class, 'resolve']);
150 Route::put('/collaboration-comments/read', [CollaborationCommentController::class, 'read']);
151 Route::put('/collaboration-comments/unread', [CollaborationCommentController::class, 'unread']);
152 Route::delete('/collaboration-comments/delete', [CollaborationCommentController::class, 'destroy']);
153 Route::put('/collaboration-comments/read-all', [CollaborationCommentController::class, 'read_all']);
154 Route::put('/collaboration-comments/resolve-all', [CollaborationCommentController::class, 'resolve_all']);
155 });
156