rOgers Template Fragen

15.07.2019 15:37
avatar  Ingmar
#1
avatar
Technik

Ich verlagere diese Fragen mal von der Email ins Forum - so helfen die Antworten eventuell auch noch anderen Entwicklern:


Zitat
Gibt es eine Möglichkeit auch die Parameter der Templates (sprich Definition der Variablen) zu sichern ohne diese manuell dokumentieren zu müssen? Gibt es ein Datenset, mit dem man alle möglichen Einträge testen kann? Wie sieht Eure Testprozedur aus?


Wir testen neue Funktionen "von Hand" - führen also einfach die zu testende Aktion im Forum aus. Alternativ setzten wir uns die nötigen Parameter per php.
Du kannst dir z.B. ein Plugin erstellen, welches vor der oberen Leiste geladen wird und in dem du dir die benötigten Variabeln selbst definierst.

Zitat
Einiges an Arbeit könnte man sich sparen, wenn die Elemente in der Forum-Ansicht und Thread-Flat z.B. die Variablen gleich heissen würden (so könnte man z.B. das Template für die Thread-Flat Ansicht für die "Related" Topics wiederverwenden ohne grossen Aufwand zu treiben..


Zitat
Dasselbe z.B. für den Paging-Mechanismus. Leider heissen die Variablen unterschiedlich - obwohl es immer gleich funktioniert.


Solche Unterschiede sind leider über die Jahre entstanden. Da wir bei jedem Update auch die Abwärtskompatibilität für veränderte Templates im Auge behalten müssen können wir die Namen der Variabeln auch nicht einfach so ändern. An einigen Stellen geben wir daher Werte doppelt aus (mit verschiedenen Variabel-Namen). Das geht aber natürlich nur, wenn es sich um kurze Strings handelt. Bei größeren Arrays würde das zu viel Extra-Traffik erzeugen.

Es gibt aber eine Lösung für dein Problem:
Mit der map-Funktion kannst du Variabeln unter einem neuen Namen speichern. Das klappt für Arrays oder einzelne Werte:

1
2
3
 
{{pages.map(entriespages)}} //legt die Variable pages an und gibt ihr den Wert von entriespages
{{pages_current.map(current_page)}} //legt die Variable pages_current an und gibt ihr den Wert von current_page
 
 




Zitat
Auch wäre es schön, wenn jeweils dieselben Informationen zur Verfügung stehen würden (z.B. gibt es bei den "Related" Topics einen Verweis auf das Forum, in dem diese enthalten sind - bei der Forum-Ansicht gibt es dieses Element nicht in dieser Form.



Naja bei der Foren-Ansicht sollte ja eigentlich klar sein, in welchem Forum sich die Themen befinden. Auf der "Beiträge der letzten Tage"-Seite (die ja auch im Template Forum Ansicht ausgegeben wird) gibt es {{thread:forum_link}} und {{thread:forum_title}}

Ansonsten stimme ich dir zu, dass an ein paar Stellen nicht immer alle Variabeln zur Verfügung stehen, die man eventuell erwartet. In manchen Fällen hat das dann gute Gründe (z.B. weil mein sich einen DB-Call spart), manchmal wurde das schlicht vergessen. Daher im Zweifel einfach fragen - wenn es kein Aufwand ist können wir fehlende Variablen auch nachliefern.

Zitat
Weiter verstehe ich auch nicht ganz, warum das Aufbereiten des Benutzernamens als Teil des Representation Codes durchgeführt wird und nicht im Backend-Code abgehandelt wird.


Der Hintergrund dabei war, dass die einzelnen Templates die Anzeige der Benutzer(namen) sehr unterschiedlich handhaben. Wir wollten das nicht einschränken und geben daher nur die Rohdaten aus - ob dann nur der Name, ein Avatar, ein Link, eine Standardgrafik oder was auch immer ausgegeben wird ist Sache des Admins.

Aber ich verstehe, worauf du hinauswillst. Genau wie bei den Seitenzahlen oder Breadcrumbs hat man dadurch oft eine Menge Code, der in jedem Template teilweise sogar mehrfach vorkommt.
Im neuen Bootstrap-Template wird das daher etwas modularer aufgebaut - aber du wolltest ja nicht warten bis das online geht
Dort setzte ich mir mit der Map-Funktion z.B. die Seitenzahlen immer auf die gleichen Variablen und binde dann einfach mit {{include(pagination)}} das "Pagination"-Template ein, in dem die Seitenzahlen ausgegeben werden.
Eine Div mit Avatar und Link zum Profil erstelle ich einfach mit {{user_id|userdiv}}. Soll es nur der Link sein gibt es {{user_id|userlink}} usw.
Das klappt aber leider alles in deinem Template nicht...


 Antworten

 Beitrag melden
Bereits Mitglied?
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!