nieuws: cover images in article html
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 25 Aug 2018 23:30:17 +0000 (01:30 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Sat, 25 Aug 2018 23:34:13 +0000 (01:34 +0200)
nieuws.inc.php
nieuws/index.php

index c5dfa2331344503746cca81fbeebcd9128dacfb4..438c282ec46ef311346592e5ab0a01af4fdc23da 100644 (file)
@@ -70,22 +70,33 @@ class ArchiveArticle
 
        function body()
        {
-               return fread($this->file, filesize($this->page));
+               $this->title;
+               $rest = fread($this->file, filesize($this->page));
+               if ( preg_match('{\n<p>(<img [^>]*>)</p>\s*\z}', $rest, $img, PREG_OFFSET_CAPTURE) ) {
+                       $this->img = $img[1][0];
+                       return substr($rest, 0, $img[0][1]);
+               }
+               $this->img = NULL;
+               return $rest;
+       }
+
+       function img()
+       {
+               $this->body;
+               return $this->img;
        }
 
        function image()
        {
-               foreach (['jpg', 'png'] as $ext) {
-                       if (file_exists("{$this->link}.$ext")) {
-                               return "{$this->link}.$ext";
-                       }
+               if ( preg_match('/\bsrc="([^"]*)"/', $this->img, $src) ) {
+                       return $src[1];
                }
        }
 
        function thumb($size = '300x')
        {
-               if ($this->image)
-               return "thumb/$size/{$this->image}";
+               if (!$this->image or $this->image[0] !== '/') return;
+               return "thumb/$size{$this->image}";
        }
 }
 
index 8a613c2591f57531c594bd28a13ebd2f6d69712e..316a16e6e4ebe10a8013ef3fb9907e267703b9bb 100644 (file)
@@ -11,7 +11,6 @@ if ($page and !is_numeric($page)) {
        print preg_replace('{(?<=<h2>)(.*?)(?=</h2>)}', ($edit ?: '\1').' [[1]]', ob_get_clean());
        if ($article->image) {
                $Place['image'] = "https://lijtweg.nl/".$article->thumb('600x');
-               printf('<p><img src="/%s" /></p>'."\n", $article->thumb('640x'));
        }
 
        if ($replyform) {