diff options
| author | 2024-04-08 11:10:10 +0200 | |
|---|---|---|
| committer | 2024-04-08 11:10:10 +0200 | |
| commit | 283341e75e6ef4fbb3c522635b8a7805d3ab3a20 (patch) | |
| tree | b207210f38b6c3f3c90b4c0bf4c330ab61b0c078 /app/Models | |
| parent | c052149e5aa6eccdafd70f1e85e56cc4dd57ed8b (diff) | |
Allow multiple authors on enclosures (#6272)
fix https://github.com/FreshRSS/FreshRSS/issues/5066
Diffstat (limited to 'app/Models')
| -rw-r--r-- | app/Models/Entry.php | 13 | ||||
| -rw-r--r-- | app/Models/Feed.php | 9 |
2 files changed, 15 insertions, 7 deletions
diff --git a/app/Models/Entry.php b/app/Models/Entry.php index e5e859a1d..c5a9ddc7e 100644 --- a/app/Models/Entry.php +++ b/app/Models/Entry.php @@ -201,7 +201,7 @@ HTML; if (!$allowDuplicateEnclosures && self::containsLink($content, $elink)) { continue; } - $credit = $enclosure['credit'] ?? ''; + $credits = $enclosure['credit'] ?? ''; $description = nl2br($enclosure['description'] ?? '', true); $length = $enclosure['length'] ?? 0; $medium = $enclosure['medium'] ?? ''; @@ -238,8 +238,13 @@ HTML; . '" title="' . $etitle . '">💾</a></p>'; } - if ($credit != '') { - $content .= '<p class="enclosure-credits">© ' . $credit . '</p>'; + if ($credits != '') { + if (!is_array($credits)) { + $credits = [$credits]; + } + foreach ($credits as $credit) { + $content .= '<p class="enclosure-credits">© ' . $credit . '</p>'; + } } if ($description != '') { $content .= '<figcaption class="enclosure-description">' . $description . '</figcaption>'; @@ -250,7 +255,7 @@ HTML; return $content; } - /** @return Traversable<array{'url':string,'type'?:string,'medium'?:string,'length'?:int,'title'?:string,'description'?:string,'credit'?:string,'height'?:int,'width'?:int,'thumbnails'?:array<string>}> */ + /** @return Traversable<array{'url':string,'type'?:string,'medium'?:string,'length'?:int,'title'?:string,'description'?:string,'credit'?:string|array<string>,'height'?:int,'width'?:int,'thumbnails'?:array<string>}> */ public function enclosures(bool $searchBodyImages = false): Traversable { $attributeEnclosures = $this->attributeArray('enclosures'); if (is_iterable($attributeEnclosures)) { diff --git a/app/Models/Feed.php b/app/Models/Feed.php index a957c8d10..cde0a91b8 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -520,7 +520,7 @@ class FreshRSS_Feed extends Minz_Model { $elink = $enclosure->get_link(); if ($elink != '') { $etitle = $enclosure->get_title() ?? ''; - $credit = $enclosure->get_credit() ?? null; + $credits = $enclosure->get_credits() ?? null; $description = $enclosure->get_description() ?? ''; $mime = strtolower($enclosure->get_type() ?? ''); $medium = strtolower($enclosure->get_medium() ?? ''); @@ -534,8 +534,11 @@ class FreshRSS_Feed extends Minz_Model { if ($etitle != '') { $attributeEnclosure['title'] = $etitle; } - if ($credit != null) { - $attributeEnclosure['credit'] = $credit->get_name(); + if (is_array($credits)) { + $attributeEnclosure['credit'] = []; + foreach ($credits as $credit) { + $attributeEnclosure['credit'][] = $credit->get_name(); + } } if ($description != '') { $attributeEnclosure['description'] = $description; |
