From fec9e53d0ebcd74d9fc366da4951f1a1415314c5 Mon Sep 17 00:00:00 2001 From: maTh <1645099+math-GH@users.noreply.github.com> Date: Wed, 5 Jun 2024 21:04:33 +0200 Subject: Empty title guid or first words (#6240) * settings * add comments for better understanding * Update reading.phtml * overhaul the code * i18n * typo * add a constant to configure the amount of chars * fix * simplify * Update Entry.php * clean * Update Entry.php * Update app/Models/Entry.php Co-authored-by: Alexandre Alapetite * Update constants.php * Update app/Models/Entry.php --------- Co-authored-by: Alexandre Alapetite --- app/Models/Entry.php | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'app/Models/Entry.php') diff --git a/app/Models/Entry.php b/app/Models/Entry.php index 3caa1ddb9..956134c78 100644 --- a/app/Models/Entry.php +++ b/app/Models/Entry.php @@ -117,7 +117,27 @@ class FreshRSS_Entry extends Minz_Model { return $this->guid; } public function title(): string { - return $this->title == '' ? $this->guid() : $this->title; + $title = ''; + + if ($this->title === '') { + // used while fetching the article from feed and store it in the database + $title = $this->guid(); + } else { + // used while fetching from the database + if ($this->title !== $this->guid) { + $title = $this->title; + } else { + $content = trim(strip_tags($this->content(false))); + $title = trim(mb_substr($content, 0, MAX_CHARS_EMPTY_FEED_TITLE, 'UTF-8')); + + if ($title === '') { + $title = $this->guid(); + } elseif (strlen($content) > strlen($title)) { + $title .= '…'; + } + } + } + return $title; } /** @deprecated */ public function author(): string { -- cgit v1.2.3