]> git.bts.cx Git - cx.git/commitdiff
Added support for previewing posts when logged in
authorBen Sherratt <redacted>
Sat, 4 Jul 2026 18:07:02 +0000 (19:07 +0100)
committerBen Sherratt <redacted>
Sat, 4 Jul 2026 18:07:02 +0000 (19:07 +0100)
cx/cx.php
cx/lib/posts.php

index e4285ee5dade9cfb1d104df6b165ba0e60140f96..b18232b2ea63ce6862f809cb50512012098447d3 100644 (file)
--- a/cx/cx.php
+++ b/cx/cx.php
@@ -182,7 +182,7 @@ function cx_route($path) {
        } else {
                if (count($path_components) >= 1) {
                        $slug = $path_components[0];
-                       $page_id = cx_posts_find_page_id($slug);
+                       $page_id = cx_posts_find_page_id($slug, include_drafts: cx_admin_logged_in());
                        if ($page_id) {
                                $template = 'post';
                                $template_variables['post_id'] = $page_id;
@@ -193,7 +193,7 @@ function cx_route($path) {
                        $year = $path_components[0];
                        $month = $path_components[1];
                        $slug = $path_components[2];
-                       $post_id = cx_posts_find_article_id($slug);
+                       $post_id = cx_posts_find_article_id($slug, include_drafts: cx_admin_logged_in());
                        if ($post_id) {
                                $template = 'post';
                                $template_variables['post_id'] = $post_id;
index 9fb4e356433a4529c1554839d3a42fc453658905..3293ace514e3282867f390641c6cdd87053e9b3c 100644 (file)
@@ -211,30 +211,43 @@ function cx_posts_find_post($post_id) {
        return null;
 }
 
-function cx_posts_find_article_id($post_slug) {
+function cx_posts_find_article_id($post_slug, bool $include_drafts = false) {
        $sql = 'SELECT
                post_id
                FROM posts
                WHERE post_slug == ?
-               AND post_is_page == FALSE
-               AND post_is_draft == FALSE
-               LIMIT 1;';
+               AND post_is_page == FALSE';
+
+       if ($include_drafts == false) {
+               $sql .= ' AND post_is_draft == FALSE';
+       }
+
+       $sql .= ' LIMIT 1';
+
+       $sql .= ';';
 
        foreach (cx_db_query($sql, $post_slug) as $post) {
                return $post['post_id'];
        }
 
        return null;
+
 }
 
-function cx_posts_find_page_id($post_slug) {
+function cx_posts_find_page_id($post_slug, bool $include_drafts = false) {
        $sql = 'SELECT
                post_id
                FROM posts
                WHERE post_slug == ?
-               AND post_is_page == TRUE
-               AND post_is_draft == FALSE
-               LIMIT 1;';
+               AND post_is_page == TRUE';
+
+       if ($include_drafts == false) {
+               $sql .= ' AND post_is_draft == FALSE';
+       }
+
+       $sql .= ' LIMIT 1';
+
+       $sql .= ';';
 
        foreach (cx_db_query($sql, $post_slug) as $post) {
                return $post['post_id'];