Hallo zusammen,
Vorweg eine Erklärung des Zusammenhangs.
Ich habe ein Templatesystem gebastelt, bei dem sowohl die Inhalte & Bildurls, als auch die Templates in einer MySQL-Datenbank gespeichert werden.
Ich möchte im Template erst die Größe von Thumbnails für Bilder festlegen können, also keine vorgenerierten Thumbs hinterlegen müssen, weil mir eine Standardgröße einfach nichts bringt.
Eine Funktion mit dem kreativen namen content($pageid) ruf zunächst alle Inhalt aus der DB ab und speichert diese in den entsprechenden Variablen.
Also z.B. $ltext1, $ltext2 $stext1 usw.
Oder für bilder eben $pic1 usw.
Sind alle nötigen Inhaltsvariablen befüllt, lese ich das Template aus der DB.
Damit sind wir schon am Ende der Funktion, $code wird - natürlich nach mehr durchläufen, wenn mehr Templates benutzt wurden - per return zurückgegeben.
Soweit funktioniert das auch wie vorgesehen, ich kann HTML- oder Javascript-Code (ohne doppelte Anführungszeichen, ok...) und die Variablen normal benutzen und alles wird ersetzt.
Mein Problem:
ich möchte es ermöglichen, das im Template meine PHP-Funktion createthumb benutzt werden kann, um bei folgendem Codeschnipsel nicht auf vorgenerierte Thumbnails einer Standardgröße zurückgreifen zu müssen.
Bei folgendem:
wirden anscheinend nur die $irgendwas ersetzt, aber keine Funktionen ausgeführt.
Aus den Kommentaren bei Eval auf php.net hab ich folgendes:
Wenn ich das mache, muss ich aber im Template so etwas schreiben:
Wenn ich im Template ganz normalen PHP-Code benutzen muss, ist das nicht mehr wirklich sinnvoll finde ich...
Eine Möglichkeit wäre natürlich, während ich die Templates eingebe gesondert die Größe der Thumbnails festzulegen und in eine MySQL-Tabelle zu speichern. Wenn ich (bzw. jemand von euch) keine andere Idee hat, wird mir wohl oder übel nichts anderes übrig bleiben.
Also: hat jemand eine Idee, wie ich das lösen kann? Bin für jede Hilfe sehr dankbar.
Gruß
Sven
Vorweg eine Erklärung des Zusammenhangs.
Ich habe ein Templatesystem gebastelt, bei dem sowohl die Inhalte & Bildurls, als auch die Templates in einer MySQL-Datenbank gespeichert werden.
Ich möchte im Template erst die Größe von Thumbnails für Bilder festlegen können, also keine vorgenerierten Thumbs hinterlegen müssen, weil mir eine Standardgröße einfach nichts bringt.
Eine Funktion mit dem kreativen namen content($pageid) ruf zunächst alle Inhalt aus der DB ab und speichert diese in den entsprechenden Variablen.
Also z.B. $ltext1, $ltext2 $stext1 usw.
Oder für bilder eben $pic1 usw.
Sind alle nötigen Inhaltsvariablen befüllt, lese ich das Template aus der DB.
PHP:
$resulttemplate = mysql_query("SELECT * FROM $content_templates WHERE id = '$data[templateid]' LIMIT 1");
while ($datatemplate = mysql_fetch_array($resulttemplate)) {
eval("\$code .= \"$datatemplate[ code ]\";");
}
Damit sind wir schon am Ende der Funktion, $code wird - natürlich nach mehr durchläufen, wenn mehr Templates benutzt wurden - per return zurückgegeben.
Soweit funktioniert das auch wie vorgesehen, ich kann HTML- oder Javascript-Code (ohne doppelte Anführungszeichen, ok...) und die Variablen normal benutzen und alles wird ersetzt.
Mein Problem:
ich möchte es ermöglichen, das im Template meine PHP-Funktion createthumb benutzt werden kann, um bei folgendem Codeschnipsel nicht auf vorgenerierte Thumbnails einer Standardgröße zurückgreifen zu müssen.
HTML:
<a href="Javascript:FotoWindow('img/mannschaftsfotos/f1.jpg','532','398');">
<img src="img/thumbs/newsh267.jpg" style="border-color: rgb(0, 0, 0);"
alt="Klicken zum Vergrößern" border="1" height="97" vspace="6" width="130">
</a>
Bei folgendem:
PHP:
eval("\$code .= \"$datatemplate[ code ]\";");
Aus den Kommentaren bei Eval auf php.net hab ich folgendes:
PHP:
eval("?>".$string);
Wenn ich das mache, muss ich aber im Template so etwas schreiben:
PHP:
<a href="Javascript:FotoWindow('<?php echo $pic1; ?>','<?php echo $pic1w; ?>','<?php echo $pic1h; ?>');">
<img src="<?php echo createthumb($pic1,'200','pic1thumb.jpg'); ?>"
style="border-color: rgb(0, 0, 0);" alt="Klicken zum Vergrößern"
border="1" vspace="6" width="200"></a>
Eine Möglichkeit wäre natürlich, während ich die Templates eingebe gesondert die Größe der Thumbnails festzulegen und in eine MySQL-Tabelle zu speichern. Wenn ich (bzw. jemand von euch) keine andere Idee hat, wird mir wohl oder übel nichts anderes übrig bleiben.
Also: hat jemand eine Idee, wie ich das lösen kann? Bin für jede Hilfe sehr dankbar.
Gruß
Sven