diff --git a/action.php b/action.php index cb5e58f..f122f66 100644 --- a/action.php +++ b/action.php @@ -88,21 +88,46 @@ switch ($VARS['action']) { if (is_empty($VARS['template'])) { returnToSender("invalid_parameters", $VARS['siteid']); } + $nav = null; + if ($VARS['innavbar'] == 1) { + if (is_empty($VARS['navbartitle'])) { + returnToSender("invalid_parameters", $VARS['siteid']); + } + $nav = $VARS['navbartitle']; + } $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", [ + $settings = [ "title" => $VARS['title'], - "template" => $VARS['template'] - ], [ + "template" => $VARS['template'], + 'nav' => $nav + ]; + if (is_null($nav)) { + $settings["navorder"] = null; + } + $database->update( + "pages", $settings, [ "AND" => [ "siteid" => $VARS['siteid'], "pageid" => $VARS['pageid'] ] ]); + if (!is_empty($VARS['navorder']) && preg_match("/^[0-9]+([0-9|]*([0-9])|[0-9])$/", $VARS['navorder'])) { + $pages = explode("|", preg_replace("/[|]{2,}/", "", $VARS['navorder'])); + for ($i = 0; $i < count($pages); $i++) { + $database->update("pages", [ + "navorder" => $i + 1 + ], [ + "AND" => [ + "siteid" => $VARS['siteid'], + "pageid" => $pages[$i] + ] + ]); + } + } returnToSender("settings_saved", $VARS['siteid'] . "|" . $VARS['pageid']); break; case "sitesettings": diff --git a/lang/en_us.php b/lang/en_us.php index d7481ef..d3e84a3 100644 --- a/lang/en_us.php +++ b/lang/en_us.php @@ -118,5 +118,9 @@ define("STRINGS", [ "folder deleted" => "Folder deleted.", "folder created" => "Folder created.", "folder not created" => "Folder not created.", - "nothing here" => "There doesn't seem to be anything here..." + "nothing here" => "There doesn't seem to be anything here...", + "navbar options" => "Site Menu Options", + "in navbar" => "Add page to menu", + "navbar title" => "Page title for menu", + "navbar position" => "Menu position (drag to change position):" ]); \ No newline at end of file diff --git a/pages.php b/pages.php index 8b8e136..9dd2eaf 100644 --- a/pages.php +++ b/pages.php @@ -44,8 +44,9 @@ define("PAGES", [ "static/css/filepicker.css", ], "scripts" => [ + "static/js/html5sortable.min.js", + "static/js/iconselector.js", "static/js/editorparent.js", - "static/js/iconselector.js" ] ], "analytics" => [ diff --git a/pages/editor.php b/pages/editor.php index b2bbf8d..79d6a3d 100644 --- a/pages/editor.php +++ b/pages/editor.php @@ -36,8 +36,11 @@ if (!is_empty($VARS['siteid'])) { "pageid", "slug", "title", - "template" - ], ["siteid" => $VARS['siteid']] + "parentid", + "nav", + "template", + "navorder" + ], ["siteid" => $VARS['siteid'], "ORDER" => ["navorder"]] ); $slug = "index"; if (isset($VARS['slug']) && $database->has('pages', ["AND" => ['slug' => $VARS['slug'], 'siteid' => $VARS['siteid']]])) { @@ -48,7 +51,10 @@ if (!is_empty($VARS['siteid'])) { "pageid", "slug", "title", - "template" + "parentid", + "nav", + "template", + "navorder" ], ["AND" => ["siteid" => $VARS['siteid'], "slug" => $slug]] ); @@ -98,7 +104,7 @@ if (!is_empty($VARS['siteid'])) {