| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- class Controller {
- private $request = null;
- private $template = '';
- private $view = null;
- private $headerView = null;
- private $footerView = null;
- /**
- * Konstruktor, erstellet den Controller.
- *
- * @param Array $request Array aus $_GET & $_POST.
- */
- public function __construct($request) {
- global $user;
- $this->view = new View();
- $this->headerView = new View();
- $this->footerView = new View();
- $this->request = $request;
- $this->template = !empty($request['action']) ? $request['action'] : 'default';
- if(isset($request['action']) && $request['action'] === "login" && isset($request['username'])) {
- $user->login($request['username'], $request['password']);
- }
- if(isset($request['action']) && $request['action'] === "logout") {
- $user->logout();
- }
- if(!isset($_SESSION['loggedIn']) || (isset($_SESSION['loggedIn']) && !$_SESSION['loggedIn'])) {
- $user->setLoggedIn(false);
- } else {
- $user->loginByUsername($_SESSION['username']);
- }
- }
- /**
- * Methode zum anzeigen des Contents.
- *
- * @return String Content der Applikation.
- */
- public function display() {
- global $user;
- if($user->getLoggedIn()) {
- $innerView = new View();
- switch($this->template){
- case 'login':
- $innerView->setTemplate('login');
- $entryid = $this->request['id'];
- $entry = Model::getEntry($entryid);
- $innerView->assign('title', $entry['title']);
- $innerView->assign('content', $entry['content']);
- break;
- case 'label':
- $innerView->setTemplate('label');
- $innerView->assign('label', getLabelById($this->request['labelId']));
- $documentView = new View();
- $documentView->setTemplate('documentlist');
- $documentView->assign('labelId', $this->request['labelId']);
- $innerView->assign('documentlist', $documentView->loadTemplate());
- break;
- case 'manage-labels':
- $innerView->setTemplate('manage-labels');
- $innerView->assign('labels', getLabels());
- break;
- case 'manage-label':
- $innerView->setTemplate('manage-label');
- $innerView->assign('label', getLabelById($this->request['labelId']));
- $innerView->assign('mailboxFolders', getMailboxFolderByLabelId($this->request['labelId']));
- break;
- case 'settings':
- $innerView->setTemplate('settings');
- $innerView->assign('user', $user);
- break;
- case 'default':
- default:
- $entries = Model::getEntries();
- $innerView->setTemplate('default');
- }
- $this->headerView->setTemplate('header');
- $this->footerView->setTemplate('footer');
- $this->view->setTemplate('matrix');
- $this->headerView->assign('title', 'atOfficeWeb');
- $this->headerView->assign('request', $this->request);
- $this->headerView->assign('labels', getLabels());
- $this->view->assign('blog_title', $this->headerView->loadTemplate());
- $this->view->assign('blog_footer', $this->footerView->loadTemplate());
- $this->view->assign('blog_content', $innerView->loadTemplate());
- return $this->view->loadTemplate();
- } else {
- $this->view->setTemplate('login');
- //$this->view->assign('blog_content', $innerView->loadTemplate());
- return $this->view->loadTemplate();
- }
- }
- }
- ?>
|