#1
| ||||
| ||||
Template-Klasse mit Bedingungen aufwertenHey Leute, ich hab ne schwierige Aufgabe für euch Folgendes benutze ich für meine Templates: PHP-Code: Diese Klasse will ich erweitern, vor allem sollen Bedingungen wie beim vB3 funktionieren. Z.B. <wenn bedingung="$userid == '1'">UserID 1</wenn> Ausserdem wäre es nett wenn ihr mir Tipps geben könnt wie ich die Klasse besser/schneller/einfacher gestalten kann. Ich möchte ungern die Klasse wechseln, aber wenn ich was ähnliches EINFACHES (bitte nicht Smarty ) kennt, dann her damit grüße und danke, |
#2
| |||
| |||
Gegenfrage: Was ist an Smarty kompliziert? Und warum musst Du hier das Rad neu erfinden? Off-Topic: Da reden alle immer von reusable Code und machen einen auf OOP, und wenn es dann hart auf hart kommen, schreiben sie doch jeden Pups selbst... Versteh das mal einer |
#3
| ||||
| ||||
Sascha, ich habe nicht darum gebeten mit dir ein Frage und Antwort Spiel zu machen. Ich habe nur um Hilfe gebeten, aber wenn du nur spielen willst dann such dir bitte ein anderes Thema |
#4
| |||
| |||
Ich wollte nur verstehen, was Dein Problem ist, um Dir besser helfen zu können. So etwas nennt man Rückfrage. BTW, auch in meiner Frage steckt bereits eine Antwort: schau Dir an, die andere Template-Klassen (zum Beispiel Smarty) dieses Problem lösen. Wer lesen kann, ist klar im Vorteil. So, nun geh ich aber wieder spielen. |
#5
| ||||
| ||||
Wenn du nur Bedingungen der Form <wenn bedingung="Bedingung"> ... </wenn> auswerten willst kannst du das mit einem simplen regulären Ausdruck tun. Einfach vor PHP-Code: PHP-Code: 1. ich habs nicht sehr ausführlich getestet, sollte aber im Allgemeinen so funktionieren. 2. es wird nicht auf korrekte Syntax der Bedingung geachtet, es wird also beliebiger Code als Bedingung ausgeführt. Wenn jemand ausser dir die Templates bearbeiten können soll könnte dieser bösartigen PHP-Code als Bedingung einschleusen. Edit: folgendes sollte vor dem Ausdruck noch in das Script damit normale Variablen zur Verfügung stehen da der Ausdruck ja innerhalb einer Funktion steht: PHP-Code: |
#6
| ||||
| ||||
... ich hab mich damit auch mal beschäftigt: Wie könnte das ganze noch mit else und / oder elseif aussehen? Außerdem ist die Lösung überhaupt technisch und praktisch von der Performance so klug? p.s. Code: 2. es wird nicht auf korrekte Syntax der Bedingung geachtet, es wird also beliebiger Code als Bedingung ausgeführt. Wenn jemand ausser dir die Templates bearbeiten können soll könnte dieser bösartigen PHP-Code als Bedingung einschleusen. __________________ Frederic Schneider WoltLab Team / WoltLab Wiki / GamePorts / Frederic Schneider / neuer-patriotismus.de |
#7
| ||||
| ||||
Wie schon im Chat erläutert hat das ganze ein Problem... <wenn bedingung="$boardid = 1">hallo</wenn> prüft, ob $boardid = true; und nicht ob $boardid = '1';... <wenn bedingung="$boardid == 1">hallo</wenn> oder <wenn bedingung="$boardid === 1">hallo</wenn> funktioniert garnicht |
#8
| ||||
| ||||
Ja klar, so stehts ja auch im code. = '1' ist ein STRING, = 1 ein INTEGER bzw. bei 1 und 0 ein BOOLEANSCHER Wert. Mensch, das musste aber langsam wissen __________________ Philipp Gérard Gewöhnliche Menschen denken nur daran, wie sie ihre Zeit verbringen. Ein intelligenter Mensch versucht sie zu nützen. - Arthur Schopenhauer |
#9
| ||||
| ||||
Ja, weiß ich auch Nur leider hilft mir das Wissen nix, da ich mit dem Rest nicht klarkomme <wenn bedingung="$boardid == '1'">hallo</wenn> gibt nen Fehler aus wegen den '. |
#10
| ||||
| ||||
Das liegt an dem regulären Ausdruck da dieser Anführungszeichen einen Backslash voranstellt. Diese produzieren dann einen "Parse Error" im evaluierten Code. Ich habe in diesem Thema schonmal eine andere Vorgehensweise beschrieben mit der dieses Problem umgangen wird. |
#11
| ||||
| ||||
Hey super, mehr will ich nicht Hab es in die Klasse eingebaut, ein bissl was weggelassen und es geht. Für den Rest antworte ich mal auf das ältere Thema |
Stichworte |
- |
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Tidbits Template Class (habe ich selbst gemacht!) | Fabchan | Programmierung und Datenbanken | 82 | 23.01.2006 17:20 |
In einer Klasse auf eine andere Klasse zugreifen | MrNase | Programmierung und Datenbanken | 4 | 13.10.2004 06:46 |