]> git.bts.cx Git - cx.git/blobdiff - cx/lib/posts.php
Hide date on pages
[cx.git] / cx / lib / posts.php
index 7b1316643984a0ad2569831c7e820833df4a9874..9fb4e356433a4529c1554839d3a42fc453658905 100644 (file)
@@ -19,7 +19,9 @@ class Post {
        public $title;
        public $slug;
        public $date;
        public $title;
        public $slug;
        public $date;
+       public $is_page;
        public $is_draft;
        public $is_draft;
+       public $nav_index;
        public $data;
        public $html_content;
        public $html_excerpt;
        public $data;
        public $html_content;
        public $html_excerpt;
@@ -29,7 +31,9 @@ class Post {
                $this->title = $dict['post_title'];
                $this->slug = $dict['post_slug'];
                $this->date = $dict['post_date'];
                $this->title = $dict['post_title'];
                $this->slug = $dict['post_slug'];
                $this->date = $dict['post_date'];
+               $this->is_page = $dict['post_is_page'];
                $this->is_draft = $dict['post_is_draft'];
                $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;
@@ -71,7 +75,7 @@ function cx_post_make_slug($title) {
        return $slug;
 }
 
        return $slug;
 }
 
-function cx_posts_add_post($site_id, $title, $slug, $date, $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) {
@@ -90,14 +94,15 @@ function cx_posts_add_post($site_id, $title, $slug, $date, $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, false, $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, $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) {
@@ -112,12 +117,14 @@ function cx_posts_update_post($post_id, $title, $slug, $date, $draft, $data) {
                SET post_update_time = ?,
                post_slug = ?,
                post_date = ?,
                SET post_update_time = ?,
                post_slug = ?,
                post_date = ?,
+               post_is_page = ?,
                post_is_draft = ?,
                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, $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) {
@@ -132,7 +139,9 @@ function cx_posts_get(int $limit = 0, int $offset = 0, bool $include_drafts = fa
                post_id,
                post_slug,
                post_date,
                post_id,
                post_slug,
                post_date,
+               post_is_page,
                post_is_draft,
                post_is_draft,
+               post_navigation_index,
                post_title,
                post_data
                FROM posts
                post_title,
                post_data
                FROM posts
@@ -160,17 +169,38 @@ function cx_posts_get(int $limit = 0, int $offset = 0, bool $include_drafts = fa
        }
 }
 
        }
 }
 
+function cx_posts_count(bool $include_drafts = false) {
+       $sql = 'SELECT
+               COUNT(post_id) AS _count
+               FROM posts
+               WHERE post_is_page == FALSE';
+       
+       if ($include_drafts == false) {
+               $sql .= ' AND post_is_draft == FALSE';
+       }
+
+       $sql .= ';';
+
+
+       foreach (cx_db_query($sql) as $count_details) {
+               return $count_details['_count'];
+       }
+
+       return 0;
+}
+
 function cx_posts_find_post($post_id) {
        $sql = 'SELECT
                post_id,
                post_slug,
                post_date,
 function cx_posts_find_post($post_id) {
        $sql = 'SELECT
                post_id,
                post_slug,
                post_date,
+               post_is_page,
                post_is_draft,
                post_is_draft,
+               post_navigation_index,
                post_title,
                post_data
                FROM posts
                post_title,
                post_data
                FROM posts
-               WHERE post_is_page == FALSE
-               AND post_id == ?
+               WHERE post_id == ?
                LIMIT 1;';
 
        foreach (cx_db_query($sql, $post_id) as $post) {
                LIMIT 1;';
 
        foreach (cx_db_query($sql, $post_id) as $post) {
@@ -181,11 +211,29 @@ function cx_posts_find_post($post_id) {
        return null;
 }
 
        return null;
 }
 
-function cx_posts_find_post_id($post_slug) {
+function cx_posts_find_article_id($post_slug) {
+       $sql = 'SELECT
+               post_id
+               FROM posts
+               WHERE post_slug == ?
+               AND post_is_page == FALSE
+               AND post_is_draft == FALSE
+               LIMIT 1;';
+
+       foreach (cx_db_query($sql, $post_slug) as $post) {
+               return $post['post_id'];
+       }
+
+       return null;
+}
+
+function cx_posts_find_page_id($post_slug) {
        $sql = 'SELECT
                post_id
                FROM posts
                WHERE post_slug == ?
        $sql = 'SELECT
                post_id
                FROM posts
                WHERE post_slug == ?
+               AND post_is_page == TRUE
+               AND post_is_draft == FALSE
                LIMIT 1;';
 
        foreach (cx_db_query($sql, $post_slug) as $post) {
                LIMIT 1;';
 
        foreach (cx_db_query($sql, $post_slug) as $post) {
@@ -195,18 +243,30 @@ function cx_posts_find_post_id($post_slug) {
        return null;
 }
 
        return null;
 }
 
-function cx_pages_get() {
+function cx_pages_get(bool $navigation_only = true, bool $include_drafts = false) {
        $sql = 'SELECT
                post_id,
                post_slug,
                post_date,
        $sql = 'SELECT
                post_id,
                post_slug,
                post_date,
+               post_is_page,
                post_is_draft,
                post_is_draft,
+               post_navigation_index,
                post_title,
                post_data
                FROM posts
                post_title,
                post_data
                FROM posts
-               WHERE post_is_page == TRUE
-               AND post_is_draft == FALSE
-               ORDER BY post_creation_time DESC;';
+               WHERE post_is_page == TRUE';
+
+       if ($navigation_only) {
+               $sql .= ' AND post_navigation_index != ""';
+       }
+
+       if ($include_drafts == false) {
+               $sql .= ' AND post_is_draft == FALSE';
+       }
+
+       $sql .= ' ORDER BY post_navigation_index ASC, post_date DESC';
+
+       $sql .= ';';
 
        foreach (cx_db_query($sql) as $post) {
                $p = new Post($post);
 
        foreach (cx_db_query($sql) as $post) {
                $p = new Post($post);
@@ -224,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,