<we:master> nicht konditioniert verwendbar und nicht auskommentierbar. Verhalten so gewollt?

Fragen zum Erstellen von Templates für webEdition.
jpunktkpunktzwo
Junior Member
Beiträge: 27
Registriert: Mo 10. Okt 2016, 12:59

<we:master> nicht konditioniert verwendbar und nicht auskommentierbar. Verhalten so gewollt?

Beitragvon jpunktkpunktzwo » Mi 24. Jan 2018, 14:25

Eine Detailvorlage enthält bei mir ein

Code: Alles auswählen

<we:ifVar ...>
<we:master name="bodyClass">searchResultsPage</we:master>
</we:ifVar ...>
und soll konditional (ifVar) damit eine CSS-Klasse ins class-Attribut des body-Tags der Hauptvorlage schreiben.

Allerdings wird das master-we-Tag ausnahmslos immer ausgeführt. Egal, ob die Kondition zutrifft oder nicht.
Das geht sogar so weit, dass ich das we:master nicht mal mit einem we:comment umschlossen deaktivieren kann.

Ist das Verhalten so gewollt? Falls ja, sollte man das wenigstens entsprechend in der Tag-Referenz [1] etwas ausführen, denn intuitiv ist es nicht.

1: https://www.webedition.org/de/dokumenta ... enz/master

jpunktkpunktzwo
Junior Member
Beiträge: 27
Registriert: Mo 10. Okt 2016, 12:59

Re: <we:master> nicht konditioniert verwendbar und nicht auskommentierbar. Verhalten so gewollt?

Beitragvon jpunktkpunktzwo » Mi 24. Jan 2018, 14:33

Übrigens wird auch innerhalb des

Code: Alles auswählen

<we:comment>
…
</we:comment>
noch die Syntax des Quelltextes überprüft und bemängelt.

Ich wollte das öffnende master-Tag mit XXXmasterXXX deaktivieren und hatte das schließende nicht mit umbenannt.

Code: Alles auswählen

<we:comment>
	<we:XXXmasterXXX name="bodyClass"> searchResultsPage</we:master>
</we:comment>
Benenne ich das schließende auch so um, funktioniert's wieder, die Vorlage abzuspeichern.

:lol:

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: <we:master> nicht konditioniert verwendbar und nicht auskommentierbar. Verhalten so gewollt?

Beitragvon mokraemer » Mi 24. Jan 2018, 15:13

das ist richtig.
Das liegt an der Art wie der Tagparser arbeitet. Die Tests mit den WE-Tags sind hier unabhängig vom Parser-Ergebnis. In PHP läßt sich kein echter LR-Parser schreiben. Man kann hier quasi nur mit Tokens und RegEx arbeiten. Da kommt es dann zu ein paar Einschränkungen wie dieser.

Zusätzlich dazu werden die Tags we:master und we:content ganz anders behandelt - denn die müssen vor dem Parsen in das Template injiziert bzw. entfernt werden.
D.h. auch wenn sie in einem comment-Block stehen werden sie beim Speichern der Vorlage ausgewertet und später der Inhalt wieder entfernt. Auf ein we_master hat der Comment entsprechend keine Auswirkungen.

Was ich empfehlen kann, wenn man es rausnehmen will:

Code: Alles auswählen

<weXmaster name.... </weXmaster>
Wenn das nur temporär ist, muß man nix machen, denn die Ersetzung ist aus und der Browser ignoriert das Tag was nun ausgegeben wird. Soll es ganz raus (ohne löschen), empfiehlt es sich, so wie bei dir es in einen comment-Tag zu setzen.
webEdition-Kern-Entwickler

jpunktkpunktzwo
Junior Member
Beiträge: 27
Registriert: Mo 10. Okt 2016, 12:59

Re: <we:master> nicht konditioniert verwendbar und nicht auskommentierbar. Verhalten so gewollt?

Beitragvon jpunktkpunktzwo » Mi 24. Jan 2018, 17:26

Dacht' ich mir schon fast. Sollte man vielleicht aber in der tag-Dokumentation anmerken.
Die Parse- und Behandlungs-Reihenfolge sind ja jetzt nichts, was sich oberflächlicheren Nutzern von alleine erschließt.
Selbst wenn man mal über das hier gestolpert ist: http://documentation.webedition.org/wik ... -templates


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste