Completed
Push — master ( 961524...d13b22 )
by Justin
12:29 queued 07:57
created
system/packages/com.jukusoft.cms.admin/classes/pageeditpage.php 1 patch
Indentation   +303 added lines, -303 removed lines patch added patch discarded remove patch
@@ -27,341 +27,341 @@  discard block
 block discarded – undo
27 27
 
28 28
 class PageEditPage extends PageType {
29 29
 
30
-	protected $sitemap_change_frequencies = array(
31
-		"AlWAYS", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "NEVER"
32
-	);
33
-
34
-	public function getContent(): string {
35
-		$template = new DwooTemplate("pages/editpage");
36
-
37
-		//check, if pageID is set
38
-		if (!isset($_REQUEST['edit']) || empty($_REQUEST['edit'])) {
39
-			//show error
40
-			return $this->showError("No pageID was set!");
41
-		}
42
-
43
-		$pageID = (int) $_REQUEST['edit'];
44
-
45
-		$page = new Page();
46
-		$page->loadByID($pageID);
47
-
48
-		//first check permissions
49
-		if (!PermissionChecker::current()->hasRight("can_edit_all_pages") && !(PermissionChecker::current()->hasRight("can_edit_own_pages") && $page->getAuthorID() == User::current()->getID())) {
50
-			//user doesn't have permissions to edit this page
51
-			return $this->showError("You don't have permissions to edit this page!");
52
-		}
53
-
54
-		//first, lock page
55
-		Page::lockPage($page->getPageID(), User::current()->getID());
56
-
57
-		$success_messages = array();
58
-		$error_messages = array();
59
-
60
-		//save page
61
-		if (isset($_REQUEST['submit'])) {
62
-			if ($_REQUEST['submit'] === "Save") {
63
-				//save page
64
-				$res = $this->save($page);
65
-
66
-				if ($res === true) {
67
-					$success_messages[] = "Saved page successfully!";
68
-				} else {
69
-					$error_messages[] = $res;
70
-				}
71
-			} else if ($_REQUEST['submit'] === "SaveUnlock") {
72
-				//save page
73
-				$res = $this->save($page);
74
-
75
-				if ($res === true) {
76
-					//unlock page
77
-					Page::unlockPage($page->getPageID());
78
-
79
-					//redirect to admin/pages
80
-					header("Location: " . DomainUtils::generateURL("admin/pages"));
81
-
82
-					ob_flush();
83
-					ob_end_flush();
84
-
85
-					exit;
86
-				} else {
87
-					$error_messages[] = $res;
88
-				}
89
-			} else if ($_REQUEST['submit'] === "Publish") {
90
-				//save page
91
-				$res = $this->save($page);
92
-
93
-				if ($res === true) {
94
-					$success_messages[] = "Saved page successfully!";
95
-				} else {
96
-					$error_messages[] = $res;
97
-				}
98
-
99
-				//publish page
100
-				$res = $this->publish($page);
101
-
102
-				if ($res === true) {
103
-					$success_messages[] = "Page published successfully!";
104
-				} else {
105
-					$error_messages[] = $res;
106
-				}
107
-			}
108
-		}
109
-
110
-		$template->assign("action_url", DomainUtils::generateURL($this->getPage()->getAlias(), array("edit" => $pageID)));
111
-
112
-		$template->assign("page", array(
113
-			'id' => $page->getPageID(),
114
-			'alias' => "/" . $page->getAlias(),
115
-			'title' => $page->getTitle(),
116
-			'content' => $page->getContent(),
117
-			'is_published' => $page->isPublished(),
118
-			'can_publish' => (!$page->isPublished() && (PermissionChecker::current()->hasRight("can_publish_all_pages") || (PermissionChecker::current()->hasRight("can_publish_own_pages") && $page->getAuthorID() == User::current()->getID()))),
119
-			'can_change_owner' => (PermissionChecker::current()->hasRight("can_change_page_owner") || $page->getAuthorID() == User::current()->getID()),
120
-			'folder' => $page->getFolder(),
121
-			'preview_url' => DomainUtils::generateURL($page->getAlias(), array("preview" => "true")),
122
-			'current_style' => $page->getStyle(),
123
-			'template' => $page->getCustomTemplate(),
124
-			'has_custom_template' => $page->hasCustomTemplate(),
125
-			'parent' => $page->getParentID(),
126
-			'meta_description' => $page->getMetaDescription(),
127
-			'meta_keywords' => $page->getMetaKeywords(),
128
-			'meta_robots' => $page->getMetaRobotsOptions(),
129
-			'meta_canonicals' => $page->getMetaCanonicals(),
130
-			'has_canoncials' => !empty($page->getMetaCanonicals()),
131
-			'sitemap' => $page->isSitemapEnabled(),
132
-			'sitemap_changefreq' => $page->getSitemapChangeFreq(),
133
-			'sitemap_priority' => $page->getSitemapPriority(),
134
-			'og_type' => $page->getOgType()
135
-		));
136
-
137
-		//set available styles
138
-		$template->assign("styles", StyleController::listAllStyles());
139
-
140
-		//get all pages from database
141
-		$pages = array();
142
-		$rows = Database::getInstance()->listRows("SELECT `id`, `alias` FROM `{praefix}pages` WHERE `editable` = '1' AND `activated` = '1'; ");
143
-
144
-		foreach ($rows as $row) {
145
-			$pages[] = array(
146
-				'id' => $row['id'],
147
-				'alias' => $row['alias']
148
-			);
149
-		}
150
-
151
-		$template->assign("parent_pages", $pages);
152
-
153
-		//https://developers.google.com/search/reference/robots_meta_tag?hl=de
154
-		$robots_options = array(
155
-			"all",
156
-			"noindex",
157
-			"nofollow",
158
-			"none",
159
-			"noarchive",
160
-			"nosnippet",
161
-			"noodp",
162
-			"notranslate",
163
-			"noimageindex",
164
-			"unavailable_after: "
165
-		);
166
-
167
-		$template->assign("robots_options", $robots_options);
168
-
169
-		$sitemap_change_frequencies = $this->sitemap_change_frequencies;
170
-
171
-		$template->assign("sitemap_change_frequencies", $sitemap_change_frequencies);
172
-
173
-		//OpenGraph types,https://developers.facebook.com/docs/reference/opengraph/
174
-		$og_types = array("website", "article", "book", "profile");
175
-
176
-		$template->assign("og_types", $og_types);
177
-
178
-		//add support to show additional code from plugins
179
-		$additional_code_header = "";
180
-		$additional_code_footer = "";
181
-
182
-		Events::throwEvent("page_edit_additional_code_header", array(
183
-			'page' => &$page,
184
-			'code' => &$additional_code_header
185
-		));
186
-
187
-		$template->assign("additional_code_header", $additional_code_footer);
188
-
189
-		Events::throwEvent("page_edit_additional_code_footer", array(
190
-			'page' => &$page,
191
-			'code' => &$additional_code_footer
192
-		));
193
-
194
-		$template->assign("additional_code_footer", $additional_code_footer);
195
-
196
-		$template->assign("errors", $error_messages);
197
-		$template->assign("success_messages", $success_messages);
30
+    protected $sitemap_change_frequencies = array(
31
+        "AlWAYS", "HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "NEVER"
32
+    );
33
+
34
+    public function getContent(): string {
35
+        $template = new DwooTemplate("pages/editpage");
36
+
37
+        //check, if pageID is set
38
+        if (!isset($_REQUEST['edit']) || empty($_REQUEST['edit'])) {
39
+            //show error
40
+            return $this->showError("No pageID was set!");
41
+        }
42
+
43
+        $pageID = (int) $_REQUEST['edit'];
44
+
45
+        $page = new Page();
46
+        $page->loadByID($pageID);
47
+
48
+        //first check permissions
49
+        if (!PermissionChecker::current()->hasRight("can_edit_all_pages") && !(PermissionChecker::current()->hasRight("can_edit_own_pages") && $page->getAuthorID() == User::current()->getID())) {
50
+            //user doesn't have permissions to edit this page
51
+            return $this->showError("You don't have permissions to edit this page!");
52
+        }
53
+
54
+        //first, lock page
55
+        Page::lockPage($page->getPageID(), User::current()->getID());
56
+
57
+        $success_messages = array();
58
+        $error_messages = array();
59
+
60
+        //save page
61
+        if (isset($_REQUEST['submit'])) {
62
+            if ($_REQUEST['submit'] === "Save") {
63
+                //save page
64
+                $res = $this->save($page);
65
+
66
+                if ($res === true) {
67
+                    $success_messages[] = "Saved page successfully!";
68
+                } else {
69
+                    $error_messages[] = $res;
70
+                }
71
+            } else if ($_REQUEST['submit'] === "SaveUnlock") {
72
+                //save page
73
+                $res = $this->save($page);
74
+
75
+                if ($res === true) {
76
+                    //unlock page
77
+                    Page::unlockPage($page->getPageID());
78
+
79
+                    //redirect to admin/pages
80
+                    header("Location: " . DomainUtils::generateURL("admin/pages"));
81
+
82
+                    ob_flush();
83
+                    ob_end_flush();
84
+
85
+                    exit;
86
+                } else {
87
+                    $error_messages[] = $res;
88
+                }
89
+            } else if ($_REQUEST['submit'] === "Publish") {
90
+                //save page
91
+                $res = $this->save($page);
92
+
93
+                if ($res === true) {
94
+                    $success_messages[] = "Saved page successfully!";
95
+                } else {
96
+                    $error_messages[] = $res;
97
+                }
98
+
99
+                //publish page
100
+                $res = $this->publish($page);
101
+
102
+                if ($res === true) {
103
+                    $success_messages[] = "Page published successfully!";
104
+                } else {
105
+                    $error_messages[] = $res;
106
+                }
107
+            }
108
+        }
109
+
110
+        $template->assign("action_url", DomainUtils::generateURL($this->getPage()->getAlias(), array("edit" => $pageID)));
111
+
112
+        $template->assign("page", array(
113
+            'id' => $page->getPageID(),
114
+            'alias' => "/" . $page->getAlias(),
115
+            'title' => $page->getTitle(),
116
+            'content' => $page->getContent(),
117
+            'is_published' => $page->isPublished(),
118
+            'can_publish' => (!$page->isPublished() && (PermissionChecker::current()->hasRight("can_publish_all_pages") || (PermissionChecker::current()->hasRight("can_publish_own_pages") && $page->getAuthorID() == User::current()->getID()))),
119
+            'can_change_owner' => (PermissionChecker::current()->hasRight("can_change_page_owner") || $page->getAuthorID() == User::current()->getID()),
120
+            'folder' => $page->getFolder(),
121
+            'preview_url' => DomainUtils::generateURL($page->getAlias(), array("preview" => "true")),
122
+            'current_style' => $page->getStyle(),
123
+            'template' => $page->getCustomTemplate(),
124
+            'has_custom_template' => $page->hasCustomTemplate(),
125
+            'parent' => $page->getParentID(),
126
+            'meta_description' => $page->getMetaDescription(),
127
+            'meta_keywords' => $page->getMetaKeywords(),
128
+            'meta_robots' => $page->getMetaRobotsOptions(),
129
+            'meta_canonicals' => $page->getMetaCanonicals(),
130
+            'has_canoncials' => !empty($page->getMetaCanonicals()),
131
+            'sitemap' => $page->isSitemapEnabled(),
132
+            'sitemap_changefreq' => $page->getSitemapChangeFreq(),
133
+            'sitemap_priority' => $page->getSitemapPriority(),
134
+            'og_type' => $page->getOgType()
135
+        ));
136
+
137
+        //set available styles
138
+        $template->assign("styles", StyleController::listAllStyles());
139
+
140
+        //get all pages from database
141
+        $pages = array();
142
+        $rows = Database::getInstance()->listRows("SELECT `id`, `alias` FROM `{praefix}pages` WHERE `editable` = '1' AND `activated` = '1'; ");
143
+
144
+        foreach ($rows as $row) {
145
+            $pages[] = array(
146
+                'id' => $row['id'],
147
+                'alias' => $row['alias']
148
+            );
149
+        }
150
+
151
+        $template->assign("parent_pages", $pages);
152
+
153
+        //https://developers.google.com/search/reference/robots_meta_tag?hl=de
154
+        $robots_options = array(
155
+            "all",
156
+            "noindex",
157
+            "nofollow",
158
+            "none",
159
+            "noarchive",
160
+            "nosnippet",
161
+            "noodp",
162
+            "notranslate",
163
+            "noimageindex",
164
+            "unavailable_after: "
165
+        );
166
+
167
+        $template->assign("robots_options", $robots_options);
168
+
169
+        $sitemap_change_frequencies = $this->sitemap_change_frequencies;
170
+
171
+        $template->assign("sitemap_change_frequencies", $sitemap_change_frequencies);
172
+
173
+        //OpenGraph types,https://developers.facebook.com/docs/reference/opengraph/
174
+        $og_types = array("website", "article", "book", "profile");
175
+
176
+        $template->assign("og_types", $og_types);
177
+
178
+        //add support to show additional code from plugins
179
+        $additional_code_header = "";
180
+        $additional_code_footer = "";
181
+
182
+        Events::throwEvent("page_edit_additional_code_header", array(
183
+            'page' => &$page,
184
+            'code' => &$additional_code_header
185
+        ));
186
+
187
+        $template->assign("additional_code_header", $additional_code_footer);
188
+
189
+        Events::throwEvent("page_edit_additional_code_footer", array(
190
+            'page' => &$page,
191
+            'code' => &$additional_code_footer
192
+        ));
193
+
194
+        $template->assign("additional_code_footer", $additional_code_footer);
195
+
196
+        $template->assign("errors", $error_messages);
197
+        $template->assign("success_messages", $success_messages);
198 198
 
199
-		return $template->getCode();
200
-	}
199
+        return $template->getCode();
200
+    }
201 201
 
202
-	protected function save (Page &$page) {
203
-		//first check permissions
204
-		if (!PermissionChecker::current()->hasRight("can_edit_all_pages") && !(PermissionChecker::current()->hasRight("can_edit_own_pages") && $page->getAuthorID() == User::current()->getID())) {
205
-			//user doesn't have permissions to edit this page
206
-			return "You don't have permissions to edit this page!";
207
-		}
208
-
209
-		if (!isset($_POST['title']) || empty($_POST['title'])) {
210
-			return "No title was set";
211
-		}
212
-
213
-		//validate title
214
-		$title = htmlentities($_POST['title']);
215
-
216
-		if (!isset($_POST['html_code']) || empty($_POST['html_code'])) {
217
-			return "No content was set or content is empty!";
218
-		}
219
-
220
-		$content = $_POST['html_code'];
202
+    protected function save (Page &$page) {
203
+        //first check permissions
204
+        if (!PermissionChecker::current()->hasRight("can_edit_all_pages") && !(PermissionChecker::current()->hasRight("can_edit_own_pages") && $page->getAuthorID() == User::current()->getID())) {
205
+            //user doesn't have permissions to edit this page
206
+            return "You don't have permissions to edit this page!";
207
+        }
208
+
209
+        if (!isset($_POST['title']) || empty($_POST['title'])) {
210
+            return "No title was set";
211
+        }
212
+
213
+        //validate title
214
+        $title = htmlentities($_POST['title']);
215
+
216
+        if (!isset($_POST['html_code']) || empty($_POST['html_code'])) {
217
+            return "No content was set or content is empty!";
218
+        }
219
+
220
+        $content = $_POST['html_code'];
221 221
 
222
-		//TODO: save page attributes
223
-		if (!isset($_REQUEST['parent']) || empty($_REQUEST['parent'])) {
224
-			return "Parent page wasn't set!";
225
-		}
222
+        //TODO: save page attributes
223
+        if (!isset($_REQUEST['parent']) || empty($_REQUEST['parent'])) {
224
+            return "Parent page wasn't set!";
225
+        }
226 226
 
227
-		$parent = (int) $_REQUEST['parent'];
227
+        $parent = (int) $_REQUEST['parent'];
228 228
 
229
-		if (!isset($_REQUEST['design']) || empty($_REQUEST['design'])) {
230
-			return "Design wasn't set!";
231
-		}
229
+        if (!isset($_REQUEST['design']) || empty($_REQUEST['design'])) {
230
+            return "Design wasn't set!";
231
+        }
232 232
 
233
-		$design = $_REQUEST['design'];
233
+        $design = $_REQUEST['design'];
234 234
 
235
-		//TODO: check, if style (design) exists
235
+        //TODO: check, if style (design) exists
236 236
 
237
-		$template = "none";
237
+        $template = "none";
238 238
 
239
-		if (isset($_REQUEST['has_custom_template']) && isset($_REQUEST['template']) && !empty($_REQUEST['template'])) {
240
-			$template = $_REQUEST['template'];
241
-		}
239
+        if (isset($_REQUEST['has_custom_template']) && isset($_REQUEST['template']) && !empty($_REQUEST['template'])) {
240
+            $template = $_REQUEST['template'];
241
+        }
242 242
 
243
-		if (!isset($_REQUEST['meta_keywords']) || empty($_REQUEST['meta_keywords'])) {
244
-			return "Meta keywords wasn't set!";
245
-		}
243
+        if (!isset($_REQUEST['meta_keywords']) || empty($_REQUEST['meta_keywords'])) {
244
+            return "Meta keywords wasn't set!";
245
+        }
246 246
 
247
-		$keywords = htmlentities($_REQUEST['meta_keywords']);
247
+        $keywords = htmlentities($_REQUEST['meta_keywords']);
248 248
 
249
-		if (!isset($_REQUEST['meta_robots']) || empty($_REQUEST['meta_robots'])) {
250
-			return "Meta robots wasn't set!";
251
-		}
249
+        if (!isset($_REQUEST['meta_robots']) || empty($_REQUEST['meta_robots'])) {
250
+            return "Meta robots wasn't set!";
251
+        }
252 252
 
253
-		$robots = htmlentities($_REQUEST['meta_robots']);
253
+        $robots = htmlentities($_REQUEST['meta_robots']);
254 254
 
255
-		$canoncials = "";
255
+        $canoncials = "";
256 256
 
257
-		if (isset($_REQUEST['has_canoncials']) && isset($_REQUEST['meta_canoncials']) && !empty($_REQUEST['meta_canoncials'])) {
258
-			$canoncials = $_REQUEST['meta_canoncials'];
259
-		}
257
+        if (isset($_REQUEST['has_canoncials']) && isset($_REQUEST['meta_canoncials']) && !empty($_REQUEST['meta_canoncials'])) {
258
+            $canoncials = $_REQUEST['meta_canoncials'];
259
+        }
260 260
 
261
-		$sitemap = 0;
262
-		$sitemap_changefreq = "WEEKLY";
263
-		$sitemap_priority = 0.5;
261
+        $sitemap = 0;
262
+        $sitemap_changefreq = "WEEKLY";
263
+        $sitemap_priority = 0.5;
264 264
 
265
-		if (isset($_REQUEST['sitemap'])) {
266
-			$sitemap = 1;
265
+        if (isset($_REQUEST['sitemap'])) {
266
+            $sitemap = 1;
267 267
 
268
-			if (!isset($_REQUEST['sitemap_changefreq']) || empty($_REQUEST['sitemap_changefreq'])) {
269
-				return "Sitemap change frequency wasn't set!";
270
-			}
268
+            if (!isset($_REQUEST['sitemap_changefreq']) || empty($_REQUEST['sitemap_changefreq'])) {
269
+                return "Sitemap change frequency wasn't set!";
270
+            }
271 271
 
272
-			$sitemap_changefreq = $_REQUEST['sitemap_changefreq'];
272
+            $sitemap_changefreq = $_REQUEST['sitemap_changefreq'];
273 273
 
274
-			if (!in_array($sitemap_changefreq, $this->sitemap_change_frequencies)) {
275
-				return "Invalide value for sitemap change frequency: " . $sitemap_changefreq;
276
-			}
274
+            if (!in_array($sitemap_changefreq, $this->sitemap_change_frequencies)) {
275
+                return "Invalide value for sitemap change frequency: " . $sitemap_changefreq;
276
+            }
277 277
 
278
-			if (!isset($_REQUEST['sitemap_priority']) || empty($_REQUEST['sitemap_priority'])) {
279
-				return "Sitemap priority wasn't set!";
280
-			}
278
+            if (!isset($_REQUEST['sitemap_priority']) || empty($_REQUEST['sitemap_priority'])) {
279
+                return "Sitemap priority wasn't set!";
280
+            }
281 281
 
282
-			$sitemap_priority = (float) $_REQUEST['sitemap_priority'];
282
+            $sitemap_priority = (float) $_REQUEST['sitemap_priority'];
283 283
 
284
-			if ($sitemap_priority < 0) {
285
-				return "Minimum value of sitemap priority is 0.";
286
-			}
284
+            if ($sitemap_priority < 0) {
285
+                return "Minimum value of sitemap priority is 0.";
286
+            }
287 287
 
288
-			if ($sitemap_priority > 1) {
289
-				return "Maximum value of sitemap priority is 1.";
290
-			}
291
-		}
288
+            if ($sitemap_priority > 1) {
289
+                return "Maximum value of sitemap priority is 1.";
290
+            }
291
+        }
292 292
 
293
-		if (!isset($_REQUEST['og_type']) || empty($_REQUEST['og_type'])) {
294
-			return "OpenGraph type wasn't set!";
295
-		}
293
+        if (!isset($_REQUEST['og_type']) || empty($_REQUEST['og_type'])) {
294
+            return "OpenGraph type wasn't set!";
295
+        }
296 296
 
297
-		$og_type = $_REQUEST['og_type'];
297
+        $og_type = $_REQUEST['og_type'];
298 298
 
299
-		//update page in database
300
-		Database::getInstance()->execute("UPDATE `{praefix}pages` SET `title` = :title, `content` = :content, `parent` = :parent, `design` = :design, `template` = :template, `sitemap` = :sitemap, `sitemap_changefreq` = :sitemap_changefreq, `sitemap_priority` = :sitemap_priority, `meta_keywords` = :keywords, `meta_robots` = :robots, `meta_canonicals` = :canoncials, `og_type` = :og_type WHERE `id` = :pageID; ", array(
301
-			'title' => $title,
302
-			'content' => $content,
303
-			'pageID' => $page->getPageID(),
304
-			'parent' => $parent,
305
-			'design' => $design,
306
-			'template' => $template,
307
-			'sitemap' => $sitemap,
308
-			'sitemap_changefreq' => $sitemap_changefreq,
309
-			'sitemap_priority' => $sitemap_priority,
310
-			'keywords' => $keywords,
311
-			'robots' => $robots,
312
-			'canoncials' => $canoncials,
313
-			'og_type' => $og_type
314
-		));
299
+        //update page in database
300
+        Database::getInstance()->execute("UPDATE `{praefix}pages` SET `title` = :title, `content` = :content, `parent` = :parent, `design` = :design, `template` = :template, `sitemap` = :sitemap, `sitemap_changefreq` = :sitemap_changefreq, `sitemap_priority` = :sitemap_priority, `meta_keywords` = :keywords, `meta_robots` = :robots, `meta_canonicals` = :canoncials, `og_type` = :og_type WHERE `id` = :pageID; ", array(
301
+            'title' => $title,
302
+            'content' => $content,
303
+            'pageID' => $page->getPageID(),
304
+            'parent' => $parent,
305
+            'design' => $design,
306
+            'template' => $template,
307
+            'sitemap' => $sitemap,
308
+            'sitemap_changefreq' => $sitemap_changefreq,
309
+            'sitemap_priority' => $sitemap_priority,
310
+            'keywords' => $keywords,
311
+            'robots' => $robots,
312
+            'canoncials' => $canoncials,
313
+            'og_type' => $og_type
314
+        ));
315 315
 
316
-		//clear cache
317
-		$page->clearCache();
316
+        //clear cache
317
+        $page->clearCache();
318 318
 
319
-		//reload page from database
320
-		$page->loadByID($page->getPageID(), false);
319
+        //reload page from database
320
+        $page->loadByID($page->getPageID(), false);
321 321
 
322
-		//TODO: remove this line later
323
-		Cache::clear("pages");
322
+        //TODO: remove this line later
323
+        Cache::clear("pages");
324 324
 
325
-		return true;
326
-	}
325
+        return true;
326
+    }
327 327
 
328
-	protected function publish (Page &$page) {
329
-		//check permissions for publishing
330
-		if (PermissionChecker::current()->hasRight("can_publish_all_pages") || (PermissionChecker::current()->hasRight("can_publish_own_pages") && $page->getAuthorID() == User::current()->getID())) {
331
-			//update page in database
332
-			Database::getInstance()->execute("UPDATE `{praefix}pages` SET `published` = '1' WHERE `id` = :pageID; ", array(
333
-				'pageID' => $page->getPageID()
334
-			));
328
+    protected function publish (Page &$page) {
329
+        //check permissions for publishing
330
+        if (PermissionChecker::current()->hasRight("can_publish_all_pages") || (PermissionChecker::current()->hasRight("can_publish_own_pages") && $page->getAuthorID() == User::current()->getID())) {
331
+            //update page in database
332
+            Database::getInstance()->execute("UPDATE `{praefix}pages` SET `published` = '1' WHERE `id` = :pageID; ", array(
333
+                'pageID' => $page->getPageID()
334
+            ));
335 335
 
336
-			//clear cache
337
-			$page->clearCache();
336
+            //clear cache
337
+            $page->clearCache();
338 338
 
339
-			//reload page from database
340
-			$page->loadByID($page->getPageID(), false);
339
+            //reload page from database
340
+            $page->loadByID($page->getPageID(), false);
341 341
 
342
-			//TODO: remove this line later
343
-			Cache::clear("pages");
342
+            //TODO: remove this line later
343
+            Cache::clear("pages");
344 344
 
345
-			return true;
346
-		} else {
347
-			return "You don't have the permissions to publish this page!";
348
-		}
349
-	}
345
+            return true;
346
+        } else {
347
+            return "You don't have the permissions to publish this page!";
348
+        }
349
+    }
350 350
 
351
-	protected function showError (string $message) : string {
352
-		//show error
353
-		$template = new DwooTemplate("pages/error");
354
-		$template->assign("message", "No pageID was set!");
355
-		return $template->getCode();
356
-	}
357
-
358
-	public function getFooterScripts(): string {
359
-		$style_name = Registry::singleton()->getSetting("current_style_name");
360
-		$style_path = DomainUtils::getBaseURL() . "/styles/" . $style_name . "/";
361
-
362
-		$thirdparty_url = Registry::singleton()->getSetting("thirdparty_url");
363
-
364
-		/*return "<!-- CK Editor -->
351
+    protected function showError (string $message) : string {
352
+        //show error
353
+        $template = new DwooTemplate("pages/error");
354
+        $template->assign("message", "No pageID was set!");
355
+        return $template->getCode();
356
+    }
357
+
358
+    public function getFooterScripts(): string {
359
+        $style_name = Registry::singleton()->getSetting("current_style_name");
360
+        $style_path = DomainUtils::getBaseURL() . "/styles/" . $style_name . "/";
361
+
362
+        $thirdparty_url = Registry::singleton()->getSetting("thirdparty_url");
363
+
364
+        /*return "<!-- CK Editor -->
365 365
 			<script src=\"" . $style_path . "bower_components/ckeditor/ckeditor.js\"></script>
366 366
 			
367 367
 			<script>
@@ -375,7 +375,7 @@  discard block
 block discarded – undo
375 375
 				});
376 376
 			</script>";*/
377 377
 
378
-		return "<script src=\"" . $thirdparty_url . "tinymce_4.8.2/js/tinymce/tinymce.min.js\"></script>
378
+        return "<script src=\"" . $thirdparty_url . "tinymce_4.8.2/js/tinymce/tinymce.min.js\"></script>
379 379
   				<script>tinymce.init({
380 380
 					  selector: 'textarea',
381 381
 					  height: 500,
@@ -407,11 +407,11 @@  discard block
 block discarded – undo
407 407
 					document.getElementById('inputSitemapPriority').disabled = !this.checked;
408 408
 				};
409 409
 				</script>";
410
-	}
410
+    }
411 411
 
412
-	public function listRequiredPermissions(): array {
413
-		return array("can_edit_all_pages", "can_edit_own_pages");
414
-	}
412
+    public function listRequiredPermissions(): array {
413
+        return array("can_edit_all_pages", "can_edit_own_pages");
414
+    }
415 415
 
416 416
 }
417 417
 
Please login to merge, or discard this patch.