From 909fdaca3172c0e825c7e6268950e16bc5d3e4f3 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Thu, 23 Jul 2020 11:31:38 +0200 Subject: [PATCH] Add tag management page (#3121) The new page allows to create, delete and rename tags. See #3058 --- app/Controllers/tagController.php | 40 ++++++++++++++++- app/Models/TagDAO.php | 22 +++++++++ app/i18n/cz/gen.php | 1 + app/i18n/cz/sub.php | 9 ++++ app/i18n/de/gen.php | 1 + app/i18n/de/sub.php | 9 ++++ app/i18n/en-us/gen.php | 1 + app/i18n/en-us/sub.php | 9 ++++ app/i18n/en/gen.php | 1 + app/i18n/en/sub.php | 9 ++++ app/i18n/es/gen.php | 1 + app/i18n/es/sub.php | 9 ++++ app/i18n/fr/gen.php | 1 + app/i18n/fr/sub.php | 9 ++++ app/i18n/he/gen.php | 1 + app/i18n/he/sub.php | 9 ++++ app/i18n/it/gen.php | 1 + app/i18n/it/sub.php | 9 ++++ app/i18n/kr/gen.php | 1 + app/i18n/kr/sub.php | 9 ++++ app/i18n/nl/gen.php | 1 + app/i18n/nl/sub.php | 9 ++++ app/i18n/oc/gen.php | 1 + app/i18n/oc/sub.php | 9 ++++ app/i18n/pt-br/gen.php | 1 + app/i18n/pt-br/sub.php | 9 ++++ app/i18n/ru/gen.php | 1 + app/i18n/ru/sub.php | 9 ++++ app/i18n/sk/gen.php | 1 + app/i18n/sk/sub.php | 9 ++++ app/i18n/tr/gen.php | 1 + app/i18n/tr/sub.php | 9 ++++ app/i18n/zh-cn/gen.php | 1 + app/i18n/zh-cn/sub.php | 9 ++++ app/layout/aside_subscription.phtml | 4 ++ app/views/tag/index.phtml | 70 +++++++++++++++++++++++++++++ 36 files changed, 295 insertions(+), 1 deletion(-) create mode 100644 app/views/tag/index.phtml diff --git a/app/Controllers/tagController.php b/app/Controllers/tagController.php index ba9efe2fc..c49a3fcc4 100644 --- a/app/Controllers/tagController.php +++ b/app/Controllers/tagController.php @@ -63,7 +63,7 @@ class FreshRSS_tag_Controller extends Minz_ActionController { } if (!$this->ajax) { Minz_Request::forward(array( - 'c' => 'index', + 'c' => 'tag', 'a' => 'index', ), true); } @@ -77,4 +77,42 @@ class FreshRSS_tag_Controller extends Minz_ActionController { $tagDAO = FreshRSS_Factory::createTagDao(); $this->view->tags = $tagDAO->getTagsForEntry($id_entry); } + + public function addAction() { + if (!Minz_Request::isPost()) { + Minz_Error::error(405); + } + + $name = Minz_Request::param('name'); + $tagDAO = FreshRSS_Factory::createTagDao(); + if (null === $tagDAO->searchByName($name)) { + $tagDAO->addTag(['name' => $name]); + Minz_Request::good('feedback.tag.created', ['c' => 'tag', 'a' => 'index'], true); + } + + Minz_Request::bad('feedback.tag.name_exists', ['c' => 'tag', 'a' => 'index'], true); + } + + public function renameAction() { + if (!Minz_Request::isPost()) { + Minz_Error::error(405); + } + + $name = Minz_Request::param('name'); + $tagDAO = FreshRSS_Factory::createTagDao(); + $newTag = $tagDAO->searchByName($name); + if (null === $newTag) { + $tagDAO->updateTag(Minz_Request::param('id_tag'), ['name' => $name]); + } else { + $tagDAO->updateEntryTag(Minz_Request::param('id_tag'), $newTag->id()); + $tagDAO->deleteTag(Minz_Request::param('id_tag')); + } + + Minz_Request::good('feedback.tag.renamed', ['c' => 'tag', 'a' => 'index'], true); + } + + public function indexAction() { + $tagDAO = FreshRSS_Factory::createTagDao(); + $this->view->tags = $tagDAO->listTags(); + } } diff --git a/app/Models/TagDAO.php b/app/Models/TagDAO.php index 05a88b182..854dc07f2 100644 --- a/app/Models/TagDAO.php +++ b/app/Models/TagDAO.php @@ -148,6 +148,28 @@ class FreshRSS_TagDAO extends Minz_ModelPdo implements FreshRSS_Searchable { } } + public function updateEntryTag($oldTagId, $newTagId) { + $sql = 'DELETE FROM `_entrytag` WHERE EXISTS (SELECT 1 FROM `_entrytag` AS e WHERE e.id_entry = `_entrytag`.id_entry AND e.id_tag = ? AND `_entrytag`.id_tag = ?)'; + $stm = $this->pdo->prepare($sql); + + if (!($stm && $stm->execute([$newTagId, $oldTagId]))) { + $info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo(); + Minz_Log::error('SQL error moveTag: ' . $info[2]); + return false; + } + + $sql = 'UPDATE `_entrytag` SET id_tag = ? WHERE id_tag = ?'; + $stm = $this->pdo->prepare($sql); + + if ($stm && $stm->execute([$newTagId, $oldTagId])) { + return $stm->rowCount(); + } else { + $info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo(); + Minz_Log::error('SQL error moveTag: ' . $info[2]); + return false; + } + } + public function searchById($id) { $sql = 'SELECT * FROM `_tag` WHERE id=?'; $stm = $this->pdo->prepare($sql); diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 842fadf56..33de7dd0f 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promote', // TODO - Translation 'purge' => 'Purge', // TODO - Translation 'remove' => 'Odstranit', + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'Navštívit WWW stránku', 'submit' => 'Odeslat', 'truncate' => 'Smazat všechny články', diff --git a/app/i18n/cz/sub.php b/app/i18n/cz/sub.php index e3125e260..4bcff9dec 100644 --- a/app/i18n/cz/sub.php +++ b/app/i18n/cz/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Import / export', // TODO - Translation 'subscription_management' => 'Správa subskripcí', 'subscription_tools' => 'Subscription tools', // TODO - Translation + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'Správa subskripcí', 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'Správa RSS kanálů', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Subscription tools', // TODO - Translation ), ); diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 75304e446..cfc3eafdb 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promote', // TODO - Translation 'purge' => 'Purge', // TODO - Translation 'remove' => 'Entfernen', + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'Webseite ansehen', 'submit' => 'Abschicken', 'truncate' => 'Alle Artikel löschen', diff --git a/app/i18n/de/sub.php b/app/i18n/de/sub.php index a84394f36..4205d74df 100644 --- a/app/i18n/de/sub.php +++ b/app/i18n/de/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Importieren / Exportieren', 'subscription_management' => 'Abonnementverwaltung', 'subscription_tools' => 'Abonnement-Tools', + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'Abonnementverwaltung', 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'Verwaltung der RSS-Feeds', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Abonnement-Tools', ), ); diff --git a/app/i18n/en-us/gen.php b/app/i18n/en-us/gen.php index 846735161..80dae042b 100644 --- a/app/i18n/en-us/gen.php +++ b/app/i18n/en-us/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promote', 'purge' => 'Purge', 'remove' => 'Remove', + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'See website', 'submit' => 'Submit', 'truncate' => 'Delete all articles', diff --git a/app/i18n/en-us/sub.php b/app/i18n/en-us/sub.php index 08ec8bbbc..c4f33c105 100644 --- a/app/i18n/en-us/sub.php +++ b/app/i18n/en-us/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Import / export', 'subscription_management' => 'Subscription management', 'subscription_tools' => 'Subscription tools', + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'Subscription management', 'add' => 'Add a feed or category', 'add_category' => 'Add a category', 'add_feed' => 'Add a feed', + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'RSS feeds management', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Subscription tools', ), ); diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index cad78fbda..25cb0a977 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promote', 'purge' => 'Purge', 'remove' => 'Remove', + 'rename' => 'Rename', 'see_website' => 'See website', 'submit' => 'Submit', 'truncate' => 'Delete all articles', diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index 06b6b6f1e..a36b5f306 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Import / export', 'subscription_management' => 'Subscriptions management', 'subscription_tools' => 'Subscription tools', + 'tag_management' => 'Tags management', + ), + 'tag' => array( + 'name' => 'Name', + 'new_name' => 'New name', + 'old_name' => 'Old name', ), 'title' => array( '_' => 'Subscriptions management', 'add' => 'Add a feed/a category', 'add_category' => 'Add a category', 'add_feed' => 'Add a feed', + 'add_tag' => 'Add a tag', + 'delete_tag' => 'Delete a tag', 'feed_management' => 'RSS feeds management', + 'rename_tag' => 'Rename a tag', 'subscription_tools' => 'Subscription tools', ), ); diff --git a/app/i18n/es/gen.php b/app/i18n/es/gen.php index 1602e0a5b..f87fd23fb 100755 --- a/app/i18n/es/gen.php +++ b/app/i18n/es/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promover', 'purge' => 'Eliminar', 'remove' => 'Borrar', + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'Ver web', 'submit' => 'Enviar', 'truncate' => 'Borrar todos los artículos', diff --git a/app/i18n/es/sub.php b/app/i18n/es/sub.php index 701dff809..c8cbcc698 100755 --- a/app/i18n/es/sub.php +++ b/app/i18n/es/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Importar / exportar', 'subscription_management' => 'Administración de suscripciones', 'subscription_tools' => 'Subscription tools', // TODO - Translation + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'Administración de suscripciones', 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'Administración de fuentes RSS', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Subscription tools', // TODO - Translation ), ); diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 19d28f301..07526b90a 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promouvoir', 'purge' => 'Purger', 'remove' => 'Supprimer', + 'rename' => 'Renommer', 'see_website' => 'Voir le site', 'submit' => 'Valider', 'truncate' => 'Supprimer tous les articles', diff --git a/app/i18n/fr/sub.php b/app/i18n/fr/sub.php index b0e01e3b1..25f668f68 100644 --- a/app/i18n/fr/sub.php +++ b/app/i18n/fr/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Importer / exporter', 'subscription_management' => 'Gestion des abonnements', 'subscription_tools' => 'Outils d’abonnement', + 'tag_management' => 'Gestion des étiquettes', + ), + 'tag' => array( + 'name' => 'Nom', + 'new_name' => 'Ancien nom', + 'old_name' => 'Nouveau nom', ), 'title' => array( '_' => 'Gestion des abonnements', 'add' => 'Ajouter un flux/une catégorie', 'add_category' => 'Ajouter une catégorie', 'add_feed' => 'Ajouter un flux', + 'add_tag' => 'Ajouter une étiquette', + 'delete_tag' => 'Supprimer une étiquette', 'feed_management' => 'Gestion des flux RSS', + 'rename_tag' => 'Renommer une étiquette', 'subscription_tools' => 'Outils d’abonnement', ), ); diff --git a/app/i18n/he/gen.php b/app/i18n/he/gen.php index 9134c23c3..bfa345b06 100644 --- a/app/i18n/he/gen.php +++ b/app/i18n/he/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promote', // TODO - Translation 'purge' => 'Purge', // TODO - Translation 'remove' => 'Remove', // TODO - Translation + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'ראו אתר', 'submit' => 'אישור', 'truncate' => 'מחיקת כל המאמרים', diff --git a/app/i18n/he/sub.php b/app/i18n/he/sub.php index b1814adc6..3c4c4faad 100644 --- a/app/i18n/he/sub.php +++ b/app/i18n/he/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'יבוא / יצוא ', 'subscription_management' => 'ניהול הרשמות', 'subscription_tools' => 'Subscription tools', // TODO - Translation + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'ניהול הרשמות', 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'ניהול הזנות RSS', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Subscription tools', // TODO - Translation ), ); diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index 3de8d1972..99eb2ac55 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promote', // TODO - Translation 'purge' => 'Purge', // TODO - Translation 'remove' => 'Rimuovi', + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'Vai al sito', 'submit' => 'Conferma', 'truncate' => 'Cancella tutti gli articoli', diff --git a/app/i18n/it/sub.php b/app/i18n/it/sub.php index 09a9bdd48..dfef244a1 100644 --- a/app/i18n/it/sub.php +++ b/app/i18n/it/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Importa / esporta', 'subscription_management' => 'Gestione sottoscrizioni', 'subscription_tools' => 'Subscription tools', // TODO - Translation + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'Gestione sottoscrizioni', 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'Gestione RSS feeds', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Subscription tools', // TODO - Translation ), ); diff --git a/app/i18n/kr/gen.php b/app/i18n/kr/gen.php index 63e6d837e..923426113 100644 --- a/app/i18n/kr/gen.php +++ b/app/i18n/kr/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promote', // TODO - Translation 'purge' => 'Purge', // TODO - Translation 'remove' => '삭제', + 'rename' => 'Rename', // TODO - Translation 'see_website' => '웹사이트 열기', 'submit' => '설정 저장', 'truncate' => '모든 글 삭제', diff --git a/app/i18n/kr/sub.php b/app/i18n/kr/sub.php index 8c1c481f8..53337390b 100644 --- a/app/i18n/kr/sub.php +++ b/app/i18n/kr/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => '불러오기 / 내보내기', 'subscription_management' => '구독 관리', 'subscription_tools' => '구독 도구', + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => '구독 관리', 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'RSS 피드 관리', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => '구독 도구', ), ); diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index dc30b8fa3..2d826ed98 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Bevorderen', 'purge' => 'Zuiveren', 'remove' => 'Verwijderen', + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'Bekijk website', 'submit' => 'Opslaan', 'truncate' => 'Verwijder alle artikelen', diff --git a/app/i18n/nl/sub.php b/app/i18n/nl/sub.php index ad464b97c..35ee0f45f 100644 --- a/app/i18n/nl/sub.php +++ b/app/i18n/nl/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Importeer / exporteer', 'subscription_management' => 'Abonnementenbeheer', 'subscription_tools' => 'Hulpmiddelen voor abonnementen', + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'Abonnementenbeheer', 'add' => 'Feed of categorie toevoegen', 'add_category' => 'Categorie toevoegen', 'add_feed' => 'Feed toevoegen', + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'RSS-feedbeheer', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Hulpmiddelen voor abonnementen', ), ); diff --git a/app/i18n/oc/gen.php b/app/i18n/oc/gen.php index a46b7d4ef..7203f74fa 100644 --- a/app/i18n/oc/gen.php +++ b/app/i18n/oc/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promòure', 'purge' => 'Purgar', 'remove' => 'Levar', + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'Veire lo site', 'submit' => 'Mandar', 'truncate' => 'Suprimir totes los articles', diff --git a/app/i18n/oc/sub.php b/app/i18n/oc/sub.php index ea077da1a..486953af6 100644 --- a/app/i18n/oc/sub.php +++ b/app/i18n/oc/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Importar / Exportar', 'subscription_management' => 'Gestion dels abonaments', 'subscription_tools' => 'Aisinas d’abonament', + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'Gestion dels abonaments', 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'Gestion dels fluxes RSS', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Aisinas d’abonament', ), ); diff --git a/app/i18n/pt-br/gen.php b/app/i18n/pt-br/gen.php index 531d84095..75e2b5035 100644 --- a/app/i18n/pt-br/gen.php +++ b/app/i18n/pt-br/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promover', 'purge' => 'Limpar', 'remove' => 'Remover', + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'Ver o site', 'submit' => 'Enviar', 'truncate' => 'Deletar todos os artigos', diff --git a/app/i18n/pt-br/sub.php b/app/i18n/pt-br/sub.php index 1ecf05169..358162a9d 100644 --- a/app/i18n/pt-br/sub.php +++ b/app/i18n/pt-br/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Importar / exportar', 'subscription_management' => 'Gerenciamento de inscrições', 'subscription_tools' => 'Ferramentas de inscrição', + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'Gerenciamento de inscrições', 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'Gerenciamento dos RSS feeds', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Ferramentas de inscrição', ), ); diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index 2149e7264..c2aeaf454 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promote', // TODO - Translation 'purge' => 'Purge', // TODO - Translation 'remove' => 'Remove', // TODO - Translation + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'See website', // TODO - Translation 'submit' => 'Submit', // TODO - Translation 'truncate' => 'Delete all articles', // TODO - Translation diff --git a/app/i18n/ru/sub.php b/app/i18n/ru/sub.php index 4dc72e6a4..009f1b975 100644 --- a/app/i18n/ru/sub.php +++ b/app/i18n/ru/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Import / export', // TODO - Translation 'subscription_management' => 'Subscriptions management', // TODO - Translation 'subscription_tools' => 'Subscription tools', // TODO - Translation + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'Subscriptions management', // TODO - Translation 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'RSS feeds management', // TODO - Translation + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Subscription tools', // TODO - Translation ), ); diff --git a/app/i18n/sk/gen.php b/app/i18n/sk/gen.php index 9f824d447..e5c31fe56 100644 --- a/app/i18n/sk/gen.php +++ b/app/i18n/sk/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promote', // TODO - Translation 'purge' => 'Purge', // TODO - Translation 'remove' => 'Odstrániť', + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'Zobraziť webovú stránku', 'submit' => 'Poslať', 'truncate' => 'Vymazať všetky články', diff --git a/app/i18n/sk/sub.php b/app/i18n/sk/sub.php index ef5cfd42a..c39962326 100644 --- a/app/i18n/sk/sub.php +++ b/app/i18n/sk/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'Import / export', 'subscription_management' => 'Správa odoberaných kanálov', 'subscription_tools' => 'Nástroje na odoberanie kanálov', + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'Správa odoberaných kanálov', 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'Správa RSS kanálov', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Nástroje na odoberanie kanálov', ), ); diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index 84c741908..64f6eca77 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => 'Promote', // TODO - Translation 'purge' => 'Purge', // TODO - Translation 'remove' => 'Sil', + 'rename' => 'Rename', // TODO - Translation 'see_website' => 'Siteyi gör', 'submit' => 'Onayla', 'truncate' => 'Tüm makaleleri sil', diff --git a/app/i18n/tr/sub.php b/app/i18n/tr/sub.php index c17cf57cc..bed94842a 100644 --- a/app/i18n/tr/sub.php +++ b/app/i18n/tr/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => 'İçe / dışa aktar', 'subscription_management' => 'Abonelik yönetimi', 'subscription_tools' => 'Subscription tools', // TODO - Translation + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => 'Abonelik yönetimi', 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => 'RSS akış yönetimi', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => 'Subscription tools', // TODO - Translation ), ); diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php index 3bc274fa1..3cabf9303 100644 --- a/app/i18n/zh-cn/gen.php +++ b/app/i18n/zh-cn/gen.php @@ -22,6 +22,7 @@ return array( 'promote' => '设为管理员', 'purge' => '清理', 'remove' => '删除', + 'rename' => 'Rename', // TODO - Translation 'see_website' => '网站中查看', 'submit' => '提交', 'truncate' => '删除所有文章', diff --git a/app/i18n/zh-cn/sub.php b/app/i18n/zh-cn/sub.php index c1cf0eed6..cfb9d08ee 100644 --- a/app/i18n/zh-cn/sub.php +++ b/app/i18n/zh-cn/sub.php @@ -108,13 +108,22 @@ return array( 'import_export' => '导入/导出', 'subscription_management' => '订阅管理', 'subscription_tools' => '订阅工具', + 'tag_management' => 'Tags management', // TODO - Translation + ), + 'tag' => array( + 'name' => 'Name', // TODO - Translation + 'new_name' => 'New name', // TODO - Translation + 'old_name' => 'Old name', // TODO - Translation ), 'title' => array( '_' => '订阅管理', 'add' => 'Add a feed/a category', // TODO - Translation 'add_category' => 'Add a category', // TODO - Translation 'add_feed' => 'Add a feed', // TODO - Translation + 'add_tag' => 'Add a tag', // TODO - Translation + 'delete_tag' => 'Delete a tag', // TODO - Translation 'feed_management' => '订阅源管理', + 'rename_tag' => 'Rename a tag', // TODO - Translation 'subscription_tools' => '订阅工具', ), ); diff --git a/app/layout/aside_subscription.phtml b/app/layout/aside_subscription.phtml index a0be99d25..43c60db72 100644 --- a/app/layout/aside_subscription.phtml +++ b/app/layout/aside_subscription.phtml @@ -16,4 +16,8 @@
  • + +
  • + +
  • diff --git a/app/views/tag/index.phtml b/app/views/tag/index.phtml new file mode 100644 index 000000000..3287506f7 --- /dev/null +++ b/app/views/tag/index.phtml @@ -0,0 +1,70 @@ +partial('aside_subscription'); ?> + +
    + + +

    +
    + +
    + +
    + +
    +
    + +
    +
    + +
    +
    +
    + +

    +
    + +
    + +
    + +
    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    +
    + +

    +
    + +
    + +
    + +
    +
    + +
    +
    + +
    +
    +
    +