diff options
| author | 2022-05-12 22:31:31 +0200 | |
|---|---|---|
| committer | 2022-05-12 22:31:31 +0200 | |
| commit | da0a333b941efecd0dcfe04346ce0241b42345cf (patch) | |
| tree | b7a4b135adad34c0f8762ff79c42c97d57424f7e | |
| parent | 4a87206f2898665e99953590536cedc6c5505f05 (diff) | |
Refactor OPML export categories (#4356)
* Refactor OPML export categories
Simplify code to comply with types hints.
And renamed a property to plural.
* Link to OPML namespace
| -rw-r--r-- | app/Models/Category.php | 26 | ||||
| -rw-r--r-- | app/Models/View.php | 1 | ||||
| -rw-r--r-- | app/Services/ExportService.php | 9 | ||||
| -rw-r--r-- | app/views/helpers/export/opml.phtml | 5 | ||||
| -rw-r--r-- | docs/en/developers/01_Index.md | 4 |
5 files changed, 21 insertions, 24 deletions
diff --git a/app/Models/Category.php b/app/Models/Category.php index d2968828a..b67818e19 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -6,7 +6,7 @@ class FreshRSS_Category extends Minz_Model { */ private $id = 0; private $name; - private $nbFeed = -1; + private $nbFeeds = -1; private $nbNotRead = -1; private $feeds = null; private $hasFeedsWithError = false; @@ -17,10 +17,10 @@ class FreshRSS_Category extends Minz_Model { $this->_name($name); if (isset($feeds)) { $this->_feeds($feeds); - $this->nbFeed = 0; + $this->nbFeeds = 0; $this->nbNotRead = 0; foreach ($feeds as $feed) { - $this->nbFeed++; + $this->nbFeeds++; $this->nbNotRead += $feed->nbNotRead(); $this->hasFeedsWithError |= $feed->inError(); } @@ -36,13 +36,13 @@ class FreshRSS_Category extends Minz_Model { public function isDefault(): bool { return $this->isDefault; } - public function nbFeed(): int { - if ($this->nbFeed < 0) { + public function nbFeeds(): int { + if ($this->nbFeeds < 0) { $catDAO = FreshRSS_Factory::createCategoryDao(); - $this->nbFeed = $catDAO->countFeed($this->id()); + $this->nbFeeds = $catDAO->countFeed($this->id()); } - return $this->nbFeed; + return $this->nbFeeds; } public function nbNotRead(): int { if ($this->nbNotRead < 0) { @@ -56,18 +56,18 @@ class FreshRSS_Category extends Minz_Model { if ($this->feeds === null) { $feedDAO = FreshRSS_Factory::createFeedDao(); $this->feeds = $feedDAO->listByCategory($this->id()); - $this->nbFeed = 0; + $this->nbFeeds = 0; $this->nbNotRead = 0; foreach ($this->feeds as $feed) { - $this->nbFeed++; + $this->nbFeeds++; $this->nbNotRead += $feed->nbNotRead(); $this->hasFeedsWithError |= $feed->inError(); } - } - usort($this->feeds, function ($a, $b) { - return strnatcasecmp($a->name(), $b->name()); - }); + usort($this->feeds, function ($a, $b) { + return strnatcasecmp($a->name(), $b->name()); + }); + } return $this->feeds; } diff --git a/app/Models/View.php b/app/Models/View.php index 365bfd261..944bfbea1 100644 --- a/app/Models/View.php +++ b/app/Models/View.php @@ -6,6 +6,7 @@ class FreshRSS_View extends Minz_View { public $callbackBeforeEntries; public $callbackBeforeFeeds; public $callbackBeforePagination; + /** @var array<FreshRSS_Category> */ public $categories; /** @var FreshRSS_Category|null */ public $category; diff --git a/app/Services/ExportService.php b/app/Services/ExportService.php index a80f20ce4..25e217968 100644 --- a/app/Services/ExportService.php +++ b/app/Services/ExportService.php @@ -47,14 +47,7 @@ class FreshRSS_Export_Service { $view = new FreshRSS_View(); $day = date('Y-m-d'); - $categories = []; - - foreach ($this->category_dao->listCategories() as $key => $category) { - $categories[$key]['name'] = $category->name(); - $categories[$key]['feeds'] = $this->feed_dao->listByCategory($category->id()); - } - - $view->categories = $categories; + $view->categories = $this->category_dao->listCategories(true); return [ "feeds_{$day}.opml.xml", diff --git a/app/views/helpers/export/opml.phtml b/app/views/helpers/export/opml.phtml index 458ea0e58..30512b96a 100644 --- a/app/views/helpers/export/opml.phtml +++ b/app/views/helpers/export/opml.phtml @@ -11,12 +11,11 @@ $opml_array = array( foreach ($this->categories as $key => $cat) { $opml_array['body'][$key] = array( - 'text' => $cat['name'], + 'text' => $cat->name(), '@outlines' => array() ); - /** @var FreshRSS_Feed $feed */ - foreach ($cat['feeds'] as $feed) { + foreach ($cat->feeds() as $feed) { $outline = [ 'text' => htmlspecialchars_decode($feed->name(), ENT_QUOTES), 'type' => FreshRSS_Export_Service::TYPE_RSS_ATOM, diff --git a/docs/en/developers/01_Index.md b/docs/en/developers/01_Index.md index c32c1d4d7..878aa56c7 100644 --- a/docs/en/developers/01_Index.md +++ b/docs/en/developers/01_Index.md @@ -26,6 +26,10 @@ Start by creating your development environment. A guide to setting up FreshRSS†* [View files](04_Frontend/01_View_files.md) * [Design (Themes/Theming)](04_Frontend/02_Design.md) +## Namespaces + +* [OPML FreshRSS namespace](OPML.md) + ## Minz Minz is the homemade PHP framework used by FreshRSS. More information can be found [here](Minz/index.md). |
