WebsiteBaker Community Forum
WebsiteBaker Support (2.13.x) => Modules => Topic started by: ruebenwurzel on December 02, 2025, 12:59:11 PM
-
Hallo,
habe eben versucht eine neu Accordion Section in eine Seite einzubauen. Nach Aktivierung des Template Editors habe ich mein Template erstellt. Unter "Wähle ein Frontend-Template" ist es nicht zu sehen, kann deshalb auch nicht aktiviert werden. Musste die Template ID dann in der Datenbank manuell eintragen.
Kann das jemand nachvollziehen oder ist das ein lokales Problem meiner Installation?
Gruß
Matthias
WB 2.23.9 R25; PHP 8.4
-
japp, geht auf meine Kappe
Datei /modules/accordion/cmd/Modifysettings.inc.php
da fehlt eine Zeile :oops:
hinter diese Zeilen 80ff
$oBEFunctions = new Accordion();
$aTwigdata['setting'] = $oBEFunctions->getAccordionSettings($section_id);
$aTwigdata['lang'] = $oTrans->getLangArray();
füge diese Zeile ein
$aTwigdata['TemplateList'] = $oBEFunctions->getAllTemplatesArray($section_id);
neue Version lade ich später hoch
-
Perfekt, Danke (Y)
-
Hab gerade die 2.7.9 installiert. Da habe ich jettzt das Problem, dass html-Code in den Antworttexten als Text angezeigt wird.
-
Entweder in deinem Template oder in der /templates/view.twig - je nachdem, was du benutzt, muß der raw-Filter eingefügt werden (hier rot markiert)
{% for item in ITEMLIST %}
<span class="accordion-title {{ item.status_on_page load }}{{ acc_method }}">{{ item.question|raw }}</span>
<div class="accordion-content">{{ item.answer|raw }} <br>
</div>
{% endfor %}
Ursache ist der etwas striktere Modus im Twig-Loader. Ich sehe aber, da gibt es auch im Backend noch ein paar Stellen, z.b. in der Übersicht / Beschreibung
-
Hallo,
danke. Ich denke ich werde dann meine Templates verwerfen und basierend auf dem aktuellen Standardtemplate meine Anpassungen (sind nur marginal) vornehmen.
Matthias
-
Die Idee hinter dem Template-Editor war ja, das man pro Section unterschiedliche Templates haben kann. Wer das nicht braucht, kann sich das Standard-Template in den Editor holen und es für sich anpassen. Dann schaltet man in den Settings den Template-Editor aus, nachdem man das geänderte Template als Ausgabe eingestellt hat und spart sich den Platz, den die TemplateListe in der Backend-Übersicht braucht.
Aber natürlich muß die Vorlage dann auch korrekt sein. :oops:
Das war sie hier nicht, sollte wohl zu schnell gehen.
Das da eine Zeile fehlt, die die Templates aus der Datenbank läd, ist erst mit deinem Post aufgefallen, die Folge, wenn man immer mit ausgeschaltetem Template-Editor testet.
Seit Frühling/Sommer 2025 hat man ja auch WB für XSS-Angriffe bzw Angriffstests entdeckt und das gilt dann eben auch für die Backend-Eingaben im Accordion-Modul. Hier müssen die Eingaben von Frage und Antwort genauso abgesichert werden wie im Frontend auch.
Um das nun besser zu überwachen und nicht wieder eine Codezeile zu vergessen, hab ich den strict_variables-Mode und den Debug-Mode für Twig aktiviert. Mittels aktiviertem WB-Debug-Mode kann man dann jede Datei im Modul einzeln testen und bekommt für jeden Tip- oder Denkfehler eine Fehlermeldung.
Genau diese Methode zeigte dann gleich, wo eine Variable noch nicht definiert wurde, hier die Template-List (und noch 10 andere...)
ein weiterer Fehler war, das in der Frage HTML-Code erlaubt war, was dann wieder dafür sorgte, das die Sicherheitsmechanis men greifen. Und so kommt eines ins Andere...
Was jetzt noch fehlt, wären prepared Statements. Mit der aktuellen class.database.php würde man den Code im Modul unnötig aufblähen. Mit der neuen Klasse wird das alles unkompliziert umsetzbar. Allerdings bin ich da noch noch ganz fertig, muß also noch etwas warten.
Ich werde jetzt die mitgelieferte Vorlage und die view.php noch anpassen und dann ausgibig testen. Irgendwann am Nachmittag lad ich dann eine Version 2.8.0 hoch und melde mich hier wieder
-
Danke für die Erläuterung.
Dann warte ich bis die neue Version online ist und aktualisiere dann.
Nur noch eine kurze Verständnisfrage. Wenn ich mir mit dem templateeditor das Standartemplate lade, es anpasse und den templateeditor dann deaktiviere, dann wird von allen accordions die ich anlege mein verändertes Standard template genutzt?
Wenn das so wäre, spar ich mir den Platz für die templates per section.
-
Wenn ich mir mit dem templateeditor das Standartemplate lade, es anpasse und den Template-Editor dann deaktiviere, dann wird von allen accordions die ich anlege mein verändertes Standard template genutzt?
Das Standardtemplate steht in der install-data.sql.php und wird beim Anlegen einer Section in die Datenbank geschrieben und an diese Section gebunden. Hast du zehn solcher Sectionen im Projekt, stehen auch zehn Templates in der DB. Diese kannst du unabhängig voneinander für die jeweilige Section nutzen.
Wird es (bei aktiviertem Template-Editor) in der Template-Liste gelöscht, wird es direkt wieder aus den Daten der install-data.sql.php neu erstellt. Falls sich also mal jemand beim Editieren verrannt hat, so gehts zurück auf Anfang :wink:
möchtest du aber überall die gleiche Version haben, dann würde ich auf den Template-Editor verzichten und in den Einstellungen "Verwende Datei statt Datenbank-Template" wählen. In diesem Fall wird die Datei /templates/default/view.twig genutzt (andere Variante weiter unten). Das ist in der Ausgangslage, also nach frischem Install, eine Kopie des Templates aus der Datenbank, gilt aber für alle.
Wenn du mal in den Ordner /modules/accordion/templates schaust, wäre der default-Ordner der Ordner, der zum ZIP des Accordion-Moduls gehört.
Findest du da noch einen Ordner, der den Namen deines in den WB-Optionen eingestellten Frontend-Templates trägt, dann wäre zum einen der Template-Kopierer aktiv. Den gab es mal eine ganze Weile, hatte Dietmar aber in seinen letzten Versionen auskommentiert, weil er in seiner Entwicklungsumgebun g durcheinander kam. Ich hatte den Kopierer in den letzten Versionen wieder aktiviert
Dieser Ordner wäre dann ein User-eigener Ordner, der nicht überschrieben wird. Hier kannst du CSS, JS oder auch das Twig anpassen. Nur halt nicht die Datei view_from_db.twig verändern. Sie ist verantwortlich für die Einbindung von Templates aus der DB.
Eine Änderung in der view.twig dort in diesem User-eigenem Ordner wäre dann für alle Sektionen gültig und wird auch beim Upgrade nicht mehr überschrieben.
Sollte der Template-Kopierer nicht aktiv sein, kannst du auch den default-Ordner im /modules/accordion/templates manuell kopieren (parallel zum default-Ordner dort). Der neue Ordner muß dann den Namen des genutzten Frontend-Templates haben.
Das würde dann analog auch mit dem themes-Ordner passieren, wenn man ein weiteres Backend-Theme hätte
P.S.: die Version 2.8.0 wurde, wie geschrieben, am Nachmittag hochgeladen -> https://addon.WebsiteBaker.org/en/browse-add-ons/?id=00CB2195
-
Hallo,
alles klar, dann weiß ich Bescheid. Hab mir die 2.8.0 gezogen und installiert. Läuft alles fehlerfrei und dank deiner Erläuterungen konnt ich alles so einrichten wie ich es brauche.
Danke
Matthias