diff --git a/action.php b/action.php index 650fafe..d22ab08 100644 --- a/action.php +++ b/action.php @@ -67,7 +67,37 @@ switch ($VARS['action']) { returnToSender("template_missing", $VARS['siteid']); } $database->insert("pages", ["slug" => $slug, "siteid" => $VARS['siteid'], "title" => $VARS['title'], "template" => $VARS['template']]); - returnToSender("page_added", $VARS['siteid']); + returnToSender("page_added", $VARS['siteid'] . "|" . $database->id()); + break; + case "pagesettings": + if (is_empty($VARS['siteid']) || !$database->has("sites", ["siteid" => $VARS['siteid']])) { + returnToSender("invalid_parameters"); + } + if (is_empty($VARS['pageid']) || !$database->has("pages", ["AND" => ["pageid" => $VARS['pageid'], "siteid" => $VARS['siteid']]])) { + returnToSender("invalid_parameters"); + } + if (is_empty($VARS['title'])) { + returnToSender("invalid_parameters", $VARS['siteid']); + } + if (is_empty($VARS['template'])) { + returnToSender("invalid_parameters", $VARS['siteid']); + } + $template = preg_replace("/[^A-Za-z0-9]/", '', $VARS['template']); + $theme = $database->get("sites", "theme", ["siteid" => $VARS['siteid']]); + if (!file_exists(__DIR__ . "/public/themes/$theme/$template.php")) { + returnToSender("template_missing", $VARS['siteid']); + } + $database->update( + "pages", [ + "title" => $VARS['title'], + "template" => $VARS['template'] + ], [ + "AND" => [ + "siteid" => $VARS['siteid'], + "pageid" => $VARS['pageid'] + ] + ]); + returnToSender("settings_saved", $VARS['siteid'] . "|" . $VARS['pageid']); break; case "sitesettings": if (!is_empty($VARS['siteid'])) { diff --git a/lang/en_us.php b/lang/en_us.php index cec4a21..e7ce563 100644 --- a/lang/en_us.php +++ b/lang/en_us.php @@ -65,4 +65,5 @@ define("STRINGS", [ "title" => "Title", "page id" => "Page ID (slug)", "add page" => "Add page", + "page settings" => "Page Settings" ]); \ No newline at end of file diff --git a/pages/editor.php b/pages/editor.php index 98cdba8..f05e83a 100644 --- a/pages/editor.php +++ b/pages/editor.php @@ -10,6 +10,13 @@ redirectifnotloggedin(); if (!is_empty($VARS['arg'])) { // Allow action.php to do a better redirect $VARS['siteid'] = $VARS['arg']; + if (strpos($VARS['arg'], "|") !== FALSE) { + $arg = explode("|", $VARS['arg'], 2); + $VARS['siteid'] = $arg[0]; + if ($database->has("pages", ["AND" => ["siteid" => $VARS['siteid'], "pageid" => $arg[1]]])) { + $VARS['slug'] = $database->get("pages", "slug", ["AND" => ["siteid" => $VARS['siteid'], "pageid" => $arg[1]]]); + } + } } if (!is_empty($VARS['siteid'])) { @@ -36,6 +43,14 @@ if (!is_empty($VARS['siteid'])) { if (isset($VARS['slug']) && $database->has('pages', ["AND" => ['slug' => $VARS['slug'], 'siteid' => $VARS['siteid']]])) { $slug = $VARS['slug']; } + $thispage = $database->get( + 'pages', [ + "pageid", + "slug", + "title", + "template" + ], ["AND" => ["siteid" => $VARS['siteid'], "slug" => $slug]] + ); } else { header('Location: app.php?page=sites'); die(); @@ -46,11 +61,54 @@ if (!is_empty($VARS['siteid'])) { } ?> + +