BlackBoard (http://www.black-board.net/index.php)
- Sonstiges (http://www.black-board.net/board.php?boardid=34)
-- Bildung (http://www.black-board.net/board.php?boardid=39)
--- PHP Templates wie im WBB (http://www.black-board.net/thread.php?threadid=15359)


Geschrieben von HeaD am 02.01.2004 um 19:47:

cool Templates wie im WBB

Ich habe einmal die Templatefunktion vom WBB auseinandergeflückt, da ich sie persönlich sehr einfach und trotzdem
praktisch finde:

Templates dienen dazu, die Programmierung vom Design zu trennen. Das ist nützlich wenn sich eine Person nur mit Design
und eine andere nur mit Programmieren beschäftigt oder aber wenn man etwas mehr Übersicht haben möchte.

Wir erstellen uns als erstes eine Datei namens function.php
Dort tragen wir folgendes ein:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<?php
  function gettemplate($template) {
    $file file("templates/".$template.".htm");
    $template implode("",$file);
    $template str_replace("\"","\\\"",$template);
    return $template;
  }

  function dooutput($template) {
    echo $template;
  }  
?>


Mit der Funktion gettemplate lesen wir den Inhalt einer HTML Datei ein.
Mit der Funktion dooutput zeigen wir eine HTML Datei an.

Nun speichert den Text und erstellt eine neue Datei namens index.php
Dort tragen wir folgendes ein:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
<?
  require ("function.php");
  if (!isset($action)) {
    eval ("\$where = \"".gettemplate("main")."\";");
  }

  if ($action=="test") {
    eval ("\$where = \"".gettemplate("test")."\";");
  }

  eval("dooutput(\"".gettemplate("index")."\");");
?>


Speichert nun die Datei.
Zeile 2 <- Hier rufen wir die Datei mit den Funktionen auf
Zeile 3-5 <- Hier bestimmen wir, daß die Seite main.htm geladen werden soll, wenn action keinen Wert hat.
Zeile 7-9 <- Wenn action den Wert test hat, dann soll test.htm aufgerufen werden.
Zeile 11 <- Die Datei index.htm soll angezeigt werden.

Erstellt nun einen Ordner namens Templates. In diesem erstellt eine Datei Namens index.htm.
Tragt dort nun folgenden Text ein:

code:
1:
2:
3:
4:
<html>
  Dieser Teil kommt immer!<br>
  $where
</html>


Erstellt nun die Datei main.htm im Ordner Templates und tragt dort dieses ein:

code:
1:
Dieses ist die Startseite!


Nun brauchen wir noch die Datei test.htm, die wir im Ordner Templates erstellen und tragen folgendes ein:

code:
1:
Dieses ist die Testseite!


Wenn nun alles gespeichert ist, starten wir die index.php Seite. Zu sehen sollte nun

Zitat:
Dieser Teil kommt immer!
Dieses ist die Startseite!


sein.

Geben wir im Browser nun index.php?action=test ein sollte folgendes erscheinen:

Zitat:
Dieser Teil kommt immer!
Dieses ist die Testseite!


So kann man sein Design von der Programmierung trennen.

Wenn Ihr eine Datenbank auslest könnt Ihr folgendes machen:
Wenn Ihr meinetwegen die Variablen $row[name] und $row[id] eingelesen habt, so erstellt eine HTML Datei im Templates-
Ordner und tragt dort ein:

code:
1:
$row[id] - $row[name]


Nennt die Datei z.B. name_liste.htm

Nun erstellt Ihr noch eine HTML Datei im Templates-Verzeichnis und nennt sie name_main.htm
Dort Tragt Ihr ein:

code:
1:
2:
Namenliste:
$namen_liste


php:
1:
2:
while($row $db_zugriff->fetch_array($result)) eval ("\$name_liste .= \"".gettemplate("name_liste")."\";");
eval ("\$where = \"".gettemplate("name_main")."\";");


Und schon werden alle Resultate mit recht wenig Aufwand aufgelistet.


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH