controller.inc.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. echo "jo";
  22. $user->login($request['username'], $request['password']);
  23. }
  24. if(isset($request['action']) && $request['action'] === "logout") {
  25. $user->logout();
  26. }
  27. if(!isset($_SESSION['loggedIn']) || (isset($_SESSION['loggedIn']) && !$_SESSION['loggedIn'])) {
  28. $user->setLoggedIn(false);
  29. } else {
  30. $user->loginByUsername($_SESSION['username']);
  31. }
  32. }
  33. /**
  34. * Methode zum anzeigen des Contents.
  35. *
  36. * @return String Content der Applikation.
  37. */
  38. public function display() {
  39. global $user;
  40. if($user->getLoggedIn()) {
  41. $innerView = new View();
  42. switch($this->template){
  43. case 'login':
  44. $innerView->setTemplate('login');
  45. $entryid = $this->request['id'];
  46. $entry = Model::getEntry($entryid);
  47. $innerView->assign('title', $entry['title']);
  48. $innerView->assign('content', $entry['content']);
  49. break;
  50. case 'profile':
  51. $innerView->setTemplate('profile');
  52. $openvpn = new OpenVPNStatus("/home/moritz/www/openvpn-status.log");
  53. $clientName = $user->getClients();
  54. $hostname = searchForHostname($clientName, $openvpn->logfile);
  55. $innerView->assign('openvpn', $openvpn->logfile[$hostname]);
  56. break;
  57. case 'download':
  58. $innerView->setTemplate('download');
  59. break;
  60. case 'label':
  61. $innerView->setTemplate('label');
  62. $innerView->assign('label', getLabelById($this->request['labelId']));
  63. $documentView = new View();
  64. $documentView->setTemplate('documentlist');
  65. $documentView->assign('labelId', $this->request['labelId']);
  66. $innerView->assign('documentlist', $documentView->loadTemplate());
  67. break;
  68. case 'default':
  69. default:
  70. $entries = Model::getEntries();
  71. $innerView->setTemplate('default');
  72. }
  73. $this->headerView->setTemplate('header');
  74. $this->footerView->setTemplate('footer');
  75. $this->view->setTemplate('matrix');
  76. $this->headerView->assign('title', 'atOfficeWeb');
  77. $this->headerView->assign('request', $this->request);
  78. $this->headerView->assign('labels', getLabels());
  79. $this->view->assign('blog_title', $this->headerView->loadTemplate());
  80. $this->view->assign('blog_footer', $this->footerView->loadTemplate());
  81. $this->view->assign('blog_content', $innerView->loadTemplate());
  82. return $this->view->loadTemplate();
  83. } else {
  84. $this->view->setTemplate('login');
  85. //$this->view->assign('blog_content', $innerView->loadTemplate());
  86. return $this->view->loadTemplate();
  87. }
  88. }
  89. }
  90. ?>