summaryrefslogtreecommitdiff
path: root/app/models/EntriesGetter.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/EntriesGetter.php')
-rw-r--r--app/models/EntriesGetter.php156
1 files changed, 0 insertions, 156 deletions
diff --git a/app/models/EntriesGetter.php b/app/models/EntriesGetter.php
deleted file mode 100644
index 803aad732..000000000
--- a/app/models/EntriesGetter.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-
-class EntriesGetter {
- private $type = array (
- 'type' => 'all',
- 'id' => 'all'
- );
- private $state = 'all';
- private $filter = array (
- 'words' => array (),
- 'tags' => array (),
- );
- private $order = 'high_to_low';
- private $entries = array ();
-
- private $nb = 1;
- private $first = '';
- private $next = '';
-
- public function __construct ($type, $state, $filter, $order, $nb, $first = '') {
- $this->_type ($type);
- $this->_state ($state);
- $this->_filter ($filter);
- $this->_order ($order);
- $this->nb = $nb;
- $this->first = $first;
- }
-
- public function type () {
- return $this->type;
- }
- public function state () {
- return $this->state;
- }
- public function filter () {
- return $this->filter;
- }
- public function order () {
- return $this->order;
- }
- public function entries () {
- return $this->entries;
- }
-
- public function _type ($value) {
- if (!is_array ($value) ||
- !isset ($value['type']) ||
- !isset ($value['id'])) {
- throw new EntriesGetterException ('Bad type line ' . __LINE__ . ' in file ' . __FILE__);
- }
-
- $type = $value['type'];
- $id = $value['id'];
-
- if ($type != 'all' && $type != 'favoris' && $type != 'public' && $type != 'c' && $type != 'f') {
- throw new EntriesGetterException ('Bad type line ' . __LINE__ . ' in file ' . __FILE__);
- }
-
- if (($type == 'all' || $type == 'favoris' || $type == 'public') &&
- ($type != $id)) {
- throw new EntriesGetterException ('Bad type line ' . __LINE__ . ' in file ' . __FILE__);
- }
-
- $this->type = $value;
- }
- public function _state ($value) {
- if ($value != 'all' && $value != 'not_read' && $value != 'read') {
- throw new EntriesGetterException ('Bad state line ' . __LINE__ . ' in file ' . __FILE__);
- }
-
- $this->state = $value;
- }
- public function _filter ($value) {
- $value = trim ($value);
- $terms = explode (' ', $value);
-
- foreach ($terms as $word) {
- if (!empty ($word) && $word[0] == '#' && isset ($word[1])) {
- $tag = substr ($word, 1);
- $this->filter['tags'][$tag] = $tag;
- } elseif (!empty ($word)) {
- $this->filter['words'][$word] = $word;
- }
- }
- }
- public function _order ($value) {
- if ($value != 'high_to_low' && $value != 'low_to_high') {
- throw new EntriesGetterException ('Bad order line ' . __LINE__ . ' in file ' . __FILE__);
- }
-
- $this->order = $value;
- }
-
- public function execute () {
- $entryDAO = new EntryDAO ();
-
- HelperEntry::$nb = $this->nb; //TODO: Update: Now done in SQL
- HelperEntry::$first = $this->first; //TODO: Update: Now done in SQL
- HelperEntry::$filter = $this->filter;
-
- $sqlLimit = (empty ($this->filter['words']) && empty ($this->filter['tags'])) ? $this->nb : ''; //Disable SQL LIMIT optimisation during search //TODO: Do better!
-
- switch ($this->type['type']) {
- case 'all':
- list ($this->entries, $this->next) = $entryDAO->listEntries (
- $this->state,
- $this->order,
- $this->first,
- $sqlLimit
- );
- break;
- case 'favoris':
- list ($this->entries, $this->next) = $entryDAO->listFavorites (
- $this->state,
- $this->order,
- $this->first,
- $sqlLimit
- );
- break;
- case 'public':
- list ($this->entries, $this->next) = $entryDAO->listPublic (
- $this->state,
- $this->order,
- $this->first,
- $sqlLimit
- );
- break;
- case 'c':
- list ($this->entries, $this->next) = $entryDAO->listByCategory (
- $this->type['id'],
- $this->state,
- $this->order,
- $this->first,
- $sqlLimit
- );
- break;
- case 'f':
- list ($this->entries, $this->next) = $entryDAO->listByFeed (
- $this->type['id'],
- $this->state,
- $this->order,
- $this->first,
- $sqlLimit
- );
- break;
- default:
- throw new EntriesGetterException ('Bad type line ' . __LINE__ . ' in file ' . __FILE__);
- }
- }
-
- public function getPaginator () {
- $paginator = new RSSPaginator ($this->entries, $this->next);
-
- return $paginator;
- }
-}