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 / app / Http / Controllers / Api / PageController.php
kirki / app / Http / Controllers / Api Last commit date
AppsController.php 3 weeks ago CollaborationCommentController.php 3 weeks ago CollectionController.php 3 weeks ago CollectionItemController.php 3 weeks ago EditorController.php 3 weeks ago GlobalDataController.php 4 days ago MediaController.php 3 weeks ago PageController.php 4 days ago PageSettingsController.php 3 weeks ago UserController.php 3 weeks ago
PageController.php
187 lines
1 <?php
2
3 namespace Kirki\App\Http\Controllers\Api;
4
5 defined('ABSPATH') || exit;
6
7 use Exception;
8 use Kirki\App\Constants\PostTypes;
9 use Kirki\App\DTO\Page\EditorPagePayloadDTO;
10 use Kirki\App\DTO\Page\EditPageDTO;
11 use Kirki\App\DTO\Page\EditPopupDTO;
12 use Kirki\App\DTO\Page\PagePayloadDTO;
13 use Kirki\App\DTO\Page\TogglePageSymbolDTO;
14 use Kirki\App\Http\Requests\Page\PageDataRequest;
15 use Kirki\App\Http\Requests\Page\PageRequest;
16 use Kirki\App\Http\Requests\Page\PageUpdateRequest;
17 use Kirki\App\Http\Requests\Page\PopupRequest;
18 use Kirki\App\Http\Requests\Page\TogglePageSymbolRequest;
19 use Kirki\App\Models\Page as PageModel;
20 use Kirki\App\Resources\PageContentResource;
21 use Kirki\App\Resources\PageResource;
22 use Kirki\App\Services\PageService;
23 use Kirki\App\Supports\Facades\Page;
24 use Kirki\Framework\Http\Request;
25 use Kirki\Framework\Http\Response;
26
27 use function Kirki\Framework\response;
28
29 class PageController
30 {
31 /** @var PageService */
32 protected $service;
33
34 public function __construct(PageService $service)
35 {
36 $this->service = $service;
37 }
38
39 public function save(PageRequest $request)
40 {
41 $payload = PagePayloadDTO::from_array($request->sanitized());
42
43 $page = $this->service->save($payload);
44
45 return response()->json([
46 'data' => new PageResource($page),
47 'message' => __('Page created successfully.', 'kirki'),
48 ], Response::OK);
49 }
50
51 public function save_page_data(PageDataRequest $request, int $page_id, string $page_content_type)
52 {
53 $page = PageModel::find($page_id);
54
55 if (empty($page)) {
56 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
57 }
58
59 $payload = EditorPagePayloadDTO::from_array($request->sanitized());
60 $payload->page = $page;
61
62 return response()->json([
63 'data' => [
64 'staging_version' => $this->service->save_page_data($payload, $page_content_type),
65 'status' => __('Page data saved.', 'kirki'),
66 ],
67 'message' => __('Page data saved.', 'kirki'),
68 ], Response::OK);
69 }
70
71 public function publish_staging_version(Request $request)
72 {
73 $page = PageModel::find($request->int('page_id'));
74
75 if (empty($page)) {
76 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
77 }
78
79 return response()->json([
80 'data' => Page::publish_stage_version($page->ID),
81 'message' => __('Staging version published successfully.', 'kirki'),
82 ], Response::OK);
83 }
84
85 public function update(PageUpdateRequest $request, int $page_id)
86 {
87 $page = PageModel::find($page_id);
88
89 if (empty($page)) {
90 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
91 }
92
93 $payload = EditPageDTO::from_array($request->sanitized());
94
95 $page = $this->service->update($page, $payload);
96
97 return response()->json([
98 'data' => new PageResource($page),
99 'message' => __('Page updated successfully.', 'kirki'),
100 ], Response::OK);
101 }
102
103 public function update_popup(PopupRequest $request, int $popup_id)
104 {
105 $popup = PageModel::find($popup_id);
106
107 if (empty($popup) || $popup->post_type !== PostTypes::POPUP) {
108 throw new Exception(esc_html__('Popup not found.', 'kirki'), Response::NOT_FOUND);
109 }
110
111 $payload = EditPopupDTO::from_array($request->sanitized());
112
113 $popup = $this->service->update_popup_data($popup, $payload);
114
115 return response()->json([
116 'data' => new PageResource($popup),
117 'message' => __('Popup updated successfully.', 'kirki'),
118 ], Response::OK);
119 }
120
121 public function toggle_disabled_page_symbols(TogglePageSymbolRequest $request)
122 {
123 $page = PageModel::find($request->int('post_id'));
124
125 if (empty($page)) {
126 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
127 }
128
129 $payload = TogglePageSymbolDTO::from_array($request->sanitized());
130
131 return response()->json([
132 'data' => [
133 'status' => __('Page data saved.', 'kirki'),
134 'success' => $this->service->toggle_disabled_page_symbols($payload)
135 ],
136 'message' => __('Symbol data updated.', 'kirki'),
137 ], Response::OK);
138 }
139
140 public function duplicate(Request $request)
141 {
142 $page = PageModel::find($request->int('page_id'));
143
144 if (empty($page)) {
145 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
146 }
147
148 return response()->json([
149 'data' => new PageResource($this->service->duplicate_page($page)),
150 'message' => __('Unused style blocks removed.', 'kirki'),
151 ], Response::OK);
152 }
153
154 public function delete(Request $request)
155 {
156 $page = PageModel::find($request->int('page_id'));
157
158 if (empty($page)) {
159 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
160 }
161
162 $this->service->delete_page($page);
163
164 return response()->json([
165 'data' => [
166 'status' => __('Page deleted.', 'kirki'),
167 ],
168 'message' => __('Page deleted.', 'kirki'),
169 ]);
170 }
171
172 public function get_page_content(Request $request)
173 {
174 $page = PageModel::find($request->int('page_id'));
175
176 if (empty($page)) {
177 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
178 }
179
180 $stage_version = $request->int('stage_version') ?? false;
181
182 return response()->json([
183 'data' => new PageContentResource($page, $stage_version),
184 ]);
185 }
186 }
187