|
|
@@ -1,57 +1,26 @@
|
|
|
-<?php
|
|
|
-
|
|
|
-namespace app\controllers;
|
|
|
+<?php
|
|
|
+namespace app\controllers;
|
|
|
|
|
|
use app\models\Anime;
|
|
|
use app\models\Manga;
|
|
|
use app\models\Kdrama;
|
|
|
|
|
|
-
|
|
|
class SearchController extends \lithium\action\Controller {
|
|
|
- public $publicActions = array('index');
|
|
|
-
|
|
|
- protected $_types = array('Anime' => 'app\models\Anime',
|
|
|
- 'Manga' => 'app\models\Manga',
|
|
|
- 'Kdrama' => 'app\models\Kdrama',
|
|
|
-
|
|
|
- 'anime' => 'app\models\Anime',
|
|
|
- 'manga' => 'app\models\Manga',
|
|
|
- 'kdrama' => 'app\models\Kdrama');
|
|
|
-
|
|
|
-
|
|
|
- public function index($type, $by = 'title')
|
|
|
- {
|
|
|
- //Regex-ize the search param
|
|
|
- $searchParam = (isset($this->request->query['search'])) ?
|
|
|
- '/' . $this->request->query['search'] . '/i' : "";
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- //Get the page number
|
|
|
- $page = isset($this->request->query['page']) ? $this->request->query['page'] : 1;
|
|
|
+ public $publicActions = array('index', 'anime');
|
|
|
|
|
|
- $headers = array();
|
|
|
- switch ($type)
|
|
|
+ public function index() {
|
|
|
+ if (isset($this->request->query['q']))
|
|
|
{
|
|
|
- case 'Anime':
|
|
|
- case 'anime': $headers = array('title' => 'Title',
|
|
|
- 'episode_count' => 'Episodes',
|
|
|
- 'view_type' => 'Type', 'mal_score' => 'MAL Score');
|
|
|
-
|
|
|
- case 'Kdrama':
|
|
|
- case 'Kdrama': $headers = array('title' => 'Title',
|
|
|
- 'episode_count' => 'Episodes');
|
|
|
-
|
|
|
+ $q = '/' . $this->request->query['q'] . '/i';
|
|
|
+ return Anime::search($q, $page, 'title');
|
|
|
}
|
|
|
+ return $this->render(array('template' => 'index'));
|
|
|
+ }
|
|
|
|
|
|
- //If the type part of the URL is a valid type (as defined above),
|
|
|
- if (isset($this->_types[$type]))
|
|
|
- {
|
|
|
- $model = $this->_types[$type];
|
|
|
-
|
|
|
- //Forcing search to title for now, until the search frontend is done
|
|
|
- $search = $model::search($searchParam, $page, 'title');
|
|
|
- return array('content' => $search['content'], 'page' => $search['page'], 'headers' => $headers, 'total' => $search['total'], 'limit' => $search['limit']);
|
|
|
- }
|
|
|
+ public function anime($by = 'title')
|
|
|
+ {
|
|
|
+ $q = isset($this->request->query['q']) ? '/' . $this->request->query['q'] . '/i' : '';
|
|
|
+ $page = isset($this->request->query['page']) ? $this->request->query['page'] : 1;
|
|
|
+ return Anime::search($q, $page, 'title');
|
|
|
}
|
|
|
}
|