| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?php
- class Controller {
- private $request = null;
- private $template = '';
- private $view = null;
- private $scraper = null;
- /**
- * Konstruktor, erstellet den Controller.
- *
- * @param Array $request Array aus $_GET & $_POST.
- */
- public function __construct($request) {
- $this->view = new View();
- $this->request = $request;
- $this->template = !empty($request['view']) ? $request['view'] : 'default';
- $GLOBALS['db'] = new Database($GLOBALS['conf']);
- if(!empty($request['action']) && $request['action'] === "scrape") {
- $source = $GLOBALS['db']->getAllAssoc("sources", "id", $request['sourceID']);
- if($source[0]['type'] == 0) { // Series
- $this->scraper = new SeriesScraper();
- $this->scraper->scrapeFolder($request['sourceID']);
- } else {
- $this->scraper = new MovieScraper();
- $this->scraper->scrapeFolder($request['sourceID']);
- }
- }
- if(!empty($request['action']) && $request['action'] === "scrapeSingleTV") {
- $this->scraper = new SeriesScraper();
- $this->scraper->downloadSeriesByID($request['moviedbID'], urldecode($request['path']), $request['sourceID']);
- }
- if(!empty($request['action']) && $request['action'] === "scrapeSingleMovie") {
- $this->scraper = new MovieScraper();
- $this->scraper->downloadMovieByID($request['moviedbID'], urldecode($request['path']), $request['sourceID']);
- }
- if(!empty($request['action']) && $request['action'] === "login") {
- User::login($request);
- }
- if(!empty($request['action']) && $request['action'] === "logout") {
- User::logout();
- }
- if(!empty($request['action']) && $request['action'] === "removeSeries") {
- SeriesScraper::remove($request['seriesID']);
- }
- if(!empty($request['action']) && $request['action'] === "updateSeries") {
- $this->scraper = new SeriesScraper();
- $this->scraper->update($request['seriesID']);
- }
- if(!empty($request['action']) && $request['action'] === "updateUserInfo") {
- User::update($request['newPassword'], $request['newPasswordConfirmation'], $request['newEmail'], $request['oldEmail']);
- }
- if(!empty($request['action']) && $request['action'] === "invite") {
- User::invite($request['inviteMail']);
- }
- if(!empty($_SESSION['user'])) {
- $GLOBALS['user'] = unserialize($_SESSION['user']);
- }
- if(empty($_SESSION['user']) && !empty($_SESSION['loggedIn']) && $_SESSION['loggedIn']) {
- $_SESSION['user'] = serialize(new User($_SESSION['mail']));
- }
- }
- /**
- * Methode zum anzeigen des Contents.
- *
- * @return String Content der Applikation.
- */
- public function display() {
- if(!empty($_SESSION['loggedIn']) && $_SESSION['loggedIn']) {
- $view = new View();
- $headerView = new View();
- $footerView = new View();
- switch($this->template) {
- case 'admin':
- if($GLOBALS['user']->getAdmin() == 0) {
- echo "neeeee";
- exit(1);
- }
- $view->setTemplate('admin');
- $view->assign('sources', $GLOBALS['db']->getAllAssoc("sources"));
- $view->assign('series', Model::getSeries());
- break;
- case 'scrape':
- $view->setTemplate('scrape');
- $view->assign('scraper', $this->scraper);
- break;
- case 'seasons':
- $view->setTemplate('seasons');
- $view->assign('seasons', Model::getSeasonsBySeriesID($this->request['seriesID']));
- break;
- case 'season':
- $view->setTemplate('season');
- $view->assign('episodes', Model::getEpisodesBySeasonID($this->request['seasonID']));
- break;
- case 'episode':
- $view->setTemplate('episode');
- $view->assign('episode', Model::getEpisodeByID($this->request['episodeID']));
- $view->assign('videoFile', Model::getAbsouluteVideoPathByEpisodeID($this->request['episodeID']));
- break;
- case 'movie':
- $view->setTemplate('movie');
- $view->assign('movie', Model::getMovieByID($this->request['movieID']));
- $view->assign('videoFile', Model::getAbsouluteVideoPathByMovieID($this->request['movieID']));
- break;
- case 'user':
- $view->setTemplate('user');
- break;
- case 'default':
- default:
- $view->setTemplate('content');
- $view->assign('series', Model::getSeries());
- $view->assign('movies', Model::getMovies());
- }
- $this->view->setTemplate('matrix');
- $headerView->setTemplate('header');
- $footerView->setTemplate('footer');
- $this->view->assign('header', $headerView->loadTemplate());
- $this->view->assign('footer', $footerView->loadTemplate());
- $this->view->assign('content', $view->loadTemplate());
- return $this->view->loadTemplate();
- } else {
- $view = new View();
- $view->setTemplate('login');
- return $view->loadTemplate();
- }
- }
- }
- ?>
|