page: retrieve static contents from article object
[minimedit.git] / article.inc.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;