Zitat von Tobby
Beitrag anzeigen
Angenommen du willst das die variable "produkte" parsen. und hast keine kennung, so wirds auch im content ersetzt.. es braucht also eine kennzeichnung. klar könnte man noch im html-hintergrund basteln und eine NEUE PROGRAMMIERSPRACHE (mit IF! ELESE usw..) ins HTML einbasteln
lade, dass dann mal in verschiedene editoren = code wird verrissen, template geht nimmer.
z.b. kannst du auch den echten begriff reinknallen, und dann z.b. <span></span> parsen. aber die sind wiederum HTML-Elemente. Ein editor könnte sie zerstören.
Außerdem frage ich mich, wie du es lösen willst, wenn du z.B. eine Tabelle mit variabler Anzahl an Zeilen hast und diese befüllen möchtest.
gibt nur 2 dinge:
1. Werte
2. Bereiche (können so ein-ausgeblendet, oder geloopt werden)
für kennzeichnete ich bereiche mit dem HTML-kommentar <!--loops-->
so konnte alles in einem template gemacht werden.
ist aber unschön, da das ein HTML-Kommentar ist. lieber nur etwas parsen.
besten aber so wie es BlackScorp vorschlägt. (so mach ich es heutzutage).... So hast du nur 1 Sorte Werte die du parsen musst. ausblenden = "";
loopen = wiederholden des contents/oder des template in der schlaufe.
Die komplette formatierung ist also in HTML. Und 0-1% Code wird ins php genommen.
lstegelitz hat recht mit der leerzeile aber man kannst lösen, und kommt sehr selten vor. Im endeffekt lieber die logik in den php-code. Zur absoluten Not lieber mal ein '<br>' in den php-code, als den HTML-Code mit kontrollsrukturen zu fluten. denn dann wird der ist HTML-Code nicht mehr rein HTML. Alternativ zu meinem INC- kannst du auch mit [ ] oder {} arbeiten...
Egal was du machst, bleib radikal HTML-Konform...
Bei meinem CMS hab ich das so gelöst, dass ich [wert] raushole und der wert = einer variable ist. sich somit selbst zuweist. ist ein wert nicht gesetzt dann ein '' machen... dadurch sparst du am ende das zusätzliche zuweisen über eine 2. variable. a la: preg_rep(INC-ID mit $Kunden_ID)
in dem im HTML code gleich die reale variable rein kommt also "$ID"
PHP-Code:
html:
<td> [wellcome_msg] <td>
php:
// $cms[wellcome_msg] deckungsgleich...
[] parsen, dort wellcome_msg durch sich selber setzen.
die variable $cms[wellcome_msg] wiederum z.b. kannst du in eine sprache auslagern. a la:
de.php:
$cms_[wellcome_msg] = 'Wellcome';
en.php:
$cms_[wellcome_msg] = 'Willkommen';
zu beginn einlesen und du hast alle messages / Felder / Buttons in der entsprechenden Sprache. Die "werte" an sich sprechen eh für sich.
Zu der leerzeilen-problematik -> Lösung = array !
Gutes beispiel sind z.b. stellen in denen man dropdowns nutzt.
PHP-Code:
html:
<select size="1" name="land" onchange="submit()">INC-Land</select>
php:
$tmp='';
foreach($array as $land)
{
$tmp.= "$land\n"; // oder <br> <tr>
}
$html = danach preg_replace (INC-Land mit $tmp);
am aller wichtigsten jedoch GUI (html) + Code(php) getrennt.
Kommentar