Template System...

Vectormaster

Mitglied
Hallo,
ich suche ein Template System, welches mir ermöglichen soll, eine Datei als Template zu verwenden, in welcher dann das gesamte Layout der Seite enthalten ist also mit Header, Footer, Menüs, Contenbereich. Im Contentbereich, sollen dann die Inhalte die ich einfügen will, angezeigt werden. Es handelt sich bei den Inhalten um Formulare, den Posteingang bzw. Postausgang eines PN Systems,… Manche der Inhalte enthalten noch diverse Abfragen ob z.B. ein Cookie vorhanden ist,…

Ich habe nun folgendes ausprobiert:
Wenn ich ein php Dokument mit einem Include, der auf den Inhalt weist ausstatte, wird die Seite perfekt angezeigt, sobald ich jedoch auf den Button zum absenden des Formulare klicke, wird das Script nicht gefunden. Gibt es hier vll. einen Denkfehler meiner seite?
 
Was du baust ist ein 2-Level-Design und kein Template System ;)

Interessant ist die Stelle, wo der Content-Bereich gefüllt wird und wie er gefüllt wird. Woran wird unterschieden, welche Datei geladen wird? Wie wird der Parameter geprüft? Also das Layout ist egal, poste einfach mal dne zentralen PHP Code, dann können wir dir weiterhelfen.
 
PHP:
function gettemplate($name) {
    $template = file("./tmp/".$name.".html");
    $template = implode("", $template);
    $template = str_replace("\"", "\\\"", $template);
    return $template;
}

eval ("\$Variable= \"".gettemplate("/Pfad/name")."\";");

vielleicht hilfts Dir weiter.
 
Hallo,
danke für Eure zahlreichen Antworten.

@ tobee:
Nein, momentan hab ich als ersten „Versuch“ einfach an den Anfang und an das Ende des Inhaltes einfach jeweils einen Include jeweils für Footer und Header eingefügt.
Wie meinst Du das mit Get? bzw. wie setzt man so etwas mit Get um?

@ Radhad:
Ah ok danke. Den Begriff kannte ich bis jetzt noch nicht. Ich wollte das Ganze schon auf ein Templatesystem wie man es z.B. bei PHPBB findet.

Hier mal noch ein Musterinhalt:
HTML:
<?php 
 ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Seitentittel</title>
</head>
<body>
<form action="#" method="post">
  <p> BESCHRIFTUNG 
     <input type="text" id="abc" name="abc" /></p> 
   <p> BESCHRIFTUNG 
     <input type="text" id="abc2" name="abc2" /></p>
  <p> BESCHRIFTUNG      
    <input type="text" id="abc3" name="abc3" /></p>
</form>
</body>
</html>
Also der HTML Header muss nicht unbedingt sein. Wenn Ihr mir ne gute Idee bringt bin ich gerne auch bereit das ganze nochmal zu ändern.
Wann ich die Inhalte einbinden will, habe ich mir noch nicht überlegt…

@PannenOlli:
Wie ist das ganze zu verwenden

@Dennis Wronka:
Werd ich mir mal direkt angucken…

@alle:
Ich bin natürlich auch bereit, das ganze nochmals so zu überarbeiten, dass ich irgend ein Templatesystem / Template Classe verwenden kann.
 
eval ist ganz ganz übel, sowas sollte auf keiner Webseite vorhanden sein...

PHP ist doch schon ne eigene art an templete-engine...

Entweder du schreibst
Code:
{loop...}
{value}
{/loop}
oder du schreibst
PHP:
<?php foreach($values as $value):?>
<?=$value;?>
<?php endforeach;?>
 
Sooo
Also nun kann mir jemand einen Link posten, wo genau beschrieben ist, wie man ein Templatesystem zu verwenden. Also auch wie die Inhalte Aussehen muss.
 
Also:
Ich habe mich jetzt nochmals informiert und bin zu folgendem Entschluss gekommen:
Ich will für mein aktuelles Projekt die Template Engine „Smarty“ verwenden. Das ganze scheint mir gut strukturiert. Es gibt auch so manches Tutorial so wie eine komplett Deutsche Doku. Ich habe jetzt schon mal angefangen und ich habe mir folgendes für die Navigation überlegt:
Beim klicken auf einen Link wird folgendes aufgerufen: http://www.meinedomain.de/index.php?page=aufzurufendeseite die „index.php“ soll dann die auszuwählende Seite aus der URL auslesen und diese dann mittels „switch case“ auf die passende Seite weiterleiten.

Ist das so weit einigermasen durchführbar

Nun noch eine Frage:
Wie kann ich mit Smarty Formulare verarbeiten? Also was geb ich als Action an
 
Zurück