Bug? Template-Variablen ohne Kleinbuchstaben 3.0.5<=> 2.0.23

phpBB 3.0 hat sein "End of Life" erreicht. Eine Neu-Installation wird nicht mehr unterstützt.
Gesperrt
Reisemobilist
Mitglied
Beiträge: 34
Registriert: 07.05.2004 12:33
Wohnort: Schwülper

Bug? Template-Variablen ohne Kleinbuchstaben 3.0.5<=> 2.0.23

Beitrag von Reisemobilist »

Moin!
Als Umsteiger von 2.0.23 auf 3.0.5 habe ich mit einer selbsterstellten HTML-Datei Probleme. Nach langer Fehlersuche habe ich herausgefunden, dass die Variablen in der .tpl-Datei für 2.0.23 auch mit kleinen Buchstaben geschrieben werden dürfen, bei 3.0.5 müssen die Variablen in der HTML-Datei zwingend aus Großbuchstaben bestehen.

p.s.: in 2.0.23 läuft meine .php in Verbindung mit der .tpl einwandfrei, in 3.0.5 werden Variablen, die kleine Buchstaben enthalten, kompromisslos so ausgegeben, wie sie im Quelltext stehen (Ausgabe in der generierten HTML-Datei ist also z. B. "{COUNt4621973}" anstatt der eigentlichen Zahl, die in der Variablen gespeichert sein sollte).

Alles, was in 3.0.5 zwischen den Klammern "{ }" steht und auch nur einen kleinen Buchstaben enthält wird genauso wie es da steht ausgegeben und nicht mehr als Variable erkannt.

btw.: Es ist unabhänging davon, ob ich die Variable aus der .php-Datei übergebe. Siehe auch Beispiele

In den "coding-guidelines" habe ich nicht explizit eine ensprechende Anweisung gefunden, dass Variablen auschließlich aus Großbuchstaben bestehen dürfen.

Legende zu den Beispielen:
.php = Die Übergabe aus der .php-Datei
.html = Einbau der Variablen in der HTML-DAtei
Ausgabe: Dieses wird ausgegeben respektive im Browser angezeigt.
Die Farbe sollte selbsterklärend sein...

Bsp.:
1. Alles richtig:
.php: 'COUNT4621973' => $anzDaten4621973
.html: Anzahl: {COUNT4621973}
Ausgabe: Anzahl: 5


2. Nur das t in COUNt ist klein, dadurch falsche Ausgabe:
.php: 'COUNt4621973' => $anzDaten4621973
.html: Anzahl: {COUNt4621973}
Ausgabe: Anzahl: {COUNt4621973}


3. Variable in .php nicht (richtig) definiert, daher keine Ausgabe (unterschiedliche Namensgebung, siehe T_T-T). [leer] bedeutet, hier steht nichts, und deshalb ist dieses Szenario auch richtig:
.php: 'COUNT_T4621973' => $anzDaten4621973
.html: Anzahl: {COUNT4621973}
Ausgabe: Anzahl: [leer]


4. Variable in .php nicht (richtig) definiert (eigentlich egal für dieses Szenario), in der .html ist eine Variabel mit einem kleinen Buchstaben::
.php: 'COUNT_T_T_T_T4621973' => $anzDaten4621973
.html: Anzahl: {Count4621973}

Ausgabe: Anzahl: {Count4621973}

5. Nach meiner Ansicht müsste Nr. 4 wie folgt ausgegeben werden (siehe Ausgabe):
.php: 'COUNTTTTT4621973' => $anzDaten4621973
.html: Anzahl: {Count4621973}
Ausgabe: Anzahl: [leer]


Wie gesagt, in 2.0.23 funktioniert es (schaut ihr hier: http://www.hme-ev.de/bb/rms.php). Die "rund um den Body angepasste" Version für 3.0.5 gibt mir die Variablen, die nur aus Großbuchstaben und Zahlen besteht, richtig aus, die Variablen, die Kleinbuchstaben enthalten, jedoch als z.B. {Count4621973}.

Ist das jetzt ein Bug :o , eine gewollte Umstellung :oops: oder sitzt das Problem zwischen meinen Ohren :grin:

btw.: ich möchte nicht 265 Variablendefinitionen in der PHP-Datei durchgehen und entsprechen in den fast 4000 Zeilen der .html-Datei die ca. 530 eingesetzten Variablen überprüfen :evil:

Viele Grüße...
Mein Haus :D - mein Auto 8) - mein Reisemobilforum
Benutzeravatar
Balint
Mitglied
Beiträge: 1815
Registriert: 25.01.2003 21:43
Wohnort: Stuttgart
Kontaktdaten:

Re: Bug? Template-Variablen ohne Kleinbuchstaben 3.0.5<=> 2.0.23

Beitrag von Balint »

Hallo,

ein sehr schöner Beitrag ;-)

Die Sache mit den Großbuchstaben ist etwas versteckt: http://wiki.phpbb.com/Using_the_phpBB3. ... ate_System
1.2.2. Template Variables hat geschrieben:By convention, template variable names are always all-uppercase.
Ich würde dir deher empfehlen, mit einem vernünftigen Editor die Sachen zwischen den geschweiften Klammern zu suchen und diese in Großbuchstaben umzuwandeln. Das geht z.B. hervorragend mit Notepad++


Viele Grüße,
Bálint
Meine MODs für phpBB 2.x und phpBB 3.x!
Reisemobilist
Mitglied
Beiträge: 34
Registriert: 07.05.2004 12:33
Wohnort: Schwülper

Re: Bug? Template-Variablen ohne Kleinbuchstaben 3.0.5<=> 2.0.23

Beitrag von Reisemobilist »

Hallo Bálint,
Danke für die Antwort.

im deutschen Coding-Guidline hatte ich das mit den Großbuchstaben nicht gefunden:
Benennen von Dateien:
Zuerst: Templates haben jetzt das Suffix ".html" anstelle von ".tpl". Das wurde einfach gemacht um das Leben mancher Leute mit Syntax-Highlighting zu erleichtern, usw.
Variablen:
Alle Template Variablen sollten passend benannt werden (mit Unterstrichen für Leerzeichen), Spracheinträge sollte ein L_, Systemdaten ein S_, URL's ein U_, JavaScript-URL's ein UA_ und JavaScript-Spracheinträgen ein LA_ vorangestellt werden, für den Rest gilt 'wie es halt heißt'.
L_* Template Variablen werden automatisch durch die entsprechenden Spracheinträge ersetzt, wenn der Code keine Zuweisung (und damit überschreibt) macht. Als Beispiel {L_USERNAME} wird durch $user->lang['USERNAME'] ersetzt. Die LA_* Template Variablen werden in der gleichen Weise gehandhabt, jedoch escaped um in den JavaScript Code zu passen. Das sollte den Aufwand für das Laden neuer Sprachvariablen durch Mods reduzieren.
Vielleicht wird das angepasst?!?

:cry: dann werd ich mich mal an die Fleißarbeit machen...

Ein zweites Danke für den Tipp mit Notepad++
Mein Haus :D - mein Auto 8) - mein Reisemobilforum
Gesperrt

Zurück zu „[3.0.x] Installation, Update und Konvertierung“