controller.inc.php 4.1 KB

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