]> git.bts.cx Git - cx.git/commitdiff
Added page ordering
authorBen Sherratt <redacted>
Sat, 4 Jul 2026 17:49:59 +0000 (18:49 +0100)
committerBen Sherratt <redacted>
Sat, 4 Jul 2026 17:49:59 +0000 (18:49 +0100)
cx/cx.php
cx/lib/posts.php
cx/templates/admin/pages/main.php
cx/templates/admin/pages/post.php

index 2881ba59fd116e0943d08210126516d99546c1af..e4285ee5dade9cfb1d104df6b165ba0e60140f96 100644 (file)
--- a/cx/cx.php
+++ b/cx/cx.php
@@ -110,6 +110,7 @@ function cx_route($path) {
                                        $template_variables['post_data'] = '';
                                        $template_variables['post_is_page'] = false;
                                        $template_variables['post_is_draft'] = true;
                                        $template_variables['post_data'] = '';
                                        $template_variables['post_is_page'] = false;
                                        $template_variables['post_is_draft'] = true;
+                                       $template_variables['post_nav_index'] = '';
 
                                        $template_class = 'admin';
                                        $template = 'post';
 
                                        $template_class = 'admin';
                                        $template = 'post';
@@ -123,6 +124,7 @@ function cx_route($path) {
                                        $template_variables['post_data'] = $post->data;
                                        $template_variables['post_is_page'] = $post->is_page;
                                        $template_variables['post_is_draft'] = $post->is_draft;
                                        $template_variables['post_data'] = $post->data;
                                        $template_variables['post_is_page'] = $post->is_page;
                                        $template_variables['post_is_draft'] = $post->is_draft;
+                                       $template_variables['post_nav_index'] = $post->nav_index;
 
                                        $template_class = 'admin';
                                        $template = 'post';
 
                                        $template_class = 'admin';
                                        $template = 'post';
@@ -134,13 +136,14 @@ function cx_route($path) {
                                        if (isset($date) == false) $date = null;
                                        $is_page = cx_form_input_sanitized('post_is_page') == 'page';
                                        $is_draft = cx_form_input_sanitized('post_is_draft') == 'draft';
                                        if (isset($date) == false) $date = null;
                                        $is_page = cx_form_input_sanitized('post_is_page') == 'page';
                                        $is_draft = cx_form_input_sanitized('post_is_draft') == 'draft';
+                                       $nav_index = cx_form_input_sanitized('post_nav_index');
                                        $data = cx_form_input_sanitized_allowing_html('post_data');
                                        
                                        if (isset($_GET['id']) == false or $_GET['id'] == 0) {
                                        $data = cx_form_input_sanitized_allowing_html('post_data');
                                        
                                        if (isset($_GET['id']) == false or $_GET['id'] == 0) {
-                                               cx_posts_add_post(1, $title, $slug, $date, $is_page, $is_draft, $data);
+                                               cx_posts_add_post(1, $title, $slug, $date, $is_page, $is_draft, $nav_index, $data);
                                        } else {
                                                $id = $_GET['id'];
                                        } else {
                                                $id = $_GET['id'];
-                                               cx_posts_update_post($id, $title, $slug, $date, $is_page, $is_draft, $data);
+                                               cx_posts_update_post($id, $title, $slug, $date, $is_page, $is_draft, $nav_index, $data);
                                        }
                                        
                                        cx_http_redirect(cx_url_admin('/'));
                                        }
                                        
                                        cx_http_redirect(cx_url_admin('/'));
index e46aa28cd6816f79a5827f5c7fe17a6f8fecd198..9fb4e356433a4529c1554839d3a42fc453658905 100644 (file)
@@ -21,6 +21,7 @@ class Post {
        public $date;
        public $is_page;
        public $is_draft;
        public $date;
        public $is_page;
        public $is_draft;
+       public $nav_index;
        public $data;
        public $html_content;
        public $html_excerpt;
        public $data;
        public $html_content;
        public $html_excerpt;
@@ -32,6 +33,7 @@ class Post {
                $this->date = $dict['post_date'];
                $this->is_page = $dict['post_is_page'];
                $this->is_draft = $dict['post_is_draft'];
                $this->date = $dict['post_date'];
                $this->is_page = $dict['post_is_page'];
                $this->is_draft = $dict['post_is_draft'];
+               $this->nav_index = $dict['post_navigation_index'];
                $this->data = $dict['post_data'];
                $this->html_content = cx_markdown_generate_html($this->data);
                $this->html_excerpt = null;
                $this->data = $dict['post_data'];
                $this->html_content = cx_markdown_generate_html($this->data);
                $this->html_excerpt = null;
@@ -73,7 +75,7 @@ function cx_post_make_slug($title) {
        return $slug;
 }
 
        return $slug;
 }
 
-function cx_posts_add_post($site_id, $title, $slug, $date, $page, $draft, $data) {
+function cx_posts_add_post($site_id, $title, $slug, $date, $page, $draft, $nav_index, $data) {
        $creation_time = $update_time = time();
        
        if ($slug == null) {
        $creation_time = $update_time = time();
        
        if ($slug == null) {
@@ -92,14 +94,15 @@ function cx_posts_add_post($site_id, $title, $slug, $date, $page, $draft, $data)
                        post_date,
                        post_is_page,
                        post_is_draft,
                        post_date,
                        post_is_page,
                        post_is_draft,
+                       post_navigation_index,
                        post_title,
                        post_data,
                        post_data_version)
                        post_title,
                        post_data,
                        post_data_version)
-               VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);';
-       cx_db_exec($sql, $site_id, $creation_time, $update_time, $slug, $date, $page, $draft, $title, $data, 1);
+               VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);';
+       cx_db_exec($sql, $site_id, $creation_time, $update_time, $slug, $date, $page, $draft, $nav_index, $title, $data, 1);
 }
 
 }
 
-function cx_posts_update_post($post_id, $title, $slug, $date, $page, $draft, $data) {
+function cx_posts_update_post($post_id, $title, $slug, $date, $page, $draft, $nav_index, $data) {
        $update_time = time();
        
        if ($slug == null) {
        $update_time = time();
        
        if ($slug == null) {
@@ -116,11 +119,12 @@ function cx_posts_update_post($post_id, $title, $slug, $date, $page, $draft, $da
                post_date = ?,
                post_is_page = ?,
                post_is_draft = ?,
                post_date = ?,
                post_is_page = ?,
                post_is_draft = ?,
+               post_navigation_index = ?,
                post_title = ?,
                post_data = ?
                WHERE post_id == ?;';
                //LIMIT 1;';
                post_title = ?,
                post_data = ?
                WHERE post_id == ?;';
                //LIMIT 1;';
-       cx_db_exec($sql, $update_time, $slug, $date, $page, $draft, $title, $data, $post_id);
+       cx_db_exec($sql, $update_time, $slug, $date, $page, $draft, $nav_index, $title, $data, $post_id);
 }
 
 function cx_posts_delete_post($post_id) {
 }
 
 function cx_posts_delete_post($post_id) {
@@ -137,6 +141,7 @@ function cx_posts_get(int $limit = 0, int $offset = 0, bool $include_drafts = fa
                post_date,
                post_is_page,
                post_is_draft,
                post_date,
                post_is_page,
                post_is_draft,
+               post_navigation_index,
                post_title,
                post_data
                FROM posts
                post_title,
                post_data
                FROM posts
@@ -191,6 +196,7 @@ function cx_posts_find_post($post_id) {
                post_date,
                post_is_page,
                post_is_draft,
                post_date,
                post_is_page,
                post_is_draft,
+               post_navigation_index,
                post_title,
                post_data
                FROM posts
                post_title,
                post_data
                FROM posts
@@ -237,23 +243,28 @@ function cx_posts_find_page_id($post_slug) {
        return null;
 }
 
        return null;
 }
 
-function cx_pages_get(bool $include_drafts = false) {
+function cx_pages_get(bool $navigation_only = true, bool $include_drafts = false) {
        $sql = 'SELECT
                post_id,
                post_slug,
                post_date,
                post_is_page,
                post_is_draft,
        $sql = 'SELECT
                post_id,
                post_slug,
                post_date,
                post_is_page,
                post_is_draft,
+               post_navigation_index,
                post_title,
                post_data
                FROM posts
                WHERE post_is_page == TRUE';
 
                post_title,
                post_data
                FROM posts
                WHERE post_is_page == TRUE';
 
+       if ($navigation_only) {
+               $sql .= ' AND post_navigation_index != ""';
+       }
+
        if ($include_drafts == false) {
                $sql .= ' AND post_is_draft == FALSE';
        }
 
        if ($include_drafts == false) {
                $sql .= ' AND post_is_draft == FALSE';
        }
 
-       $sql .= ' ORDER BY post_date ASC';
+       $sql .= ' ORDER BY post_navigation_index ASC, post_date DESC';
 
        $sql .= ';';
 
 
        $sql .= ';';
 
@@ -273,6 +284,7 @@ cx_setup_register(1, function() {
                        post_date INTEGER,
                        post_is_page BOOLEAN,
                        post_is_draft BOOLEAN,
                        post_date INTEGER,
                        post_is_page BOOLEAN,
                        post_is_draft BOOLEAN,
+                       post_navigation_index INTEGER,
                        post_title STRING,
                        post_data BLOB,
                        post_data_version INTEGER,
                        post_title STRING,
                        post_data BLOB,
                        post_data_version INTEGER,
index c0da49a4d425560a027fc85bee915d9577232c11..14ea9c40069c6d0f8e6a70a54fb972d41128bccc 100644 (file)
@@ -13,7 +13,7 @@
 
 <h2>Pages</h2>
 <table>
 
 <h2>Pages</h2>
 <table>
-<?php foreach (cx_pages_get(include_drafts: true) as $post): ?>
+<?php foreach (cx_pages_get(navigation_only: false, include_drafts: true) as $post): ?>
 <tr>
  <td class="fill"><a href="<?= cx_url_admin('/posts/edit?id=' . $post->id); ?>"><?= $post->title ?></a></td>
  <td class="hug"><a href="<?= cx_url_admin('/posts/edit?id=' . $post->id); ?>">Edit</a></td>
 <tr>
  <td class="fill"><a href="<?= cx_url_admin('/posts/edit?id=' . $post->id); ?>"><?= $post->title ?></a></td>
  <td class="hug"><a href="<?= cx_url_admin('/posts/edit?id=' . $post->id); ?>">Edit</a></td>
index fb670f0916dd59f66c22ffa58e97ec0eb867c9ca..4eff110cde4d21f6b8a90de774571337bdc1f4ee 100644 (file)
@@ -7,6 +7,7 @@
 <p>date: <input name="post_date" type="text" value="<?= $post_date ? date('Y-m-d H:i:s', $post_date) : "" ?>"></p>
 <p>page: <input name="post_is_page" type="checkbox" value="page" <?= $post_is_page ? "checked" : "" ?>></p>
 <p>draft: <input name="post_is_draft" type="checkbox" value="draft" <?= $post_is_draft ? "checked" : "" ?>></p>
 <p>date: <input name="post_date" type="text" value="<?= $post_date ? date('Y-m-d H:i:s', $post_date) : "" ?>"></p>
 <p>page: <input name="post_is_page" type="checkbox" value="page" <?= $post_is_page ? "checked" : "" ?>></p>
 <p>draft: <input name="post_is_draft" type="checkbox" value="draft" <?= $post_is_draft ? "checked" : "" ?>></p>
+<p>nav index: <input name="post_nav_index" type="text" value="<?= $post_nav_index ?>"></p>
 <p><textarea name="post_data" cols="60" rows="40"><?= $post_data ?></textarea></p>
 
 <p><input type="submit" value="update"></p>
 <p><textarea name="post_data" cols="60" rows="40"><?= $post_data ?></textarea></p>
 
 <p><input type="submit" value="update"></p>