If-Bedingungen in HTML für Templatesystem

Jukkales

Erfahrenes Mitglied
Hallo,

ich bin dabei mir mein eigenes Templatesystem zu scheiben.
Und Nein ich möchte nicht Smarty benutzen, da ich es lernen will, weil ja einige behaupten sagen zu müssen ich solle andere benutzen anstatt eigenes zu schreiben.

Mein Problem liegt dariin:

Ich habe einen folgenden HTML code:

HTML:
</tr>
  <tr>
    <td class="comments">{LANG_comments}: $comments</td>
  </tr>
</table>
</div>
<if($admin == 1)>Löschen</if>
<br />

dieser soll wie folgt umgewandelt werden:

Code:
</tr>
  <tr>
    <td class=\"comments\">$LANG[comments]: $comments</td>
  </tr>
</table>
</div>
".($admin == 1) ? "Löschen" : "")."
<br />

Die Umwandlung der Template und Language Variablen funktioniert einwandfrei da das ganze mit eval ausgegeben wird.
Jedoch weiß ich nicht wie ich dieses schnell-if dazu bringen soll das es funktioniert.

Kann mir da jemand helfen?
 
Him k, den Teil, dass es unsinnig ist nen neues Template-System zu schreiben, welches schlechter als alle verfügbaren sind, spare ich mir (ups, habe ich ja doch getan^^)

also du wirst dein Deklarierung des If-Statements mittels Regulären Ausdrücken umwandeln müssen, damit die von die gezeigte Form rauskommt. Achso, eval() ist auch alles andere als eine tolle Lösung (eogentlich sollte man es nie verwenden), mach es doch wie Smarty, dass du Templates parsed, sie dann als PHP-Code abspeicherst und daraufhin includest ;)
 
Die umwandlung hab ich schon mit PCRE gemacht, Entschuldigung das vergaß ich. Nach der umwandlung meckert PHP es sei ein ungültiger string, ich hab ihn mir ausgeben lassen und das was wie geschreiben ausgegebenen wurde steht in meinem ersten Beitrag. Deswegen frage ich hier ja.

Um wegen eval, alle sagen imemr diese wunktion sei alles andere als schön, ich weiß nicht woher alle diese Meinung haben, Ich finde das eval eben ein einfaches callback ist, selbst firmen benutzen dieses eval ohne irgendwelche lüschen oder einbüßse. Wenn ich falsch liege darin bitte berichtigen bin imemr offen ^^
 
Zuletzt bearbeitet:
Die umwandlung hab ich schon mit PCRE gemacht, Entschuldigung das vergaß ich. Nach der umwandlung meckert PHP es sei ein ungültiger string, ich hab ihn mir ausgeben lassen und das was wie geschreiben ausgegebenen wurde steht in meinem ersten Beitrag. Deswegen frage ich hier ja.
ich würde das anders angehen ;) Nicht alles in PHP-Code einbetten (kann Probleme mit den Anführungszeichen geben) sondern die PHP-Tags öffnen wenn Platzhalter ersetzt werden sollen ;)
Das Problem ist dir fehlt eine Klammer ;) Es müsste so sein:
Code:
".(($admin == 1) ? "Löschen" : "")."

Um wegen eval, alle sagen imemr diese wunktion sei alles andere als schön, ich weiß nicht woher alle diese Meinung haben, Ich finde das eval eben ein einfaches callback ist, selbst firmen benutzen dieses eval ohne irgendwelche lüschen oder einbüßse. Wenn ich falsch liege darin bitte berichtigen bin immer offen ^^
Wenn alle es sagen wird es Gründe geben oder? ;) Extremes Sicherheitsrisiko und in 99% der Fälle gibt es bessere Alternativen als ein eval. Neija wenn Firmen auf eval setzen kann deren Qualität nicht ja so dolle sein :rolleyes:
 
Das mit dem If geht immernochnicht, ichsuch shcon ne ganze zeit und versuche auch schon mit eigenen funktionen was zu machen.


Und welche Gründe wären das, man sagt extremes Sicherheitsrisiko jedoch sag ich dagegen:
1. kommen alle Variablen vom Server selbst
2. kann man sich mit Funktionen von "außenkommenden" Eingaben absichern (htmlspecialchars etc)

Das soll jetzt nicht egoistisch klingen oder so nur hab ich meine Erfahrungen so gemacht damit

PS: Wegen Qualität, Woltlab ist an und für sich auch ne gute Firma sonst würden die nicht soviel verkaufen und die haben eval immer enutzt ^^
 
Zuletzt bearbeitet:
Zurück