diff --git a/README.fr.md b/README.fr.md index 8736f586f..fd578fc66 100644 --- a/README.fr.md +++ b/README.fr.md @@ -242,17 +242,17 @@ Voir le [dépôt dédié à ces extensions](https://github.com/FreshRSS/Extensio | Italiano (it) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fit+%2F%28TODO%7CDIRTY%29%24%2F) | | 日本語 (ja) | ■■■■■■■■・・ 88% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fja+%2F%28TODO%7CDIRTY%29%24%2F) | | 한국어 (ko) | ■■■■■■■■・・ 82% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fko+%2F%28TODO%7CDIRTY%29%24%2F) | -| Latviešu (lv) | ■■■■■■■■・・ 83% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flv+%2F%28TODO%7CDIRTY%29%24%2F) | +| Latviešu (lv) | ■■■■■■■■・・ 82% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flv+%2F%28TODO%7CDIRTY%29%24%2F) | | Nederlands (nl) | ■■■■■■■■■・ 97% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fnl+%2F%28TODO%7CDIRTY%29%24%2F) | | Occitan (oc) | ■■■■■■■・・・ 75% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Foc+%2F%28TODO%7CDIRTY%29%24%2F) | -| Polski (pl) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpl+%2F%28TODO%7CDIRTY%29%24%2F) | +| Polski (pl) | ■■■■■■■■■・ 98% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpl+%2F%28TODO%7CDIRTY%29%24%2F) | | Português (Brasil) (pt-BR) | ■■■■■■■■■・ 98% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-BR+%2F%28TODO%7CDIRTY%29%24%2F) | -| Português (Portugal) (pt-PT) | ■■■■■■■■・・ 82% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-PT+%2F%28TODO%7CDIRTY%29%24%2F) | +| Português (Portugal) (pt-PT) | ■■■■■■■■・・ 81% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-PT+%2F%28TODO%7CDIRTY%29%24%2F) | | Русский (ru) | ■■■■■■■■■・ 97% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fru+%2F%28TODO%7CDIRTY%29%24%2F) | | Slovenčina (sk) | ■■■■■■■■・・ 82% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fsk+%2F%28TODO%7CDIRTY%29%24%2F) | -| Türkçe (tr) | ■■■■■■■■■・ 90% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ftr+%2F%28TODO%7CDIRTY%29%24%2F) | +| Türkçe (tr) | ■■■■■■■■・・ 89% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ftr+%2F%28TODO%7CDIRTY%29%24%2F) | | Українська (uk) | ■■■■■■■■■・ 92% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fuk+%2F%28TODO%7CDIRTY%29%24%2F) | -| 简体中文 (zh-CN) | ■■■■■■■■■・ 98% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-CN+%2F%28TODO%7CDIRTY%29%24%2F) | +| 简体中文 (zh-CN) | ■■■■■■■■■・ 97% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-CN+%2F%28TODO%7CDIRTY%29%24%2F) | | 正體中文 (zh-TW) | ■■■■■■■■■・ 95% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-TW+%2F%28TODO%7CDIRTY%29%24%2F) | diff --git a/README.md b/README.md index 18a753d38..7ad0c0bd4 100644 --- a/README.md +++ b/README.md @@ -138,17 +138,17 @@ See the [repository dedicated to those extensions](https://github.com/FreshRSS/E | Italiano (it) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fit+%2F%28TODO%7CDIRTY%29%24%2F) | | 日本語 (ja) | ■■■■■■■■・・ 88% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fja+%2F%28TODO%7CDIRTY%29%24%2F) | | 한국어 (ko) | ■■■■■■■■・・ 82% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fko+%2F%28TODO%7CDIRTY%29%24%2F) | -| Latviešu (lv) | ■■■■■■■■・・ 83% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flv+%2F%28TODO%7CDIRTY%29%24%2F) | +| Latviešu (lv) | ■■■■■■■■・・ 82% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flv+%2F%28TODO%7CDIRTY%29%24%2F) | | Nederlands (nl) | ■■■■■■■■■・ 97% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fnl+%2F%28TODO%7CDIRTY%29%24%2F) | | Occitan (oc) | ■■■■■■■・・・ 75% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Foc+%2F%28TODO%7CDIRTY%29%24%2F) | -| Polski (pl) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpl+%2F%28TODO%7CDIRTY%29%24%2F) | +| Polski (pl) | ■■■■■■■■■・ 98% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpl+%2F%28TODO%7CDIRTY%29%24%2F) | | Português (Brasil) (pt-BR) | ■■■■■■■■■・ 98% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-BR+%2F%28TODO%7CDIRTY%29%24%2F) | -| Português (Portugal) (pt-PT) | ■■■■■■■■・・ 82% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-PT+%2F%28TODO%7CDIRTY%29%24%2F) | +| Português (Portugal) (pt-PT) | ■■■■■■■■・・ 81% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fpt-PT+%2F%28TODO%7CDIRTY%29%24%2F) | | Русский (ru) | ■■■■■■■■■・ 97% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fru+%2F%28TODO%7CDIRTY%29%24%2F) | | Slovenčina (sk) | ■■■■■■■■・・ 82% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fsk+%2F%28TODO%7CDIRTY%29%24%2F) | -| Türkçe (tr) | ■■■■■■■■■・ 90% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ftr+%2F%28TODO%7CDIRTY%29%24%2F) | +| Türkçe (tr) | ■■■■■■■■・・ 89% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ftr+%2F%28TODO%7CDIRTY%29%24%2F) | | Українська (uk) | ■■■■■■■■■・ 92% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fuk+%2F%28TODO%7CDIRTY%29%24%2F) | -| 简体中文 (zh-CN) | ■■■■■■■■■・ 98% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-CN+%2F%28TODO%7CDIRTY%29%24%2F) | +| 简体中文 (zh-CN) | ■■■■■■■■■・ 97% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-CN+%2F%28TODO%7CDIRTY%29%24%2F) | | 正體中文 (zh-TW) | ■■■■■■■■■・ 95% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fzh-TW+%2F%28TODO%7CDIRTY%29%24%2F) | diff --git a/app/Models/Feed.php b/app/Models/Feed.php index 83621436e..e36505ac9 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -407,6 +407,26 @@ class FreshRSS_Feed extends Minz_Model { return $this->nbNotRead; } + /** @return int Timestamp of the newest article received for this feed, or 0 if none */ + public function newestArticleReceivedDate(): int { + static $newestArticleReceivedDate = null; + if (!is_int($newestArticleReceivedDate)) { + $feedDAO = FreshRSS_Factory::createFeedDao(); + $newestArticleReceivedDate = $feedDAO->newestArticleReceivedDate($this->id()); + } + return $newestArticleReceivedDate; + } + + /** @return int Timestamp of the Last article published for this feed, or 0 if none */ + public function newestArticlePublicationDate(): int { + static $newestArticlePublicationDate = null; + if (!is_int($newestArticlePublicationDate)) { + $feedDAO = FreshRSS_Factory::createFeedDao(); + $newestArticlePublicationDate = $feedDAO->newestArticlePublicationDate($this->id()); + } + return $newestArticlePublicationDate; + } + public function faviconPrepare(bool $force = false): void { require_once LIB_PATH . '/favicons.php'; if ($this->customFavicon()) { diff --git a/app/Models/FeedDAO.php b/app/Models/FeedDAO.php index cf90455d7..2e68b1f64 100644 --- a/app/Models/FeedDAO.php +++ b/app/Models/FeedDAO.php @@ -555,6 +555,22 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo { return $this->fetchInt($sql, ['id_feed' => $id]) ?? -1; } + /** @return int Timestamp of the newest article received for the specified feed, or 0 if none */ + public function newestArticleReceivedDate(int $feedId): int { + $sql = <<<'SQL' + SELECT MAX(id) / 1000000 AS t FROM `_entry` WHERE id_feed=:id_feed + SQL; + return $this->fetchInt($sql, ['id_feed' => $feedId]) ?? 0; + } + + /** @return int Timestamp of the Last article published for the specified feed, or 0 if none */ + public function newestArticlePublicationDate(int $feedId): int { + $sql = <<<'SQL' + SELECT MAX(date) AS t FROM `_entry` WHERE id_feed=:id_feed + SQL; + return $this->fetchInt($sql, ['id_feed' => $feedId]) ?? 0; + } + /** * Update cached values for selected feeds, or all feeds if no feed ID is provided. */ diff --git a/app/i18n/cs/sub.php b/app/i18n/cs/sub.php index e12529913..dd9742551 100644 --- a/app/i18n/cs/sub.php +++ b/app/i18n/cs/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (výchozí)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/de/sub.php b/app/i18n/de/sub.php index 805833a0a..d3f14897e 100644 --- a/app/i18n/de/sub.php +++ b/app/i18n/de/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (Standard)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Letzte fehlerhafte Aktualisierung .', 'last-update' => 'Letzte erfolgreiche Aktualisierung .', 'maintenance' => array( diff --git a/app/i18n/el/sub.php b/app/i18n/el/sub.php index dead053d0..35b6ddd44 100644 --- a/app/i18n/el/sub.php +++ b/app/i18n/el/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (default)', // TODO 'xml_xpath' => 'XML + XPath', // TODO ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/en-US/sub.php b/app/i18n/en-US/sub.php index 7845768b9..36e0c07a0 100644 --- a/app/i18n/en-US/sub.php +++ b/app/i18n/en-US/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (default)', // IGNORE 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // IGNORE + 'last-entry-received-date' => 'Last article received .', // IGNORE 'last-error-date' => 'Last erroneous update .', // IGNORE 'last-update' => 'Last successful update .', // IGNORE 'maintenance' => array( diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index 39769452d..6ea746205 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (default)', 'xml_xpath' => 'XML + XPath', ), + 'last-entry-publication-date' => 'Last article published .', + 'last-entry-received-date' => 'Last article received .', 'last-error-date' => 'Last erroneous update .', 'last-update' => 'Last successful update .', 'maintenance' => array( diff --git a/app/i18n/es/sub.php b/app/i18n/es/sub.php index 952e1f1a8..1bf4a5552 100644 --- a/app/i18n/es/sub.php +++ b/app/i18n/es/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (por defecto)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/fa/sub.php b/app/i18n/fa/sub.php index f8a8c6179..2646c5d62 100644 --- a/app/i18n/fa/sub.php +++ b/app/i18n/fa/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => ' RSS / Atom (پیش‌فرض)', 'xml_xpath' => ' XML + XPath', ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/fi/sub.php b/app/i18n/fi/sub.php index d1cb1f753..6507273f8 100644 --- a/app/i18n/fi/sub.php +++ b/app/i18n/fi/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS/Atom (oletus)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/fr/sub.php b/app/i18n/fr/sub.php index 7fae285a9..5c2d76791 100644 --- a/app/i18n/fr/sub.php +++ b/app/i18n/fr/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (par défaut)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Dernier article publié .', + 'last-entry-received-date' => 'Dernier article reçu .', 'last-error-date' => 'Dernière mise à jour erronée .', 'last-update' => 'Dernière mise à jour réussie .', 'maintenance' => array( diff --git a/app/i18n/he/sub.php b/app/i18n/he/sub.php index 9297bfaf2..5f02b7d7c 100644 --- a/app/i18n/he/sub.php +++ b/app/i18n/he/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (default)', // TODO 'xml_xpath' => 'XML + XPath', // TODO ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/hu/sub.php b/app/i18n/hu/sub.php index e6891efda..e3c504e13 100644 --- a/app/i18n/hu/sub.php +++ b/app/i18n/hu/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (alapértelmezett)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/id/sub.php b/app/i18n/id/sub.php index c95b5cb06..db0be4f4f 100644 --- a/app/i18n/id/sub.php +++ b/app/i18n/id/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (baku)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/it/sub.php b/app/i18n/it/sub.php index ca0f20585..2566b6f98 100644 --- a/app/i18n/it/sub.php +++ b/app/i18n/it/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (predefinito)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/ja/sub.php b/app/i18n/ja/sub.php index a578f1009..c6bbd3a80 100644 --- a/app/i18n/ja/sub.php +++ b/app/i18n/ja/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (標準)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/ko/sub.php b/app/i18n/ko/sub.php index 9d21fa827..17618f499 100644 --- a/app/i18n/ko/sub.php +++ b/app/i18n/ko/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (기본값)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/lv/sub.php b/app/i18n/lv/sub.php index dc463798e..0677b2c49 100644 --- a/app/i18n/lv/sub.php +++ b/app/i18n/lv/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (noklusējums)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/nl/sub.php b/app/i18n/nl/sub.php index d3d7ca088..f45c54765 100644 --- a/app/i18n/nl/sub.php +++ b/app/i18n/nl/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (standaard)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/oc/sub.php b/app/i18n/oc/sub.php index 2a04bb5cc..ee6b95179 100644 --- a/app/i18n/oc/sub.php +++ b/app/i18n/oc/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (defaut)', 'xml_xpath' => 'XML + XPath', // TODO ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/pl/sub.php b/app/i18n/pl/sub.php index 41740e263..cdf797786 100644 --- a/app/i18n/pl/sub.php +++ b/app/i18n/pl/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (domyślne)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/pt-BR/sub.php b/app/i18n/pt-BR/sub.php index f4d0282c2..05f33e060 100644 --- a/app/i18n/pt-BR/sub.php +++ b/app/i18n/pt-BR/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (padrão)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/pt-PT/sub.php b/app/i18n/pt-PT/sub.php index e64a882ef..bf1239047 100644 --- a/app/i18n/pt-PT/sub.php +++ b/app/i18n/pt-PT/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (padrão)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/ru/sub.php b/app/i18n/ru/sub.php index 03b52d5a9..95f11ba25 100644 --- a/app/i18n/ru/sub.php +++ b/app/i18n/ru/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (по умолчанию)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/sk/sub.php b/app/i18n/sk/sub.php index 8e68c5418..f8583baa3 100644 --- a/app/i18n/sk/sub.php +++ b/app/i18n/sk/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (prednastavené)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/tr/sub.php b/app/i18n/tr/sub.php index 1eb2f498f..2ff3f860a 100644 --- a/app/i18n/tr/sub.php +++ b/app/i18n/tr/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (varsayılan)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/uk/sub.php b/app/i18n/uk/sub.php index ce440332b..b04bae416 100644 --- a/app/i18n/uk/sub.php +++ b/app/i18n/uk/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS/Atom (типово)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/zh-CN/sub.php b/app/i18n/zh-CN/sub.php index f6867be19..f028700d5 100644 --- a/app/i18n/zh-CN/sub.php +++ b/app/i18n/zh-CN/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (默认)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => 'Last erroneous update .', // TODO 'last-update' => 'Last successful update .', // TODO 'maintenance' => array( diff --git a/app/i18n/zh-TW/sub.php b/app/i18n/zh-TW/sub.php index c73997ee5..446018dce 100644 --- a/app/i18n/zh-TW/sub.php +++ b/app/i18n/zh-TW/sub.php @@ -186,6 +186,8 @@ return array( 'rss' => 'RSS / Atom (預設)', 'xml_xpath' => 'XML + XPath', // IGNORE ), + 'last-entry-publication-date' => 'Last article published .', // TODO + 'last-entry-received-date' => 'Last article received .', // TODO 'last-error-date' => '上次錯誤更新 。', 'last-update' => '上次成功更新 。', 'maintenance' => array( diff --git a/app/views/helpers/feed/update.phtml b/app/views/helpers/feed/update.phtml index a4a306820..68bd1f550 100644 --- a/app/views/helpers/feed/update.phtml +++ b/app/views/helpers/feed/update.phtml @@ -18,16 +18,20 @@


- feed->lastUpdate()), timeago($this->feed->lastUpdate())) ?> - feed->lastError() > 1) { ?>
- feed->lastError()), timeago($this->feed->lastError())) ?> + feed->lastError() > 1) { ?> + feed->lastError()), timeago($this->feed->lastError())) ?>
-

- feed->lastUpdate()), timeago($this->feed->lastUpdate())) ?> -

+ feed->lastUpdate()), timeago($this->feed->lastUpdate())) ?> + feed->newestArticleReceivedDate() > 0): ?>
+ feed->newestArticleReceivedDate()), timeago($this->feed->newestArticleReceivedDate())) ?> + + feed->newestArticlePublicationDate() > 0): ?>
+ feed->newestArticlePublicationDate()), timeago($this->feed->newestArticlePublicationDate())) ?> + +

feed->nbEntries(); ?>