indexController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. class indexController extends ActionController {
  3. public function indexAction () {
  4. $entryDAO = new EntryDAO ();
  5. $catDAO = new CategoryDAO ();
  6. $mode = Session::param ('mode', $this->view->conf->defaultView ());
  7. $get = Request::param ('get');
  8. // Récupère les flux par catégorie, favoris ou tous
  9. if ($get == 'favoris') {
  10. $entries = $entryDAO->listFavorites ($mode);
  11. } elseif ($get != false) {
  12. $entries = $entryDAO->listByCategory ($get, $mode);
  13. }
  14. // Cas où on ne choisie ni catégorie ni les favoris
  15. // ou si la catégorie ne correspond à aucune
  16. if (!isset ($entries)) {
  17. $entries = $entryDAO->listEntries ($mode);
  18. }
  19. // Tri par date
  20. if ($this->view->conf->sortOrder () == 'high_to_low') {
  21. usort ($entries, 'sortReverseEntriesByDate');
  22. } else {
  23. usort ($entries, 'sortEntriesByDate');
  24. }
  25. // Gestion pagination
  26. $page = Request::param ('page', 1);
  27. $this->view->entryPaginator = new Paginator ($entries);
  28. $this->view->entryPaginator->_nbItemsPerPage ($this->view->conf->postsPerPage ());
  29. $this->view->entryPaginator->_currentPage ($page);
  30. $this->view->cat_aside = $catDAO->listCategories ();
  31. }
  32. public function changeModeAction () {
  33. $mode = Request::param ('mode');
  34. if ($mode == 'not_read') {
  35. Session::_param ('mode', 'not_read');
  36. } else {
  37. Session::_param ('mode', 'all');
  38. }
  39. Request::forward (array (), true);
  40. }
  41. }