controller.inc.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. class Controller {
  3. private $request = null;
  4. private $template = '';
  5. private $view = null;
  6. private $headerView = null;
  7. private $footerView = null;
  8. /**
  9. * Konstruktor, erstellet den Controller.
  10. *
  11. * @param Array $request Array aus $_GET & $_POST.
  12. */
  13. public function __construct($request) {
  14. global $user;
  15. $this->view = new View();
  16. $this->headerView = new View();
  17. $this->footerView = new View();
  18. $this->request = $request;
  19. $this->template = !empty($request['action']) ? $request['action'] : 'default';
  20. if(isset($request['action']) && $request['action'] === "login" && isset($request['username'])) {
  21. $user->login($request['username'], $request['password']);
  22. }
  23. if(isset($request['action']) && $request['action'] === "logout") {
  24. $user->logout();
  25. }
  26. if(!isset($_SESSION['loggedIn']) || (isset($_SESSION['loggedIn']) && !$_SESSION['loggedIn'])) {
  27. $user->setLoggedIn(false);
  28. } else {
  29. $user->loginByUsername($_SESSION['username']);
  30. }
  31. }
  32. /**
  33. * Methode zum anzeigen des Contents.
  34. *
  35. * @return String Content der Applikation.
  36. */
  37. public function display() {
  38. global $user;
  39. if($user->getLoggedIn()) {
  40. $innerView = new View();
  41. switch($this->template){
  42. case 'login':
  43. $innerView->setTemplate('login');
  44. $entryid = $this->request['id'];
  45. $entry = Model::getEntry($entryid);
  46. $innerView->assign('title', $entry['title']);
  47. $innerView->assign('content', $entry['content']);
  48. break;
  49. case 'label':
  50. $innerView->setTemplate('label');
  51. $innerView->assign('label', Label::getLabelById($this->request['labelId']));
  52. $documentView = new View();
  53. $documentView->setTemplate('documentlist');
  54. $documentView->assign('labelId', $this->request['labelId']);
  55. $innerView->assign('documentlist', $documentView->loadTemplate());
  56. break;
  57. case 'manage-labels':
  58. $innerView->setTemplate('manage-labels');
  59. $innerView->assign('labels', Label::getAllLabels());
  60. break;
  61. case 'manage-label':
  62. $innerView->setTemplate('manage-label');
  63. $innerView->assign('label', Label::getLabelById($this->request['labelId']));
  64. $innerView->assign('mailboxFolders', MailboxFolder::getMailboxFolderByLabelId($this->request['labelId']));
  65. $innerView->assign('user', $user);
  66. break;
  67. case 'settings':
  68. $innerView->setTemplate('settings');
  69. $innerView->assign('user', $user);
  70. break;
  71. case 'default':
  72. default:
  73. $entries = Model::getEntries();
  74. $innerView->setTemplate('default');
  75. }
  76. $this->headerView->setTemplate('header');
  77. $this->footerView->setTemplate('footer');
  78. $this->view->setTemplate('matrix');
  79. $this->headerView->assign('title', 'atOfficeWeb');
  80. $this->headerView->assign('request', $this->request);
  81. $this->headerView->assign('labels', Label::getAllLabels());
  82. $this->view->assign('blog_title', $this->headerView->loadTemplate());
  83. $this->view->assign('blog_footer', $this->footerView->loadTemplate());
  84. $this->view->assign('blog_content', $innerView->loadTemplate());
  85. return $this->view->loadTemplate();
  86. } else {
  87. $this->view->setTemplate('login');
  88. //$this->view->assign('blog_content', $innerView->loadTemplate());
  89. return $this->view->loadTemplate();
  90. }
  91. }
  92. }
  93. ?>