templateengine-ich kapiers einfach nich :D
lima-city → Forum → Sonstiges → Spam und sonstiges Unvergütetes
achtung
ausgabe
beispiel
beitrag
blabla
eintrag
ernsthaftigkeit
funktion
garnicht
inhalt
kurze zwischenfrage
mache
manual
meinst
post
puffer
schleifen
string
variable
wichtig inhalt
-
Dies ist der ultimative
ich-hab-keine-Ahnung-wie-das-mit-der-templateengine-funktioniert thread.
Eigentlich funktioniet es schon, aber...wie mache ich z.b bei einem Forum den Platzhalter f?r einen Post?
in prinzip w?rs ja dann %post% (etc.), aber, wie ersetze ich den denn jetzt durch alle Posts, zu dem jeweiligen Thema?
...
MfG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
compactdisc schrieb:
http://de.php.net/manual/de/function.str-replace.php
Ja, die Engine hab ich ja schon.
Aber wie ich einen PHP-teil ersetze, kapier ich nich^^ -
t3remy schrieb:
compactdisc schrieb:
http://de.php.net/manual/de/function.str-replace.php
Ja, die Engine hab ich ja schon.
Aber wie ich einen PHP-teil ersetze, kapier ich nich^^
Benutz Tipp-Ex :D
PS: Ich w?rde mir auch mal den Link von CD angucken
Beitrag ge?ndert am 4.07.2006 17:54 von t3remy
Ich wei? wirklich nciht, wie mir das jetzt weiterhelfen soll...O.?
Ich hab ja eigentlich alles, aber wie mache ich z.b das mit den Posts bei einem Forum?
Oder den Eintr?gen bei einem GB? -
Gibts 2 M?glichkeiten die mir jetzt spontan einfallen:
1. in der Schleife in der die Eintr?ge ausgegeben werden, gibst du diese nicht einfach mit echo/print/etc. aus sondern weist sie einer Variable zu und ersetzt dann %post% (hattest du als beispiel genannt) mit der Variable. z.B.:
<pseudocode>
while ( blabla ) {
$eintraege .= '<tr><td>'.$blabla[1].'</td></tr>';
}
$template = str_replace('%post%', $eintraege, $template);
</pseudocode>
2. du gibst die eintraege wie gewohnt aus aber verwendest den ausgabe-puffer. z.B.:
<pseudocode>
ob_start(); //Ausgabepuffer starten
while ( blabla ) {
echo '<tr><td>'.$blabla[1].'</td></tr>';
}
$eintraege = ob_get_contents(); //Den Inhalt des Puffers in $eintrage schreiben
ob_end_clean(); //Ausgabepuffer deaktivieren
$template = str_replace('%post%', $eintraege, $template);
</pseudocode>
MfG -
Ok nun mal wiede etwas Ernsthaftigkeit meinerseits ;)
Ich selber mache sowas mit Templates garnicht aber grundlegend wird doch dann %bla% durch $bla ersetzt z.b. oder?
Und die ganzen Posts machst du doch sicherlich in einer Whileschleife oder nicht?
Kurze Zwischenfrage: Du machst das aber alles Datenbankbasierend oder? -
t3remy schrieb:
Ok nun mal wiede etwas Ernsthaftigkeit meinerseits ;)
Ich selber mache sowas mit Templates garnicht aber grundlegend wird doch dann %bla% durch $bla ersetzt z.b. oder?
Und die ganzen Posts machst du doch sicherlich in einer Whileschleife oder nicht?
Kurze Zwischenfrage: Du machst das aber alles Datenbankbasierend oder?
Ja.
Aber ich kann %bla% nunmal nicht durch "<?php ... ?>" ersetzen.
Das wird dann eben nich geparst. -
Gibts 2 M?glichkeiten die mir jetzt spontan einfallen:
1. in der Schleife in der die Eintr?ge ausgegeben werden, gibst du diese nicht einfach mit echo/print/etc. aus sondern weist sie einer Variable zu und ersetzt dann %post% (hattest du als beispiel genannt) mit der Variable. z.B.:
<pseudocode>
while ( blabla ) {
$eintraege .= '<tr><td>'.$blabla[1].'</td></tr>';
}
$template = str_replace('%post%', $eintraege, $template);
</pseudocode>
2. du gibst die eintraege wie gewohnt aus aber verwendest den ausgabe-puffer. z.B.:
<pseudocode>
ob_start(); //Ausgabepuffer starten
while ( blabla ) {
echo '<tr><td>'.$blabla[1].'</td></tr>';
}
$eintraege = ob_get_contents(); //Den Inhalt des Puffers in $eintrage schreiben
ob_end_clean(); //Ausgabepuffer deaktivieren
$template = str_replace('%post%', $eintraege, $template);
</pseudocode>
MfG
Genau das h?tte ich ihm jetzt auch vorgeschlagen. Also ich h?tte es auch so gemacht. -
t3remy schrieb:
Ok nun mal wiede etwas Ernsthaftigkeit meinerseits ;)
Ich selber mache sowas mit Templates garnicht aber grundlegend wird doch dann %bla% durch $bla ersetzt z.b. oder?
Und die ganzen Posts machst du doch sicherlich in einer Whileschleife oder nicht?
Kurze Zwischenfrage: Du machst das aber alles Datenbankbasierend oder?
Ja.
Aber ich kann %bla% nunmal nicht durch "<?php ... ?>" ersetzen.
Das wird dann eben nich geparst.
Ahhaaaaaaaaaa, das meinst du
ok, das machst du folgenderma?en:
<?php $code_zum_parsen = '<?php echo "hallo benutzernaemelchen"; ?>'; ob_start(); //Ausgabepuffer starten eval("?>".$code_zum_parsen."<?php "); /* eval ist eine funktion die inhalte von strings als php parst; achtung: das leerzeichen in "<?php " ist wichtig; */ $inhalt = ob_get_contents(); //Den Inhalt des Puffers $inhalt zuweisen ob_end_clean(); //Den Ausgabepuffer beenden $template = str_replace('%mein_platzhalter%', $inhalt, $template); ?>
Hoffe das hilft dir,
MfG -
svn schrieb:
t3remy schrieb:
Ok nun mal wiede etwas Ernsthaftigkeit meinerseits ;)
Ich selber mache sowas mit Templates garnicht aber grundlegend wird doch dann %bla% durch $bla ersetzt z.b. oder?
Und die ganzen Posts machst du doch sicherlich in einer Whileschleife oder nicht?
Kurze Zwischenfrage: Du machst das aber alles Datenbankbasierend oder?
Ja.
Aber ich kann %bla% nunmal nicht durch '<?php ... ?>' ersetzen.
Das wird dann eben nich geparst.
Ahhaaaaaaaaaa, das meinst du
ok, das machst du folgenderma?en:
<?php $code_zum_parsen = '<?php echo 'hallo benutzernaemelchen'; ?>'; ob_start(); //Ausgabepuffer starten eval('?>'.$code_zum_parsen.'<?php '); /* eval ist eine funktion die inhalte von strings als php parst; achtung: das leerzeichen in '<?php ' ist wichtig; */ $inhalt = ob_get_contents(); //Den Inhalt des Puffers $inhalt zuweisen ob_end_clean(); //Den Ausgabepuffer beenden $template = str_replace('%mein_platzhalter%', $inhalt, $template); ?>
Hoffe das hilft dir,
MfG
Geht es wirklich nicht anders?
Jeder wei? ja, dass eval() nicht gerade das Sicherste ist...
Ausserdem finde ich den Code, daf?r, dass ich ihn sehr oft einsetzen muss, etwas lang :-/ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage