|
|
@@ -2,38 +2,35 @@
|
|
|
|
|
|
namespace app\controllers;
|
|
|
|
|
|
-use app\models\anime;
|
|
|
-use \MongoRegex;
|
|
|
+use app\models\Anime;
|
|
|
+use app\models\Manga;
|
|
|
+use app\models\Kdrama;
|
|
|
+
|
|
|
|
|
|
class SearchController extends \lithium\action\Controller {
|
|
|
public $publicActions = array('index');
|
|
|
|
|
|
- public function index($type, $by = "series_title")
|
|
|
- {
|
|
|
+ protected $_types = array('Anime' => 'app\models\Anime',
|
|
|
+ 'Manga' => 'app\models\Manga',
|
|
|
+ 'Kdrama' => 'app\models\Kdrama',
|
|
|
|
|
|
- if (empty($this->request->query['search'])) {
|
|
|
- //Redirect them or something
|
|
|
- }
|
|
|
+ 'anime' => 'app\models\Anime',
|
|
|
+ 'manga' => 'app\models\Manga',
|
|
|
+ 'kdrama' => 'app\models\Kdrama');
|
|
|
|
|
|
-
|
|
|
- $searchParam = '/' . $this->request->query['search'] . '/i';
|
|
|
+ public function index($type, $by = 'title')
|
|
|
+ {
|
|
|
|
|
|
- $content;
|
|
|
- $limit = 20;
|
|
|
- $page = $this->request->page ?: 1;
|
|
|
- $total; //<-- number of search results
|
|
|
+ $searchParam = '/' . $this->request->query['search'] . '/i';
|
|
|
+ $page = $this->request->query['page'] ?: 1;
|
|
|
|
|
|
-
|
|
|
- switch($type)
|
|
|
+ //If the type part of the URL is a valid type (as defined above),
|
|
|
+ if (isset($this->_types[$type]))
|
|
|
{
|
|
|
- case "anime": $content = Anime::find('all', array('conditions' => array('title' => array('like' => $searchParam)), $limit, $page));
|
|
|
- $total = Anime::count(array('title' => array('like' => $searchParam)));
|
|
|
- break;
|
|
|
- case "kdrama": break;
|
|
|
- case "manga": break;
|
|
|
+ $model = $this->_types[$type];
|
|
|
+
|
|
|
+ //Forcing search to title for now, until the search frontend is done
|
|
|
+ return $model::search($searchParam, $page, 'title');
|
|
|
}
|
|
|
- return compact('content', 'type', 'by', 'limit', 'total', 'page');
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|