Webhilfe.info/board

Normale Version: Templates
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallöle
Und zwar will ich ma anfangen meine scripts mit bischen einfachen templates auszustatten.
Das Problem wo ich hab ist das wenn ich mir die html datei hol mir die ganzen zeichen wie { oder $ in den html code geschrieben werden.
Wie kann ich das unterdrücken also das ich später auch wirklich $ stehen hab und nicht irgentwas anderes.

oder habt ihr ne gute idee wie man das ganze lösen könnte?
Also erreichen will ich gerade bei meinem forum das ich das layout halt in ner html oder php datei stehen hab und die dann da rein mach und das ganze ergänzt wird mitm code.

Danke schon mal für die antworten.

lg

PS: kann geclosed werden
Also irgendwie versteh ich dein Problem nicht, also du haste ne html Datei mit Zeichen wie { und $ drin?
Dann lädst du den Inhalt der html Datei in eine Variable und kannst das ausgeben, wo ist das Problem?
Bei mir funktioniert das ganz normal.
ich will das nich ausgeben sondern das dan durch die entsprechenden vars ersetzen....
post mal bitte dein code =)
Platzhalter sind bei mir sowas hier {header},{news}, {autor} etc.
PHP-Code:
<?php
$pfad
="Pfad zum Template";
$datei=file_get_contents($pfad);
$datei=str_replace("{header}",$header,$datei);
$datei=str_replace("{news}",$news,$datei);
$datei=str_replace("{autor}",$autor,$datei);
echo 
$datei;
?>
$header, $news und $autor wurden vorher durch eine Abfrage aus der Datenbank gelesen.
thx danke ich denke das ist die bessere lösung wie ich es hatte =)
werde das die tage mal alles ausbauen und das einbinden....
hab da jetzt nochmal ein kleines problem und zwar bekomm ich das nicht hin, das wenn zum beispiel bei ner auflistung die zeile sich wiederholt, also mit ner schleife.
rene schrieb:hab da jetzt nochmal ein kleines problem und zwar bekomm ich das nicht hin, das wenn zum beispiel bei ner auflistung die zeile sich wiederholt, also mit ner schleife.

Hä? Wo ist dein Problem? Kannst du dir vielleicht einfach einmal ein wenig mehr mühe bei deinen Post geben? Also ich verstehe dein anliegen hier auf keinen Fall! - Ist mir mittlerweile schon bei einem paar deiner Beiträge aufgefallen, das diese erst einer erklärung bedürfen, was ja nicht der grundlegende Sinn eines Posting sein sollte! Danke
oh sorry
man sehe die Uhrzeit *g*
ALso nochmal langsam und deutlich.
Der Code von Znay funktioniert super.
So mache ich zum Beispiel jetzt nen Formular mit nem Template.

ABer sobald ich zum Beispiel eine Liste (sagen wir mal ne Memberlist) erzeugen lassen will, weis ich nicht mehr weiter.

Ich kann ja nicht einfach ne schleife bei
$datei=str_replace("{autor}",$autor,$datei);
reinmachen. Das Klappt nicht.
Jetzt meine Frage wie mach ich das, dass man ein Template hat wo sich die Zelle der Tabelle wiederholt?

Hoffe das war verständlicher.
Manchmal schreib ich das nru schnell und mach aber was anderes.
Werd mir ab jetzt emhr mühe geben Wink
Also du hast jetzt zum Beispiel so ein Template
PHP-Code:
<table>
    <
tr>
        <
th>Member</th>
        <
th>ICQ</th>
        <
th>MSN</th>
        <
th>Anmeldedatum</th>
    </
tr>
    <
tr>
        <
td>{Member}</td>
        <
td>{ICQ}</td>
        <
td>{MSN}</td>
        <
td>{Anmeldedatum}</td>
    </
tr>
</
table>
<
h2>Neues Mitglied hinzuf&uuml;gen</h2>
<
form action="blub.php" method="post">
    <
input type="text" name="name" value="Nickname" />
    <
input type="text" name="icq" value="ICQ Nummer" />
    <
input type="text" name="msn" value="msn adresse" />
</
form
So, jetzt ist das Problem, dass du für jedes Mitglied nicht das komplette Template wiederhohlen lassen kannst, sondern nur einen bestimmten Teil. Nämlich diesen hier.
PHP-Code:
<tr>
        <
td>{Member}</td>
        <
td>{ICQ}</td>
        <
td>{MSN}</td>
        <
td>{Anmeldedatum}</td>
    </
tr

So, jetzt gibt es zwei Möglichkeiten, entweder du machst zwei Templates,
template1.tpl
PHP-Code:
<table>
    <
tr>
        <
th>Member</th>
        <
th>ICQ</th>
        <
th>MSN</th>
        <
th>Anmeldedatum</th>
    </
tr>
{
template2.tpl}
</
table>
<
h2>Neues Mitglied hinzuf&uuml;gen</h2>
<
form action="blub.php" method="post">
    <
input type="text" name="name" value="Nickname" />
    <
input type="text" name="icq" value="ICQ Nummer" />
    <
input type="text" name="msn" value="msn adresse" />
</
form
und
template2.tpl
PHP-Code:
<tr>
        <
td>{Member}</td>
        <
td>{ICQ}</td>
        <
td>{MSN}</td>
        <
td>{Anmeldedatum}</td>
    </
tr
Dann sieht der php Teil ungefähr so aus
PHP-Code:
<?php
//Datenbankverbindung ist bereits aufgebaut...
$sql="SELECT * FROM members ORDER BY datum ASC;";
$result=mysql_query($sql) or die("Fehler: ".mysql_error());
if(
mysql_num_rows($result)){
    
$ausgabe="";
    
$template1=file_get_contents('./template1.tpl');
    
$template2=file_get_contents('./template2.tpl');
    while(
$row=mysql_fetch_assoc($result)){
        
$ausgabe.=$template2;
        
$ausgabe=str_replace('{Member}',$row['member'],$ausgabe);
        
$ausgabe=str_replace('{ICQ}',$row['icq'],$ausgabe);
        
$ausgabe=str_replace('{MSN}',$row['msn'],$ausgabe);
        
$ausgabe=str_replace('{Anmeldedatum}',$row['datum'],$ausgabe);
    }
    
$template1=str_replace('{template2.tpl}',$ausgabe,$template1);
    echo 
$template1;
}else{
    echo 
"<p>
"
;
    echo 
"Kein Eintrag vorhanden";
    echo 
"</p>
"
;
}
?>
Bei der anderen Möglichkeit wird der Teil der wiederhohlt werden soll durch Kommentare gekennzeichnet, dann wird dieser Teil mit Hilfe von Regulären Ausdrücken rausgefiltert und dann wird fast das gleiche gemacht, so hat man dann aber nur eine Templatedatei.
Da mein Computer im Moment kaputt ist und ich jetzt keine Lust habe das alles aufzuschreiben spar ich mir das jetzt mal mit einem Beispiel für die zweite Möglichkeit.
Wenn du doch ein Beispiel für die Möglichkeit haben möchtest kannst du dich an zapp wenden, der hat eine Shoutbox von mir und da wird die Technik benutzt. Leider kann ich sie dir nicht schicken, oder hier einen Link reinstellen, da ich das Archiv nicht zur Hand habe.
Das erinnert mich irgendwie an smarty.
Schon mal damit gearbeitet znay?
Seiten: 1 2
Referenz-URLs