controller.inc.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. if(isset($request['action']) && $request['action'] === "logout")
  23. $user->logout();
  24. }
  25. /**
  26. * Methode zum anzeigen des Contents.
  27. *
  28. * @return String Content der Applikation.
  29. */
  30. public function display() {
  31. global $user;
  32. $innerView = new View();
  33. switch($this->template){
  34. case 'login':
  35. $innerView->setTemplate('login');
  36. $entryid = $this->request['id'];
  37. $entry = Model::getEntry($entryid);
  38. $innerView->assign('title', $entry['title']);
  39. $innerView->assign('content', $entry['content']);
  40. break;
  41. case 'profile':
  42. $innerView->setTemplate('profile');
  43. $openvpn = new OpenVPNStatus("/home/moritz/www/openvpn-status.log");
  44. $clientName = $user->getClients();
  45. $hostname = searchForHostname($clientName, $openvpn->logfile);
  46. $innerView->assign('openvpn', $openvpn->logfile[$hostname]);
  47. break;
  48. case 'download':
  49. $innerView->setTemplate('download');
  50. break;
  51. case 'label':
  52. $innerView->setTemplate('label');
  53. $innerView->assign('label', getLabelFromId($this->request['labelId']));
  54. break;
  55. case 'default':
  56. default:
  57. $entries = Model::getEntries();
  58. $innerView->setTemplate('default');
  59. }
  60. $this->headerView->setTemplate('header');
  61. $this->footerView->setTemplate('footer');
  62. $this->view->setTemplate('matrix');
  63. $this->headerView->assign('title', 'MMNxVPN');
  64. $this->headerView->assign('request', $this->request);
  65. $this->headerView->assign('labels', getLabels());
  66. $this->view->assign('blog_title', $this->headerView->loadTemplate());
  67. $this->view->assign('blog_footer', $this->footerView->loadTemplate());
  68. $this->view->assign('blog_content', $innerView->loadTemplate());
  69. return $this->view->loadTemplate();
  70. }
  71. }
  72. ?>