controller.inc.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. $documentView = new View();
  51. $mailView = new View();
  52. $callView = new View();
  53. $documentView->setTemplate('documentlist');
  54. $mailView->setTemplate('maillist');
  55. $callView->setTemplate('calllist');
  56. $callView->assign('calls', Call::getCallsByLabelID($this->request['labelId']));
  57. $innerView->setTemplate('label');
  58. $innerView->assign('label', Label::getLabelById($this->request['labelId']));
  59. $documentView->assign('labelId', $this->request['labelId']);
  60. $documentView->assign('documents', Document::getDocumentsByLabelId($this->request['labelId']));
  61. $mailView->assign('labelID', $this->request['labelId']);
  62. $mailView->assign('mails', Mail::getMailsByLabelID($this->request['labelId']));
  63. $innerView->assign('documentlist', $documentView->loadTemplate());
  64. $innerView->assign('maillist', $mailView->loadTemplate());
  65. $innerView->assign('calllist', $callView->loadTemplate());
  66. break;
  67. case 'manage-labels':
  68. $innerView->setTemplate('manage-labels');
  69. $innerView->assign('labels', Label::getAllLabels());
  70. break;
  71. case 'manage-label':
  72. $innerView->setTemplate('manage-label');
  73. $innerView->assign('label', Label::getLabelById($this->request['labelId']));
  74. $innerView->assign('mailboxFolders', MailboxFolder::getMailboxFolderByLabelId($this->request['labelId']));
  75. $innerView->assign('user', $user);
  76. break;
  77. case 'settings':
  78. $innerView->setTemplate('settings');
  79. $innerView->assign('user', $user);
  80. $innerView->assign('mailboxes', Mailbox::getMailboxesByUserId($user->getUserId()));
  81. break;
  82. case 'default':
  83. default:
  84. $entries = Model::getEntries();
  85. $innerView->setTemplate('default');
  86. }
  87. $this->headerView->setTemplate('header');
  88. $this->footerView->setTemplate('footer');
  89. $this->view->setTemplate('matrix');
  90. $this->headerView->assign('title', 'atOfficeWeb');
  91. $this->headerView->assign('request', $this->request);
  92. $this->headerView->assign('labels', Label::getAllLabels());
  93. $this->headerView->assign('userID', $user->getUserId());
  94. $this->view->assign('blog_title', $this->headerView->loadTemplate());
  95. $this->view->assign('blog_footer', $this->footerView->loadTemplate());
  96. $this->view->assign('blog_content', $innerView->loadTemplate());
  97. return $this->view->loadTemplate();
  98. } else {
  99. $this->view->setTemplate('login');
  100. //$this->view->assign('blog_content', $innerView->loadTemplate());
  101. return $this->view->loadTemplate();
  102. }
  103. }
  104. }
  105. ?>