AnimelistController.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace app\controllers;
  3. use app\models\contentList;
  4. use app\models\User;
  5. use app\models\Anime;
  6. class AnimeListController extends \lithium\action\Controller {
  7. public $publicActions = array('view');
  8. public function view($username, $sort = "all")
  9. {
  10. $user = User::find('first', array('conditions' => compact('username')));
  11. $watching = array();
  12. $paused = array();
  13. $dropped = array();
  14. $planning = array();
  15. $finished = array();
  16. foreach($user->animelist as $entry)
  17. {
  18. switch($entry->my_status)
  19. {
  20. case "Completed": $finished[] = $entry; break;
  21. case "Watching": $watching[] = $entry; break;
  22. case "On-Hold" : $paused[] = $entry; break;
  23. case "Dropped" : $dropped[] = $entry; break;
  24. case "Plan to Watch": $planning[] = $entry; break;
  25. }
  26. }
  27. //In the future we can use set or something
  28. switch($sort)
  29. {
  30. case "planning" : return compact('user', 'planning'); break;
  31. case "completed" : return compact('user', 'finished'); break;
  32. case "onhold": return compact('user', 'paused'); break;
  33. case "watching" : return compact('user', 'watching'); break;
  34. case "dropped": return compact('user', 'dropped');
  35. default: return compact('user', 'watching', 'paused', 'dropped', 'planning', 'finished'); break;
  36. }
  37. }
  38. public function add($id)
  39. {
  40. if (empty($this->request->data))
  41. {
  42. $anime = Anime::find('first', array('conditions' => array('special_id' => $id)));
  43. $entry = null;
  44. return compact('anime', 'entry');
  45. }
  46. $entry = Entry::create($this->request->data);
  47. if (isset($this->request->data['tags']))
  48. {
  49. $entry->my_tags = explode(' ', $this->request->data['tags']);
  50. unset($this->request->data['tags']);
  51. }
  52. if ($entry->validates()) {
  53. $entry->add($username);
  54. return $this->redirects('Animelist::Index');
  55. }
  56. return $entry;
  57. }
  58. }