]> BookStack Code Mirror - bookstack/commitdiff
Code cleanup, refactor
authorJames Geiger <redacted>
Tue, 9 Feb 2021 06:16:24 +0000 (00:16 -0600)
committerJames Geiger <redacted>
Tue, 9 Feb 2021 06:16:24 +0000 (00:16 -0600)
Updated to use Str::length for entity descriptions.
Moved function to get first image in page to PageContent class.

app/Entities/Models/Page.php
app/Entities/Tools/PageContent.php
resources/views/base.blade.php
resources/views/books/show.blade.php
resources/views/chapters/show.blade.php
resources/views/pages/show.blade.php
resources/views/shelves/show.blade.php

index 076850e6304f093309bbd80d3e7d117ce2933958..c244219ea87dec147c9dc37f0838c6cda8ff0c6e 100644 (file)
@@ -127,17 +127,21 @@ class Page extends BookChild
         return $refreshed;
     }
 
+    /**
+     * Returns URL to a cover image for the page.
+     */
     public function getCoverImage(): string
     {
-        $dom = new \DomDocument();
-        $dom->loadHTML($this->html);
-        $images = $dom->getElementsByTagName('img');
+        $default = $this->book->getBookCover();
+
+        $firstImage = (new PageContent($this))->fetchFirstImage();
 
         try {
-            $cover = $images->length > 0 ? $images[0]->getAttribute('src') : $this->book->getBookCover();
-        } catch (Exception $err) {
-            $cover = $this->book->getBookCover();
+            $cover = $firstImage ? $firstImage : $default;
+        } catch (\Exception $err) {
+            $cover = $default;
         }
         return $cover;
     }
+    
 }
index f60971b8bbe02b4539419fe1103426ef1017fda7..e5ea454e71f2499cddeadc31ce2d019ac0a424c9 100644 (file)
@@ -358,4 +358,18 @@ class PageContent
 
         return $html;
     }
+
+    /**
+     * Retrieve first image in page content and return the source URL.
+     */
+    public function fetchFirstImage(): string
+    {
+        $htmlContent = $this->page->html;
+
+        $dom = new \DomDocument();
+        $dom->loadHTML($htmlContent);
+        $images = $dom->getElementsByTagName('img');
+
+        return $images[0]->getAttribute('src');
+    }
 }
index e85029573e3ca590cc4e75c4b2915b13b43e1575..b7dc83d987200dc2cdc274504ec22f964a635172 100644 (file)
@@ -12,7 +12,6 @@
     <meta charset="utf-8">
 
     <!-- Social Cards Meta -->
-
     <meta property="og:title" content="{{ isset($pageTitle) ? $pageTitle . ' | ' : '' }}{{ setting('app-name') }}">
     <meta property="og:url" content="{{ url()->current() }}">
     @stack('social-meta')
index 72fa9f77701f9691bf06b11d0239767e9ca885c6..4782da3b9fc789e50173dfa64f052144c0fbda41 100644 (file)
@@ -7,7 +7,7 @@
 @stop
 
 @push('social-meta')
-    <meta property="og:description" content="{{ Str::words($book->description, 50, '...') }}">
+    <meta property="og:description" content="{{ Str::limit($book->description, 100, '...') }}">
     <meta property="og:image" content="{{ $book->getBookCover() }}">
 @endpush
 
index 47fd42fe21c1ac94d45b5a0a7dc8201f37d3f455..32d7943ed83d3dbc9a8317d2e5fa31ee7185373b 100644 (file)
@@ -7,7 +7,7 @@
 @stop
 
 @push('social-meta')
-    <meta property="og:description" content="{{ Str::words($chapter->description, 50, '...') }}">
+    <meta property="og:description" content="{{ Str::limit($chapter->description, 100) }}">
     <meta property="og:image" content="{{ $chapter->book->getBookCover() }}">
 @endpush
 
index ca639f54bd27ffe73c6804ddd8e0ca8d6fa264b5..0810feeb10f6d77a2b9e4c95758416ddc5710584 100644 (file)
@@ -1,8 +1,11 @@
 @extends('tri-layout')
 
 @push('social-meta')
-    <meta property="og:description" content="{{ Str::words($page->html, 50, '...') }}">
+    <meta property="og:description" content="{{ Str::limit($page->text, 100, '...') }}">
     <meta property="og:image" content="{{ $page->getCoverImage() }}">
+
+
+    $pageContent->getNavigation($page->html);
 @endpush
 
 @section('body')
index 9615466d8d18dbb70d78537e7b4361735d87a792..01e9e6629a55f4f66ccd8b9aae3b9ab7c085d9da 100644 (file)
@@ -1,7 +1,7 @@
 @extends('tri-layout')
 
 @push('social-meta')
-    <meta property="og:description" content="{{ Str::words($shelf->description, 50, '...') }}">
+    <meta property="og:description" content="{{ Str::limit($shelf->description, 100) }}">
     <meta property="og:image" content="{{ $shelf->getBookCover() }}">
 @endpush