2015-06-16 11:11:35 -04:00
|
|
|
<?php
|
|
|
|
/**
|
2015-11-16 11:40:01 -05:00
|
|
|
* Hummingbird Anime Client
|
|
|
|
*
|
|
|
|
* An API client for Hummingbird to manage anime and manga watch lists
|
|
|
|
*
|
|
|
|
* @package HummingbirdAnimeClient
|
|
|
|
* @author Timothy J. Warren
|
|
|
|
* @copyright Copyright (c) 2015
|
|
|
|
* @link https://github.com/timw4mail/HummingBirdAnimeClient
|
|
|
|
* @license MIT
|
2015-06-16 11:11:35 -04:00
|
|
|
*/
|
2015-09-14 19:54:34 -04:00
|
|
|
namespace Aviat\AnimeClient\Controller;
|
2015-09-14 10:54:50 -04:00
|
|
|
|
2015-09-17 23:11:18 -04:00
|
|
|
use Aviat\Ion\Di\ContainerInterface;
|
2015-09-15 13:19:29 -04:00
|
|
|
use Aviat\AnimeClient\Controller;
|
|
|
|
use Aviat\AnimeClient\Config;
|
2015-09-14 19:54:34 -04:00
|
|
|
use Aviat\AnimeClient\Model\Manga as MangaModel;
|
2015-06-16 11:11:35 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Controller for manga list
|
|
|
|
*/
|
2015-09-14 10:54:50 -04:00
|
|
|
class Manga extends Controller {
|
2015-06-16 11:11:35 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* The manga model
|
|
|
|
* @var object $model
|
|
|
|
*/
|
2015-06-24 16:01:35 -04:00
|
|
|
protected $model;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Data to ve sent to all routes in this controller
|
|
|
|
* @var array $base_data
|
|
|
|
*/
|
|
|
|
protected $base_data;
|
|
|
|
|
2015-06-16 11:11:35 -04:00
|
|
|
/**
|
|
|
|
* Constructor
|
2015-09-14 19:54:34 -04:00
|
|
|
*
|
2015-10-06 10:24:48 -04:00
|
|
|
* @param ContainerInterface $container
|
2015-06-16 11:11:35 -04:00
|
|
|
*/
|
2015-09-17 23:11:18 -04:00
|
|
|
public function __construct(ContainerInterface $container)
|
2015-06-16 11:11:35 -04:00
|
|
|
{
|
2015-09-14 10:54:50 -04:00
|
|
|
parent::__construct($container);
|
2015-10-20 16:41:51 -04:00
|
|
|
|
2015-12-08 16:39:49 -05:00
|
|
|
$this->model = $container->get('manga-model');
|
2015-09-14 15:49:20 -04:00
|
|
|
$this->base_data = array_merge($this->base_data, [
|
2015-10-09 14:34:55 -04:00
|
|
|
'menu_name' => 'manga_list',
|
2015-07-02 14:04:04 -04:00
|
|
|
'config' => $this->config,
|
2015-06-24 16:01:35 -04:00
|
|
|
'url_type' => 'manga',
|
2015-10-09 14:34:55 -04:00
|
|
|
'other_type' => 'anime'
|
2015-09-14 15:49:20 -04:00
|
|
|
]);
|
2015-06-24 16:01:35 -04:00
|
|
|
}
|
|
|
|
|
2015-10-06 11:38:20 -04:00
|
|
|
/**
|
|
|
|
* Get a section of the manga list
|
|
|
|
*
|
|
|
|
* @param string $status
|
|
|
|
* @param string $view
|
|
|
|
* @return void
|
|
|
|
*/
|
2015-10-06 10:24:48 -04:00
|
|
|
public function index($status = "all", $view = "")
|
2015-06-16 11:11:35 -04:00
|
|
|
{
|
2015-09-16 12:25:35 -04:00
|
|
|
$map = [
|
|
|
|
'all' => 'All',
|
2015-10-05 16:54:25 -04:00
|
|
|
'plan_to_read' => MangaModel::PLAN_TO_READ,
|
|
|
|
'reading' => MangaModel::READING,
|
|
|
|
'completed' => MangaModel::COMPLETED,
|
|
|
|
'dropped' => MangaModel::DROPPED,
|
|
|
|
'on_hold' => MangaModel::ON_HOLD
|
2015-09-16 12:25:35 -04:00
|
|
|
];
|
|
|
|
|
2015-10-06 11:38:20 -04:00
|
|
|
$title = $this->config->get('whose_list') . "'s Manga List · {$map[$status]}";
|
2015-09-16 12:25:35 -04:00
|
|
|
|
2015-06-16 11:11:35 -04:00
|
|
|
$view_map = [
|
|
|
|
'' => 'cover',
|
|
|
|
'list' => 'list'
|
|
|
|
];
|
|
|
|
|
|
|
|
$data = ($status !== 'all')
|
2015-09-16 12:25:35 -04:00
|
|
|
? [$map[$status] => $this->model->get_list($map[$status])]
|
2015-06-16 11:11:35 -04:00
|
|
|
: $this->model->get_all_lists();
|
|
|
|
|
|
|
|
$this->outputHTML('manga/' . $view_map[$view], [
|
|
|
|
'title' => $title,
|
2015-09-17 23:11:18 -04:00
|
|
|
'sections' => $data,
|
2015-06-16 11:11:35 -04:00
|
|
|
]);
|
|
|
|
}
|
2015-10-20 16:41:51 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Update an anime item
|
|
|
|
*
|
|
|
|
* @return boolean|null
|
|
|
|
*/
|
|
|
|
public function update()
|
|
|
|
{
|
|
|
|
$this->outputJSON($this->model->update($this->request->post->get()));
|
|
|
|
}
|
2015-06-16 11:11:35 -04:00
|
|
|
}
|
2015-10-05 16:54:25 -04:00
|
|
|
// End of MangaController.php
|