Anime.php 1021 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace app\models;
  3. class Anime extends \lithium\data\Model {
  4. protected $_meta = array('key' => '_id', 'source' => 'anime', 'connection' => 'mongo');
  5. public static function search($query, $page = 1, $by = 'title')
  6. {
  7. $defaults = array('limit' => 20);
  8. $limit = 20;
  9. switch($by) {
  10. case 'special_id':
  11. $anime = self::find('first',
  12. array('conditions' => array(
  13. $by => $query
  14. ),
  15. 'limit' => $limit,
  16. 'page' => $page
  17. ));
  18. $total = self::count(array($by => $query));
  19. break;
  20. default:
  21. if ($query)
  22. {
  23. $conditions = null; // TODO
  24. $anime = self::find('all', array(
  25. 'conditions' => array($by => array('like' => $query)),
  26. 'limit' => $limit,
  27. 'page' => $page
  28. ));
  29. $total = Anime::count(array($by => array('like' => $query)));
  30. }
  31. else
  32. {
  33. $anime = self::find('all', array(
  34. 'limit' => $limit,
  35. 'page' => $page
  36. ));
  37. $total = Anime::count();
  38. }
  39. }
  40. return compact('anime', 'by', 'limit', 'total', 'page');
  41. }
  42. }