PluginProbe ʕ •ᴥ•ʔ
Kirki – Freeform Page Builder, Website Builder & Customizer / 6.0.13
Kirki – Freeform Page Builder, Website Builder & Customizer v6.0.13
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 3 weeks ago MediaController.php 3 weeks ago PageController.php 3 weeks ago PageSettingsController.php 3 weeks ago UserController.php 3 weeks ago
PageController.php
171 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\PageResource;
21 use Kirki\App\Services\PageService;
22 use Kirki\App\Supports\Facades\Page;
23 use Kirki\Framework\Http\Request;
24 use Kirki\Framework\Http\Response;
25
26 use function Kirki\Framework\response;
27
28 class PageController
29 {
30 /** @var PageService */
31 protected $service;
32
33 public function __construct(PageService $service)
34 {
35 $this->service = $service;
36 }
37
38 public function save(PageRequest $request)
39 {
40 $payload = PagePayloadDTO::from_array($request->sanitized());
41
42 $page = $this->service->save($payload);
43
44 return response()->json([
45 'data' => PageResource::make($page),
46 'message' => __('Page created successfully.', 'kirki'),
47 ], Response::OK);
48 }
49
50 public function save_page_data(PageDataRequest $request, int $page_id)
51 {
52 $page = PageModel::find($page_id);
53
54 if (empty($page)) {
55 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
56 }
57
58 $payload = EditorPagePayloadDTO::from_array($request->sanitized());
59 $payload->page = $page;
60
61 return response()->json([
62 'data' => [
63 'staging_version' => $this->service->save_page_data($payload),
64 'status' => __('Page data saved.', 'kirki'),
65 ],
66 'message' => __('Page data saved.', 'kirki'),
67 ], Response::OK);
68 }
69
70 public function publish_staging_version(Request $request)
71 {
72 $page = PageModel::find($request->int('page_id'));
73
74 if (empty($page)) {
75 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
76 }
77
78 return response()->json([
79 'data' => Page::publish_stage_version($page->ID),
80 'message' => __('Staging version published successfully.', 'kirki'),
81 ], Response::OK);
82 }
83
84 public function update(PageUpdateRequest $request, int $page_id)
85 {
86 $page = PageModel::find($page_id);
87
88 if (empty($page)) {
89 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
90 }
91
92 $payload = EditPageDTO::from_array($request->sanitized());
93
94 $page = $this->service->update($page, $payload);
95
96 return response()->json([
97 'data' => PageResource::make($page),
98 'message' => __('Page updated successfully.', 'kirki'),
99 ], Response::OK);
100 }
101
102 public function update_popup(PopupRequest $request, int $popup_id)
103 {
104 $popup = PageModel::find($popup_id);
105
106 if (empty($popup) || $popup->post_type !== PostTypes::POPUP) {
107 throw new Exception(esc_html__('Popup not found.', 'kirki'), Response::NOT_FOUND);
108 }
109
110 $payload = EditPopupDTO::from_array($request->sanitized());
111
112 $popup = $this->service->update_popup_data($popup, $payload);
113
114 return response()->json([
115 'data' => PageResource::make($popup),
116 'message' => __('Popup updated successfully.', 'kirki'),
117 ], Response::OK);
118 }
119
120 public function toggle_disabled_page_symbols(TogglePageSymbolRequest $request)
121 {
122 $page = PageModel::find($request->int('post_id'));
123
124 if (empty($page)) {
125 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
126 }
127
128 $payload = TogglePageSymbolDTO::from_array($request->sanitized());
129
130 return response()->json([
131 'data' => [
132 'status' => __('Page data saved.', 'kirki'),
133 'success' => $this->service->toggle_disabled_page_symbols($payload)
134 ],
135 'message' => __('Symbol data updated.', 'kirki'),
136 ], Response::OK);
137 }
138
139 public function duplicate(Request $request)
140 {
141 $page = PageModel::find($request->int('page_id'));
142
143 if (empty($page)) {
144 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
145 }
146
147 return response()->json([
148 'data' => PageResource::make($this->service->duplicate_page($page)),
149 'message' => __('Unused style blocks removed.', 'kirki'),
150 ], Response::OK);
151 }
152
153 public function delete(Request $request)
154 {
155 $page = PageModel::find($request->int('page_id'));
156
157 if (empty($page)) {
158 throw new Exception(esc_html__('Page not found.', 'kirki'), Response::NOT_FOUND);
159 }
160
161 $this->service->delete_page($page);
162
163 return response()->json([
164 'data' => [
165 'status' => __('Page deleted.', 'kirki'),
166 ],
167 'message' => __('Page deleted.', 'kirki'),
168 ]);
169 }
170 }
171