view.inc.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. class View {
  3. // Pfad zum Template
  4. private $path = 'templates';
  5. // Name des Templates, in dem Fall das Standardtemplate.
  6. private $template = 'default';
  7. /**
  8. * Enthält die Variablen, die in das Template eingebetet
  9. * werden sollen.
  10. */
  11. private $_ = array();
  12. /**
  13. * Ordnet eine Variable einem bestimmten Schl&uuml;ssel zu.
  14. *
  15. * @param String $key Schlüssel
  16. * @param String $value Variable
  17. */
  18. public function assign($key, $value){
  19. $this->_[$key] = $value;
  20. }
  21. /**
  22. * Setzt den Namen des Templates.
  23. *
  24. * @param String $template Name des Templates.
  25. */
  26. public function setTemplate($template = 'default'){
  27. $this->template = $template;
  28. }
  29. /**
  30. * Das Template-File laden und zurückgeben
  31. *
  32. * @param string $tpl Der Name des Template-Files (falls es nicht vorher
  33. * über setTemplate() zugewiesen wurde).
  34. * @return string Der Output des Templates.
  35. */
  36. public function loadTemplate(){
  37. $tpl = $this->template;
  38. // Pfad zum Template erstellen & überprüfen ob das Template existiert.
  39. $file = $this->path . DIRECTORY_SEPARATOR . $tpl . '.php';
  40. $exists = file_exists($file);
  41. if ($exists){
  42. // Der Output des Scripts wird n einen Buffer gespeichert, d.h.
  43. // nicht gleich ausgegeben.
  44. ob_start();
  45. // Das Template-File wird eingebunden und dessen Ausgabe in
  46. // $output gespeichert.
  47. include $file;
  48. $output = ob_get_contents();
  49. ob_end_clean();
  50. // Output zurückgeben.
  51. return $output;
  52. }
  53. else {
  54. // Template-File existiert nicht-> Fehlermeldung.
  55. return 'could not find template';
  56. }
  57. }
  58. }
  59. ?>