Hallo an alle und frohes Neues!
Zum Abschluss des Jahres habe ich noch eine Frage an Euch, die Ihr vielleicht schonmal in einem eurer Projekte umgesetzt habt. Es geht um ein Teilbaum der aus 2 Seiten "Aktiv" und "Inaktiv" besteht. Der Redakteur soll wenn möglich über das Verstecken der Seite den Status "inaktiv" und die sichtbare Seite als "aktiv" im Frontend aktivieren können. Ich habe folgendes TS dazu:
20 = HMENU
20 {
special = directory
special.value = 29
maxItems = 2
includeNotInMenu = 1
1 = TMENU
1 {
NO {
doNotLinkIt = 1
allWrap = <div class="active">|</div>
#stdWrap.override.if.isTrue.data = page:hidden
#stdWrap.override.wrap = <div class="inactive">|</div>
stdWrap.override.if.isTrue.field = hidden
stdWrap.override.wrap = <div class="inactive">|</div>
#allStdWrap.if.value.field = nav_hide
#allStdWrap.if.equals = 1
}
}
}
Wie Ihr seht, habe ich schon mehrere Varianten ausprobiert (siehe TS-Kommentare), aber noch zu keinem Ergebniss gekommen.
Könnt Ihr mir da weiterhelfen oder evtl. einen anderen Lösungsansatz, um ein Status ins FE zu bekommen, dass sehr einfach von einem Redakteur gepflegt werden kann?
Gruß der,
flashsilver
Hi,
allStdWrap gibt es schonmal nicht. Und mit override kannst du nur den Inhalt des zugehörigen Elementes überschreiben, hier stdWrap.
Also sollte es so gehen:
NO {
doNotLinkIt = 1
stdWrap.wrap = <div class="active">|</div>
stdWrap.override.if.isTrue.field = hidden
stdWrap.override.wrap = <div class="inactive">|</div>
}
Die Variante mit equals entsprechend auch.
Guten Rutsch!
Hallo hwt,
leider funktioniert dein Vorschlag nciht. Ich bekomme immer nur die sichtbare Seite im FE angezeigt, aber die verborgene Seite nie. Der Redakteur soll durch das Sichtbar/Verstecken der beiden Seiten einen Status im FE anzeigen. Es müssen also immer beide Seiten angezeigt werden, unabhängig ob die Seite Sichtbar oder Verborgen ist.
Wie kann man ganz allgemein verborgene Seiten vom BE im FE anzeigen? Ich dachte auch das deine Lösung funktionieren müsste. Ich habe weiter herum probiert, aber noch nicht zur einer Lösung gekommen...
Gruß,
flashsilver
Ach ja sicher. Natürlich werden die erstmal überhauptnicht angezeigt.
Aber: Google hilft auf Anhieb. Erster Treffer für "typo3 verborgene seite im menü anzeigen" -> http://typo3blogger.de/im-menu-versteckte-seiten-trotzdem-anzeigen/
includeNotInMenu = 1
Gilt allerdings nicht für versteckte, sondern für im Menü verborgene Seiten. Das Feld müsste dann 'nav_hide' sein.
Guten Rutsch!
Ich habe es auch gemerkt das ich mit versteckten SEiten nicht ans Ziel komme. Ich habe
includeNotInMenu = 1
hinzugefügt. Dennoch wird nur die sichtbare, also die mit active gekennzeichnete Seite angezeigt. Ich habe das TS mittleriweile so abgeändert:
20 = HMENU
20 {
special = list
special.value = 30,31
includeNotInMenu = 1
1 = TMENU
1 {
expAll = 1
noBlur = 1
NO {
doNotLinkIt = 1
doNotShowLink = 0
stdWrap.if.isFalse.field = nav_hide
stdWrap.wrap = <div class="active">|</div>
stdWrap.override.if.isTrue.field = nav_hide
stdWrap.override.wrap = <div class="inactive">|</div>
}
}
}
Ich dachte ich hätte es so verstanden, dass wenn die Seite im Menü erscheinen soll, dass dann mit
<div class="active">|</div>
gewrappt wird. Und wenn die Seite im Menü versteckt bleiben soll, dann mit
<div class="inactive">|</div>
überschrieben gewrappt wird.
Leider bekomme ich immer nur eine Seite angezeigt und zwar die Sichtbare mit
<div class="active">Aktiv</div>
. Ich möchte aber immer beide Seiten anzeigen, unabhängig ob sie im Menü angezeigt werden sollen oder nciht:
<div class="active">Aktiv</div>
<div class="inactive">InAktiv</div>
Hast Du da noch eine Idee? Ich weiß echt nicht weiter, aber ich hoffe ich konnte Dir mein Problem ein wenig verständlicher formulieren. :o
Gruß,
flashsilver
Hi,
danke für die genaue Beschreibung.
Hab es bei mir mal grad getestet und festgestellt, dass includeNotInMenu richtig funktioniert.
Ich dachte, dass es mit
stdWrap.wrap = <div class="active">|</div>
stdWrap.override.if.isTrue.field = nav_hide
stdWrap.override.wrap = <div class="inactive">|</div>
zu lösen ist, aber das geht so nicht denn dann werden augenscheinlich einige Intitialkonfigurationen im stdWrap überschrieben.
Spontan hab ich grad keine weitere Idee dazu.
MfG!
Naja mit dem override überschreibst du den eigentlichen Linktext, denn das override bezieht sich ja nicht auf das wrap sondern auf den Inhalt, der vom wrap umschlossen wird. du brauchst eigentlich einen override des wrap, das geht z.B. mit outerWrap und ich wrüde es dann etwa so probieren:
stdWrap.outerWrap = <div class="active">|</div>
stdWrap.outerWrap.override.if.isTrue.field = nav_hide
stdWrap.outerWrap.override = <div class="inactive">|</div>
Ungetestet, sollte aber gehen.
Hi,
ja da hast du recht. Habs getestet und es geht.
Grüße!
Hallo ihr beiden,
danke für eure Hinweise. Ich werde es nachher zu Hause testen und euch ein Feedback geben, ob es geklappt hat.
@hwt: Wenn du es getestet hast, dann sollte es auch mir gehen. ich melde mich und danke für eure Unterstützung
gruß,
flashsilver
Hallo nochmal,
ich habe es auch bei mir getestet und es funktioniert 😃
Vielen Dank für den Hinweis, leider war in der Dokumentation https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Stdwrap.html nicht beschrieben, was outerWrap bedeutet. Ein guter Zewitpunkt es nachzuholen!
Gruß,
flashsilver
Ja, doch eigentlich steht das schon richtig drin. Als Typ für outerWrap steht da ja wrap/stdWrap und override ist ja ne stdWrap-Eigenschaft, also nicht nur auf outerWrap beschränkt.
Mir war nur nicht klar, dass override nur den Inhalt des Elementes überschreibt und nicht seine Wraps.
Ein ergänzender Hinweis wie "Äußerer Wrap um das Element mit stdWrap-Eigenschaft." wäre aber vllt. hilfreich.
Mfg!