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 <alexandre@alapetite.fr>

* Update constants.php

* Update app/Models/Entry.php

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
This commit is contained in:
maTh
2024-06-05 21:04:33 +02:00
committed by GitHub
parent 99b1d551e6
commit fec9e53d0e
3 changed files with 25 additions and 1 deletions

View File

@@ -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 {

View File

@@ -124,6 +124,7 @@
</select>
</div>
</div>
<div class="form-group">
<label class="group-name" for="show_author_date"><?= _t('conf.reading.article.authors_date') ?></label>
<div class="group-controls">

View File

@@ -40,6 +40,9 @@ defined('COPY_SYSLOG_TO_STDERR') or define('COPY_SYSLOG_TO_STDERR', filter_var(g
// Maximum log file size in Bytes, before it will be divided by two
defined('MAX_LOG_SIZE') or define('MAX_LOG_SIZE', 1048576);
// Amount of characters of text shown if feed has no title
defined('MAX_CHARS_EMPTY_FEED_TITLE') or define('MAX_CHARS_EMPTY_FEED_TITLE', 75);
//This directory must be writable
$dataPath = getenv('DATA_PATH');
if (is_string($dataPath) && $dataPath !== '') {