page: retrieve static contents from article object
authorMischa POSLAWSKY <perl@shiar.org>
Mon, 24 Jun 2019 14:49:26 +0000 (16:49 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Fri, 28 Jun 2019 01:20:30 +0000 (03:20 +0200)
article.inc.php
page.php

index 5de149226130e35fff49633a3fcb3cda3d8f9e35..bc8dbff21be1fc99969daebb3bc0bbfa2ea5d2c4 100644 (file)
@@ -33,16 +33,18 @@ class ArchiveArticle
                return fopen($this->page, 'r');
        }
 
+       function rawtitle()
+       {
+               return fgets($this->file);
+       }
        function title()
        {
-               return preg_replace('{<h2>(.*)</h2>\s*}', '\1', fgets($this->file));
+               return preg_replace('{<h2>(.*)</h2>\s*}', '\1', $this->rawtitle);
        }
-
        function safetitle()
        {
                return trim(strip_tags($this->title));
        }
-
        function name()
        {
                return $this->safetitle ?: $this->link;
@@ -52,7 +54,6 @@ class ArchiveArticle
        {
                return filemtime($this->page);
        }
-
        function lastiso()
        {
                return date(DATE_ATOM, $this->last);
@@ -64,33 +65,39 @@ class ArchiveArticle
                array_shift($ymd);
                return $ymd;
        }
-
        function dateiso()
        {
                return implode('-', $this->dateparts()) . 'T12:00:00+02:00';
        }
-
        function date()
        {
                return showdate($this->dateparts);
        }
 
+       function body()
+       {
+               if (!$this->file) return;
+               $this->rawtitle;
+               return fread($this->file, filesize($this->page) ?: 1);
+       }
        function story()
        {
-               $this->title;
-               $rest = fread($this->file, filesize($this->page));
                if ( preg_match('{
                        \n (?: < (?: p | figure [^>]* ) >\s* )+ (<img\ [^>]*>) | \n <hr\ />
-               }x', $rest, $img, PREG_OFFSET_CAPTURE) ) {
+               }x', $this->body, $img, PREG_OFFSET_CAPTURE) ) {
                        # strip part after matching divider (image)
                        if (isset($img[1])) {
                                $this->img = $img[1][0];
                        }
-                       return substr($rest, 0, $img[0][1]);
+                       return substr($this->body, 0, $img[0][1]);
                }
-               return $rest;
+               return $this->body;
        }
 
+       function raw()
+       {
+               return $this->rawtitle . $this->body;
+       }
        function teaser()
        {
                if (preg_match('{<p>(.*?)</p>}s', $this->story, $bodyp)) {
@@ -104,14 +111,12 @@ class ArchiveArticle
                $this->story;
                return $this->img;
        }
-
        function image()
        {
                if ( preg_match('/\bsrc="([^"]*)"/', $this->img, $src) ) {
                        return $src[1];
                }
        }
-
        function thumb($size = '300x')
        {
                if (!$this->image or $this->image[0] !== '/') return;
index fb39f5143dfcd68f56aeb9ea07f5025e1ed29b74..a05e158f198960358599af2001522c2f13cc1fc7 100644 (file)
--- a/page.php
+++ b/page.php
@@ -173,8 +173,9 @@ ob_start(); # inner html
 print '<div class="static">'."\n\n";
 
 $found = FALSE;
-if (isset($staticpage)) {
-       $found = include "./$staticpage";
+if ($Article->file) {
+       print $Article->raw;
+       $found = 1;
 }
 
 print "</div>\n\n";