From c62ec2a14428b528e20896d4e62fa08891e1399c Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Tue, 12 Mar 2013 23:24:52 +0100 Subject: [PATCH] =?UTF-8?q?Grosse=20mise=20=C3=A0=20jour=20du=20design,=20?= =?UTF-8?q?pas=20mal=20de=20trucs=20cass=C3=A9s=20au=20niveau=20du=20panne?= =?UTF-8?q?au=20de=20configuration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/indexController.php | 77 ++++--- app/layout/aside.phtml | 80 +++---- app/layout/configure_aside.phtml | 3 - app/layout/header.phtml | 28 +++ app/layout/layout.phtml | 6 +- app/models/Category.php | 42 ++-- app/models/Entry.php | 120 ++++++---- app/models/Feed.php | 56 ++--- app/views/configure/feed.phtml | 8 +- app/views/index/index.phtml | 6 +- public/theme/base.css | 280 +++++++++++------------ public/theme/icons/all.svg | 32 +++ public/theme/icons/close.svg | 28 +++ public/theme/icons/configure.svg | 31 +++ public/theme/{ => icons}/non-starred.svg | 0 public/theme/{ => icons}/read.svg | 0 public/theme/{ => icons}/refresh.svg | 0 public/theme/icons/search.svg | 32 +++ public/theme/{ => icons}/starred.svg | 0 public/theme/{ => icons}/unread.svg | 0 public/theme/{ => icons}/website.svg | 0 public/theme/read_mode.png | Bin 3543 -> 0 bytes 22 files changed, 517 insertions(+), 312 deletions(-) create mode 100644 app/layout/header.phtml create mode 100644 public/theme/icons/all.svg create mode 100644 public/theme/icons/close.svg create mode 100644 public/theme/icons/configure.svg rename public/theme/{ => icons}/non-starred.svg (100%) rename public/theme/{ => icons}/read.svg (100%) rename public/theme/{ => icons}/refresh.svg (100%) create mode 100644 public/theme/icons/search.svg rename public/theme/{ => icons}/starred.svg (100%) rename public/theme/{ => icons}/unread.svg (100%) rename public/theme/{ => icons}/website.svg (100%) delete mode 100644 public/theme/read_mode.png diff --git a/app/controllers/indexController.php b/app/controllers/indexController.php index bd5f31b08..916f77c98 100755 --- a/app/controllers/indexController.php +++ b/app/controllers/indexController.php @@ -5,15 +5,16 @@ class indexController extends ActionController { View::appendScript (Url::display ('/scripts/smoothscroll.js')); View::appendScript (Url::display ('/scripts/shortcut.js')); View::appendScript (Url::display (array ('c' => 'javascript', 'a' => 'main'))); - + $entryDAO = new EntryDAO (); + $feedDAO = new FeedDAO (); $catDAO = new CategoryDAO (); - + // pour optimiser $page = Request::param ('page', 1); $entryDAO->_nbItemsPerPage ($this->view->conf->postsPerPage ()); $entryDAO->_currentPage ($page); - + $default_view = $this->view->conf->defaultView (); $mode = Session::param ('mode'); if ($mode == false) { @@ -23,67 +24,87 @@ class indexController extends ActionController { $mode = $default_view; } } - + $get = Request::param ('get'); $order = $this->view->conf->sortOrder (); - + + $error = false; + // Récupère les flux par catégorie, favoris ou tous if ($get == 'favoris') { $entries = $entryDAO->listFavorites ($mode, $order); View::prependTitle ('Vos favoris - '); } elseif ($get != false) { - $entries = $entryDAO->listByCategory ($get, $mode, $order); - $cat = $catDAO->searchById ($get); - - if ($cat) { - View::prependTitle ($cat->name () . ' - '); + $typeGet = $get[0]; + $get = substr ($get, 2); + + if ($typeGet == 'c') { + $entries = $entryDAO->listByCategory ($get, $mode, $order); + $cat = $catDAO->searchById ($get); + + if ($cat) { + View::prependTitle ($cat->name () . ' - '); + } else { + $error = true; + } + } elseif ($typeGet == 'f') { + $entries = $entryDAO->listByFeed ($get, $mode, $order); + $feed = $feedDAO->searchById ($get); + + if ($feed) { + View::prependTitle ($feed->name () . ' - '); + } else { + $error = true; + } } else { - Error::error ( - 404, - array ('error' => array ('La page que vous cherchez n\'existe pas')) - ); + $error = true; } } else { View::prependTitle ('Vos flux RSS - '); } + $this->view->get = $get; $this->view->mode = $mode; - + // Cas où on ne choisie ni catégorie ni les favoris // ou si la catégorie ne correspond à aucune if (!isset ($entries)) { $entries = $entryDAO->listEntries ($mode, $order); } - + try { $this->view->entryPaginator = $entryDAO->getPaginator ($entries); } catch (CurrentPagePaginationException $e) { + $error = true; + } + + $this->view->cat_aside = $catDAO->listCategories (); + $this->view->nb_favorites = $entryDAO->countFavorites (); + $this->view->nb_total = $entryDAO->count (); + + if ($error) { Error::error ( 404, array ('error' => array ('La page que vous cherchez n\'existe pas')) ); } - - $this->view->cat_aside = $catDAO->listCategories (); - $this->view->nb_favorites = $entryDAO->countFavorites (); - $this->view->nb_total = $entryDAO->count (); } - + public function changeModeAction () { $mode = Request::param ('mode'); - + if ($mode == 'not_read') { Session::_param ('mode', 'not_read'); } else { Session::_param ('mode', 'all'); } - + Request::forward (array (), true); } - + public function loginAction () { $this->view->_useLayout (false); - + $url = 'https://verifier.login.persona.org/verify'; $assert = Request::param ('assertion'); $params = 'assertion=' . $assert . '&audience=' . @@ -98,7 +119,7 @@ class indexController extends ActionController { curl_setopt_array ($ch, $options); $result = curl_exec ($ch); curl_close ($ch); - + $res = json_decode ($result, true); if ($res['status'] == 'okay' && $res['email'] == $this->view->conf->mailLogin ()) { Session::_param ('mail', $res['email']); @@ -107,10 +128,10 @@ class indexController extends ActionController { $res['status'] = 'failure'; $res['reason'] = 'L\'identifiant est invalide'; } - + $this->view->res = json_encode ($res); } - + public function logoutAction () { $this->view->_useLayout (false); Session::_param ('mail'); diff --git a/app/layout/aside.phtml b/app/layout/aside.phtml index 1432c10ca..f1f14cfc0 100644 --- a/app/layout/aside.phtml +++ b/app/layout/aside.phtml @@ -1,51 +1,45 @@ -
- conf) || is_logged ()) { ?> -
- -
- - - - +
cat_aside)) { ?> -
    -
  • - - Tous - nb_total; ?> articlenb_total > 1 ? 's' : ''; ?> (nb_not_read; ?>) + diff --git a/app/layout/configure_aside.phtml b/app/layout/configure_aside.phtml index b7a8fdeef..26a111045 100644 --- a/app/layout/configure_aside.phtml +++ b/app/layout/configure_aside.phtml @@ -4,9 +4,6 @@
  • > Général et affichage
  • -
  • > - Flux RSS -
  • > Catégories
  • diff --git a/app/layout/header.phtml b/app/layout/header.phtml new file mode 100644 index 000000000..d158e6353 --- /dev/null +++ b/app/layout/header.phtml @@ -0,0 +1,28 @@ +
    +
    +

    FreshRSS

    +
    + + + + conf) || is_logged ()) { ?> +
    + +
    + + + +
    diff --git a/app/layout/layout.phtml b/app/layout/layout.phtml index 5b2adae1e..4adcbef45 100644 --- a/app/layout/layout.phtml +++ b/app/layout/layout.phtml @@ -8,8 +8,12 @@ +partial ('header'); ?> +
    + partial ('aside'); ?> +
    render (); ?> @@ -21,7 +25,7 @@ notification)) { ?>
    notification['content']; ?> - X +
    diff --git a/app/models/Category.php b/app/models/Category.php index ceecea453..ef214137e 100755 --- a/app/models/Category.php +++ b/app/models/Category.php @@ -4,12 +4,13 @@ class Category extends Model { private $id = false; private $name; private $color; - + private $feeds = null; + public function __construct ($name = '', $color = '#0062BE') { $this->_name ($name); $this->_color ($color); } - + public function id () { if (!$this->id) { return small_hash ($this->name . Configuration::selApplication ()); @@ -31,7 +32,15 @@ class Category extends Model { $catDAO = new CategoryDAO (); return $catDAO->countNotRead ($this->id ()); } - + public function feeds () { + if (is_null ($this->feeds)) { + $feedDAO = new FeedDAO (); + return $feedDAO->listByCategory ($this->id ()); + } else { + return $this->feeds; + } + } + public function _id ($value) { $this->id = $value; } @@ -45,6 +54,13 @@ class Category extends Model { $this->color = '#0062BE'; } } + public function _feeds ($values) { + if (!is_array ($values)) { + $values = array ($values); + } + + $this->feeds = $values; + } } class CategoryDAO extends Model_pdo { @@ -64,7 +80,7 @@ class CategoryDAO extends Model_pdo { return false; } } - + public function updateCategory ($id, $valuesTmp) { $sql = 'UPDATE category SET name=?, color=? WHERE id=?'; $stm = $this->bd->prepare ($sql); @@ -81,7 +97,7 @@ class CategoryDAO extends Model_pdo { return false; } } - + public function deleteCategory ($id) { $sql = 'DELETE FROM category WHERE id=?'; $stm = $this->bd->prepare ($sql); @@ -94,24 +110,24 @@ class CategoryDAO extends Model_pdo { return false; } } - + public function searchById ($id) { $sql = 'SELECT * FROM category WHERE id=?'; $stm = $this->bd->prepare ($sql); - + $values = array ($id); - + $stm->execute ($values); $res = $stm->fetchAll (PDO::FETCH_ASSOC); $cat = HelperCategory::daoToCategory ($res); - + if (isset ($cat[0])) { return $cat[0]; } else { return false; } } - + public function listCategories () { $sql = 'SELECT * FROM category ORDER BY name'; $stm = $this->bd->prepare ($sql); @@ -119,7 +135,7 @@ class CategoryDAO extends Model_pdo { return HelperCategory::daoToCategory ($stm->fetchAll (PDO::FETCH_ASSOC)); } - + public function count () { $sql = 'SELECT COUNT(*) AS count FROM category'; $stm = $this->bd->prepare ($sql); @@ -128,7 +144,7 @@ class CategoryDAO extends Model_pdo { return $res[0]['count']; } - + public function countFeed ($id) { $sql = 'SELECT COUNT(*) AS count FROM feed WHERE category=?'; $stm = $this->bd->prepare ($sql); @@ -138,7 +154,7 @@ class CategoryDAO extends Model_pdo { return $res[0]['count']; } - + public function countNotRead ($id) { $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id WHERE category=? AND e.is_read=0'; $stm = $this->bd->prepare ($sql); diff --git a/app/models/Entry.php b/app/models/Entry.php index 4790a1681..f2aebbd24 100755 --- a/app/models/Entry.php +++ b/app/models/Entry.php @@ -11,7 +11,7 @@ class Entry extends Model { private $is_read; private $is_favorite; private $feed; - + public function __construct ($feed = '', $guid = '', $title = '', $author = '', $content = '', $link = '', $pubdate = 0, $is_read = false, $is_favorite = false) { $this->_guid ($guid); @@ -24,7 +24,7 @@ class Entry extends Model { $this->_isFavorite ($is_favorite); $this->_feed ($feed); } - + public function id () { if(is_null($this->id)) { return small_hash ($this->guid . Configuration::selApplication ()); @@ -125,21 +125,21 @@ class EntryDAO extends Model_pdo { return false; } } - + public function updateEntry ($id, $valuesTmp) { if (isset ($valuesTmp['content'])) { $valuesTmp['content'] = base64_encode (gzdeflate (serialize ($valuesTmp['content']))); } - + $set = ''; foreach ($valuesTmp as $key => $v) { $set .= $key . '=?, '; } $set = substr ($set, 0, -2); - + $sql = 'UPDATE entry SET ' . $set . ' WHERE id=?'; $stm = $this->bd->prepare ($sql); - + foreach ($valuesTmp as $v) { $values[] = $v; } @@ -151,21 +151,21 @@ class EntryDAO extends Model_pdo { return false; } } - + public function updateEntries ($valuesTmp) { if (isset ($valuesTmp['content'])) { $valuesTmp['content'] = base64_encode (gzdeflate (serialize ($valuesTmp['content']))); } - + $set = ''; foreach ($valuesTmp as $key => $v) { $set .= $key . '=?, '; } $set = substr ($set, 0, -2); - + $sql = 'UPDATE entry SET ' . $set; $stm = $this->bd->prepare ($sql); - + foreach ($valuesTmp as $v) { $values[] = $v; } @@ -176,7 +176,7 @@ class EntryDAO extends Model_pdo { return false; } } - + public function cleanOldEntries ($nb_month) { $date = 60 * 60 * 24 * 30 * $nb_month; $sql = 'DELETE FROM entry WHERE date <= ? AND is_favorite = 0'; @@ -185,52 +185,52 @@ class EntryDAO extends Model_pdo { $values = array ( time () - $date ); - + if ($stm && $stm->execute ($values)) { return true; } else { return false; } } - + public function searchById ($id) { $sql = 'SELECT * FROM entry WHERE id=?'; $stm = $this->bd->prepare ($sql); - + $values = array ($id); - + $stm->execute ($values); $res = $stm->fetchAll (PDO::FETCH_ASSOC); $entry = HelperEntry::daoToEntry ($res); - + if (isset ($entry[0])) { return $entry[0]; } else { return false; } } - + public function listEntries ($mode, $order = 'high_to_low') { $where = ''; if ($mode == 'not_read') { $where = ' WHERE is_read=0'; } - + if ($order == 'low_to_high') { $order = ' DESC'; } else { $order = ''; } - + $sql = 'SELECT COUNT(*) AS count FROM entry' . $where; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); $this->nbItems = $res[0]['count']; - + $deb = ($this->currentPage - 1) * $this->nbItemsPerPage; $fin = $this->nbItemsPerPage; - + $sql = 'SELECT * FROM entry' . $where . ' ORDER BY date' . $order . ' LIMIT ' . $deb . ', ' . $fin; @@ -239,77 +239,111 @@ class EntryDAO extends Model_pdo { return HelperEntry::daoToEntry ($stm->fetchAll (PDO::FETCH_ASSOC)); } - + public function listFavorites ($mode, $order = 'high_to_low') { $where = ' WHERE is_favorite=1'; if ($mode == 'not_read') { $where .= ' AND is_read=0'; } - + if ($order == 'low_to_high') { $order = ' DESC'; } else { $order = ''; } - + $sql = 'SELECT COUNT(*) AS count FROM entry' . $where; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); $this->nbItems = $res[0]['count']; - + if($this->nbItemsPerPage < 0) { $sql = 'SELECT * FROM entry' . $where . ' ORDER BY date' . $order; } else { $deb = ($this->currentPage - 1) * $this->nbItemsPerPage; $fin = $this->nbItemsPerPage; - + $sql = 'SELECT * FROM entry' . $where . ' ORDER BY date' . $order . ' LIMIT ' . $deb . ', ' . $fin; } $stm = $this->bd->prepare ($sql); - + $stm->execute (); return HelperEntry::daoToEntry ($stm->fetchAll (PDO::FETCH_ASSOC)); } - + public function listByCategory ($cat, $mode, $order = 'high_to_low') { $where = ' WHERE category=?'; if ($mode == 'not_read') { $where .= ' AND is_read=0'; } - + if ($order == 'low_to_high') { $order = ' DESC'; } else { $order = ''; } - + $sql = 'SELECT COUNT(*) AS count FROM entry e INNER JOIN feed f ON e.id_feed = f.id' . $where; $stm = $this->bd->prepare ($sql); $values = array ($cat); $stm->execute ($values); $res = $stm->fetchAll (PDO::FETCH_ASSOC); $this->nbItems = $res[0]['count']; - + $deb = ($this->currentPage - 1) * $this->nbItemsPerPage; $fin = $this->nbItemsPerPage; $sql = 'SELECT * FROM entry e INNER JOIN feed f ON e.id_feed = f.id' . $where . ' ORDER BY date' . $order . ' LIMIT ' . $deb . ', ' . $fin; - + $stm = $this->bd->prepare ($sql); - + $values = array ($cat); - + $stm->execute ($values); return HelperEntry::daoToEntry ($stm->fetchAll (PDO::FETCH_ASSOC)); } - + + public function listByFeed ($feed, $mode, $order = 'high_to_low') { + $where = ' WHERE id_feed=?'; + if ($mode == 'not_read') { + $where .= ' AND is_read=0'; + } + + if ($order == 'low_to_high') { + $order = ' DESC'; + } else { + $order = ''; + } + + $sql = 'SELECT COUNT(*) AS count FROM entry' . $where; + $stm = $this->bd->prepare ($sql); + $values = array ($feed); + $stm->execute ($values); + $res = $stm->fetchAll (PDO::FETCH_ASSOC); + $this->nbItems = $res[0]['count']; + + $deb = ($this->currentPage - 1) * $this->nbItemsPerPage; + $fin = $this->nbItemsPerPage; + $sql = 'SELECT * FROM entry e' . $where + . ' ORDER BY date' . $order + . ' LIMIT ' . $deb . ', ' . $fin; + + $stm = $this->bd->prepare ($sql); + + $values = array ($feed); + + $stm->execute ($values); + + return HelperEntry::daoToEntry ($stm->fetchAll (PDO::FETCH_ASSOC)); + } + public function count () { $sql = 'SELECT COUNT(*) AS count FROM entry'; $stm = $this->bd->prepare ($sql); @@ -318,25 +352,25 @@ class EntryDAO extends Model_pdo { return $res[0]['count']; } - + public function countNotRead () { $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_read=0'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); - + return $res[0]['count']; } - + public function countFavorites () { $sql = 'SELECT COUNT(*) AS count FROM entry WHERE is_favorite=1'; $stm = $this->bd->prepare ($sql); $stm->execute (); $res = $stm->fetchAll (PDO::FETCH_ASSOC); - + return $res[0]['count']; } - + // gestion de la pagination directement via le DAO private $nbItemsPerPage = 1; private $currentPage = 1; @@ -347,13 +381,13 @@ class EntryDAO extends Model_pdo { public function _currentPage ($value) { $this->currentPage = $value; } - + public function getPaginator ($entries) { $paginator = new Paginator ($entries); $paginator->_nbItems ($this->nbItems); $paginator->_nbItemsPerPage ($this->nbItemsPerPage); $paginator->_currentPage ($this->currentPage); - + return $paginator; } } @@ -361,7 +395,7 @@ class EntryDAO extends Model_pdo { class HelperEntry { public static function daoToEntry ($listDAO, $mode = 'all', $favorite = false) { $list = array (); - + if (!is_array ($listDAO)) { $listDAO = array ($listDAO); } diff --git a/app/models/Feed.php b/app/models/Feed.php index db051c948..046e5af92 100644 --- a/app/models/Feed.php +++ b/app/models/Feed.php @@ -9,11 +9,11 @@ class Feed extends Model { private $website = ''; private $description = ''; private $lastUpdate = 0; - + public function __construct ($url) { $this->_url ($url); } - + public function id () { if(is_null($this->id)) { return small_hash ($this->url . Configuration::selApplication ()); @@ -58,7 +58,7 @@ class Feed extends Model { if (!is_null ($value) && !preg_match ('#^https?://#', $value)) { $value = 'http://' . $value; } - + if (!is_null ($value) && filter_var ($value, FILTER_VALIDATE_URL)) { $this->url = $value; } else { @@ -89,7 +89,7 @@ class Feed extends Model { public function _lastUpdate ($value) { $this->lastUpdate = $value; } - + public function load () { if (!is_null ($this->url)) { if (CACHE_PATH === false) { @@ -113,13 +113,13 @@ class Feed extends Model { } private function loadEntries ($feed) { $entries = array (); - + foreach ($feed->get_items () as $item) { $title = $item->get_title (); $author = $item->get_author (); $link = $item->get_permalink (); $date = strtotime ($item->get_date ()); - + // Gestion du contenu // On cherche à récupérer les articles en entier... même si le flux ne le propose pas $path = get_path ($this->website ()); @@ -132,7 +132,7 @@ class Feed extends Model { } else { $content = $item->get_content (); } - + $entry = new Entry ( $this->id (), $item->get_id (), @@ -142,10 +142,10 @@ class Feed extends Model { !is_null ($link) ? $link : '', $date ? $date : time () ); - + $entries[$entry->id ()] = $entry; } - + $this->entries = $entries; } } @@ -171,14 +171,14 @@ class FeedDAO extends Model_pdo { return false; } } - + public function updateFeed ($id, $valuesTmp) { $set = ''; foreach ($valuesTmp as $key => $v) { $set .= $key . '=?, '; } $set = substr ($set, 0, -2); - + $sql = 'UPDATE feed SET ' . $set . ' WHERE id=?'; $stm = $this->bd->prepare ($sql); @@ -193,7 +193,7 @@ class FeedDAO extends Model_pdo { return false; } } - + public function updateLastUpdate ($id) { $sql = 'UPDATE feed SET lastUpdate=? WHERE id=?'; $stm = $this->bd->prepare ($sql); @@ -209,7 +209,7 @@ class FeedDAO extends Model_pdo { return false; } } - + public function deleteFeed ($id) { $sql = 'DELETE FROM feed WHERE id=?'; $stm = $this->bd->prepare ($sql); @@ -222,24 +222,24 @@ class FeedDAO extends Model_pdo { return false; } } - + public function searchById ($id) { $sql = 'SELECT * FROM feed WHERE id=?'; $stm = $this->bd->prepare ($sql); - + $values = array ($id); - + $stm->execute ($values); $res = $stm->fetchAll (PDO::FETCH_ASSOC); $feed = HelperFeed::daoToFeed ($res); - - if (isset ($feed[0])) { - return $feed[0]; + + if (isset ($feed[$id])) { + return $feed[$id]; } else { return false; } } - + public function listFeeds () { $sql = 'SELECT * FROM feed ORDER BY name'; $stm = $this->bd->prepare ($sql); @@ -247,7 +247,7 @@ class FeedDAO extends Model_pdo { return HelperFeed::daoToFeed ($stm->fetchAll (PDO::FETCH_ASSOC)); } - + public function listFeedsOrderUpdate () { $sql = 'SELECT * FROM feed ORDER BY lastUpdate'; $stm = $this->bd->prepare ($sql); @@ -255,18 +255,18 @@ class FeedDAO extends Model_pdo { return HelperFeed::daoToFeed ($stm->fetchAll (PDO::FETCH_ASSOC)); } - + public function listByCategory ($cat) { $sql = 'SELECT * FROM feed WHERE category=? ORDER BY name'; $stm = $this->bd->prepare ($sql); - + $values = array ($cat); - + $stm->execute ($values); return HelperFeed::daoToFeed ($stm->fetchAll (PDO::FETCH_ASSOC)); } - + public function count () { $sql = 'SELECT COUNT(*) AS count FROM feed'; $stm = $this->bd->prepare ($sql); @@ -275,7 +275,7 @@ class FeedDAO extends Model_pdo { return $res[0]['count']; } - + public function countEntries ($id) { $sql = 'SELECT COUNT(*) AS count FROM entry WHERE id_feed=?'; $stm = $this->bd->prepare ($sql); @@ -296,6 +296,10 @@ class HelperFeed { } foreach ($listDAO as $key => $dao) { + if (isset ($dao['id'])) { + $key = $dao['id']; + } + $list[$key] = new Feed ($dao['url']); $list[$key]->_category ($dao['category']); $list[$key]->_name ($dao['name']); diff --git a/app/views/configure/feed.phtml b/app/views/configure/feed.phtml index 0acec1872..1b8d77595 100644 --- a/app/views/configure/feed.phtml +++ b/app/views/configure/feed.phtml @@ -1,9 +1,15 @@
    - partial ('configure_aside'); ?> + partial ('configure_aside'); */ ?>
    • Vox flux RSS

    • + conf) || is_logged ()) { ?> +
    • + + +
    • + feeds)) { ?> feeds as $feed) { ?>
    • flux && $this->flux->id () == $feed->id ()) ? 'class="active"' : ''; ?>> diff --git a/app/views/index/index.phtml b/app/views/index/index.phtml index 429792b71..127a09ddd 100644 --- a/app/views/index/index.phtml +++ b/app/views/index/index.phtml @@ -1,8 +1,6 @@ entryPaginator->items (true); ?> - -
      - + conf) || is_logged ()) { ?> Tout marquer comme lu + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + diff --git a/public/theme/icons/close.svg b/public/theme/icons/close.svg new file mode 100644 index 000000000..c0c786fd6 --- /dev/null +++ b/public/theme/icons/close.svg @@ -0,0 +1,28 @@ + + + + + Gnome Symbolic Icon Theme + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + + + diff --git a/public/theme/icons/configure.svg b/public/theme/icons/configure.svg new file mode 100644 index 000000000..52df8bca7 --- /dev/null +++ b/public/theme/icons/configure.svg @@ -0,0 +1,31 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + diff --git a/public/theme/non-starred.svg b/public/theme/icons/non-starred.svg similarity index 100% rename from public/theme/non-starred.svg rename to public/theme/icons/non-starred.svg diff --git a/public/theme/read.svg b/public/theme/icons/read.svg similarity index 100% rename from public/theme/read.svg rename to public/theme/icons/read.svg diff --git a/public/theme/refresh.svg b/public/theme/icons/refresh.svg similarity index 100% rename from public/theme/refresh.svg rename to public/theme/icons/refresh.svg diff --git a/public/theme/icons/search.svg b/public/theme/icons/search.svg new file mode 100644 index 000000000..acfb364cc --- /dev/null +++ b/public/theme/icons/search.svg @@ -0,0 +1,32 @@ + + + + + + + + image/svg+xml + + Gnome Symbolic Icon Theme + + + + + + + Gnome Symbolic Icon Theme + + + + + + + + + + + + + + + diff --git a/public/theme/starred.svg b/public/theme/icons/starred.svg similarity index 100% rename from public/theme/starred.svg rename to public/theme/icons/starred.svg diff --git a/public/theme/unread.svg b/public/theme/icons/unread.svg similarity index 100% rename from public/theme/unread.svg rename to public/theme/icons/unread.svg diff --git a/public/theme/website.svg b/public/theme/icons/website.svg similarity index 100% rename from public/theme/website.svg rename to public/theme/icons/website.svg diff --git a/public/theme/read_mode.png b/public/theme/read_mode.png deleted file mode 100644 index 881399237345b74cf6012bee9625c756b250a501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3543 zcmb_f3vd%v6pbBY!z)s56YB!XPR_LHVkq3?m;=qNpG!Aj1qQ;0JY7z~87?#n0PKvLu~QKSO8IX7}BD z?s@l~``+yX4fRupl#VPlnM_0cb>2qw7t=l^1JQ4_v-2mDY4A8c)B;-qx6!N=wJ@C2 z3M|Q}jMhyi$E2jpu~^~bVzru)g<0(oA(J$VYPklH#_$4_Rd^Zll89-TOsf=wP8>(;SO#2flc1!w zNwN__R5Lk4*&~c)g0hfAt|LlFBOhslYGKDDBkL}TZqwJZf1f^K0)hU`qtQHg75d_6 zlbM9&?Iue~4Ry$XXauShQ&`}O0}+S%R7D%3@#T)|}F9Q({5-4RRDYMlU zqAF;cjixGZAt@x&tbHIr`$ZKpA`ARpCyu}^JkQZJ6<%AV$L6lFT5Eg=!(Lb>md&g?huo1(t*6>s=_9Sx|KL6y35ypQ;eWws4T3o?WTZ)DA|M2m zsH(4|o5wA{^i%p#;I)pS1xAdZ{hB!tW?}-wT^g>Q{%O=qr` zMC~qQGZj=}*~U4z0%NzM}iE()gmZ*YPTpl#U#tK`<|$sNUWf zrZ)o3uo@F5t}=1J>G?-{PcQKWD)_HTU?3#g0D?BuQW>IZ=n6YcQaNfdjM+AnJ56|m zc4TT|!--2r{9j4W;L?Y9L75xI7bl)BWwro%@%og=!Lc-}NkmfmE17F5Y6Ssl3Uw_T zLlurl=R)*8p|sG*EqepxgwLuib4^@K+ReNI!U_{b2Za7u^uL$zQlC!wR2;e28m-5Y6pw@k z5f=Kzu%sVE`8Ir$A~Z`1nv-%SnusBO3mQ5yr-CDMA=3URI-N7%IT^_6-Vkx-*em2# zk3{Um3x>hc+0UXmh(i8)Sc8y9k~{Q*OizfQ-?r{UDc|w`kjh8UXr<}rOnT^L`W>1e z(dbGTvnzTqre7eUb67#MZR+hCtI%9L0{U8DPzu8YqX1KSgw^xjh-Qn9dHaCFWGb5C z_qs#L56?93pNqT8&Q>ixaBpq2?3y3CZW-=A-^Km8`%IXRZy7wl>xaSCnc#`uqIa*` z1LE;2m%QZK;l-&9-Q({+X20&khWNx0wxhe=>AH1k)6tW`m%m-}&29FgH(QtZ)*Sx5 zWx}#i550Zx!2#%J*{CvEyIp z*|cWY>2tsD__6!oeT?<-SKPs+=l|N8nj@>jy1Y2E<3-QHb<1~*zUj(0K7Dv%$(~d5 zj+Ac-zPD}U;wg)ta!l?xS-$$o8B_hlcP*ya%4ui2;ke+@6@#xs>&?F{Jn##?_V$@CZP~DodwpT0~>BqLvMT_yhV*WG3eY4sk4*zQ_F2*7k##~ zctHyD)SZ0f)SzYJu|a!>`mQY*Fs<#N`OTgO>?KW=Pjt*W^w^lIlE2M)-um>xAv=q& zAm&~cpTE6j!iu4zSA8$fpzLG7>x;fn_MMxx@BI8pPaU4^FTH2;?VJ93wdaOJZQux3 zHkRErYu)tD5ue_@clbSb5UYaox=)>1`RAOUdcPWbzLa|CvF5w)3YF~|M4Ip^UzWU@ S+MxaGX7c;$z0cRqS@1WD{h-kR