Hallo,
Habe ein kleines Problemchen. Vielleicht kann mir jemand helfen. Ich glaub das ist nicht schwierig. Aber ich kriegs nicht hin.
Ich habe ein menü das sieht folgendermaßen aus:
tmp.mainmenu = HMENU
tmp.mainmenu {
wrap = <ul id="navi">|</ul>
#entryLevel = 1
#special = directory
#special.value = 11
1 = TMENU
1.noBlur = 1
#1.expAll = 0
1.NO = 1
1.NO.wrapItemAndSub = <li class="navi_out_wuww"> | </li>
2 = TMENU
2.noBlur = 1
2.NO = 1
2.NO.wrapItemAndSub = <li class="navisub_out_wuww"><span class="navitem_out_arrow">w</span> | </li>
2.ACT = 1
2.ACT.wrapItemAndSub = <li class="navisub_on_wuww"><span class="navitem_on_arrow">r</span> | </li>
Jetzt möchte ich auf einer einer Seite der 1. Ebene die Links der 2. Ebene so überschreiben das als parameter nicht mehr die URL sondern Text aus dem Datenbank feld subtitle eingesetzt wird.
Hat folgenden Hintergrund. Auf der Elternseite befinden sich tabs von jfmulticontent. Die Tabs sind gleichbedeutend mit den Unterseiten. Das heißt ich gebe bei subtitle der Unterseiten die Trigger ids der Tabs ein. So kann man das Plugin entweder über die Tabreiter oder über das Untermenü triggern.(komisch, is aber halt gewünscht)
Nach vielem rumprobieren bin ich nun bei dem hier gelandet:
tmp.mainmenu.2.NO{
parameter.stdWrap {
override.insertData = 1
override = {field:subtitle}
}
}
#oder so:
tmp.mainmenu.2.NO {
doNotLinkIt = 1
stdWrap.field = title
wrapItemAndSub = <li>|</li>
stdWrap.typolink {
parameter.field = subtitle
title.field = title
}
}
Da tut sich aber überhaupt nix. Irgendeiner eine Idee?
Danke schon mal
Eduard
Soweit ich weiss gibt es kein NO.parameter, der .parameter ist nur in Typolinks verfügbar, nicht im Menü.
Schau dir das mal an, so ähnlich sollte es funktionieren: http://blog.marit.ag/2007/07/18/parameter-ans-menu/
stdWrap.override geht auf jeden Fall schon in die richtige Richtung.
also wenn ich das richtig sehe müsste doch so etwas schon ausreichen oder?
tmp.mainmenu.2.stdWrap.typolink.parameter.field = subtitle
Kann es vielleicht auch an realURL liegen, dass es nicht klappt?
TsRef "parameter": This is the main data that is used for creating the link. It can be the id of a page, the URL of some external page, an email address or a reference to a file on the server.
Sieht so aus, als würde "parameter" gar keinen string annehmen... subtitle ist ein string.
Warum nicht irgendwie so:
tmp.mainmenu.2.stdWrap = TEXT
tmp.mainmenu.2.stdWrap {
insertData = 1
value = <a href="{field:subtitle}">{field:title}</a>
}
Muss ja nicht alles mit Typolinks gebaut werden 😉
so was ähnliches hab ich auch schon versucht... aber irgendwie scheint sich gar nichts zu tun...
cache und temporäres Gesocks gelöscht.
Nix.
paramter nimmt auch String an, wie toifel selbst zitiert hat:
... the URL of some external page ...
Dabei wird eine ganz eigene Logik verwendet, siehe hier zu auch https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Typolink.html den Abschnitt bei Parameter.
Korrekt sollte das so funktionieren:
Basieren auf deinem ersten MENÜ:
tmp.mainmenu = HMENU
tmp.mainmenu {
wrap = <ul id="navi">|</ul>
#entryLevel = 1
#special = directory
#special.value = 11
1 = TMENU
1.noBlur = 1
#1.expAll = 0
1.NO = 1
1.NO.wrapItemAndSub = <li class="navi_out_wuww"> | </li>
2 = TMENU
2.noBlur = 1
2.NO = 1
2.NO.wrapItemAndSub = <li class="navisub_out_wuww"><span class="navitem_out_arrow">w</span> | </li>
2.ACT = 1
2.ACT.wrapItemAndSub = <li class="navisub_on_wuww"><span class="navitem_on_arrow">r</span> | </li>
}
Einfach anschließend oder generell, je nachdem wie der Fall zutrifft:
tmp.mainmenu.2.NO.doNotLinkIt = 1
tmp.mainmenu.2.NO.stdWrap.typolink.parameter.field = subtitle
Deiner 2. Menü-Ebene fehlt übrigens noch das umschließende UL-Tag
Kleiner Nachtrag:
Muss ja nicht alles mit Typolinks gebaut werden
Das ist meine Einstellung generell auch, in dem Moment wo allerdings it RealURL und mehreren Sprachen gearbeitet wird, macht die Typolink-Funktion ( auch bei externem Code ) doch schon Sinn und vieles einfacher
Hallo Chrissli,
dein Vorschlag klappt eigentlich ganz gut. Es wird ein Link ausgegeben mit der aktuellen seite als url und hintendran häng die id (http://meinedomain.de#jfmulticontent_c507-2)
beim ersten Klick auf einen der Links funktioniert das ganze auch. Die Seite wird noch einmal aufgerufen und der entsprechende Tab getriggert. Wenn ich jedoch einen anderen unter punkt anklicke... ändert sich zwar im addressfeld des Browsers die URL d. h. mit neuer id hinten dran... aber die Seite wird nicht neu geladen.
Erst wenn ich in die Adresszeile klicke und Return drück lädt es. Weiß jemand warum das so ist?
Die URL sollte sich nach dem ersten Klick eigentlich unterscheiden ( abgesehen vom #jfmulticontentXYZ ) etvl. ein slash der vorher nicht da war?
Normalerweise werden Links die nur aus "#irgendwas" bestehen einfach an die URL angehängt bzw. ein entsprechender Container mit der ID angesprungen, ohne dass die Seite neu geladen wird.
Was erwartest du denn was passiert? Soll heissen sollte die Seite denn neu geladen werden bzw. warum? Denn eigentlich sollte der Tab-Umschalter ( oder was das ist ) den Inhalt ja per Javascript switchen, wozu ja ein Neuladen nicht erforderlich ist.
Hi,
ioa... das sich nur der Inhalt der Tabs änderd wäre ja ok. Tut es nur nicht. Wenn ich die URLs aus den Links in die Zeile eingebe dann funktionierts. Aber dann wird eben neu geladen. Deswegen kam ich überhaupt auf das neuladen. Aber ursprünglich hab ich mir nätürlich schon gedacht, dass nur der Inhalt der Tabs sich ändert. Sollte ich vielleicht die domain als prefix verhindern so das nur "#selector" drin steht?
Ich glaube ja. Probieren geht über studieren würd ich mal sagen.
Also würde ich ein Javascript für Tabs machen ( als hätt ich das nicht schonmal ;D ) würde ich es so vorsehen, damit wenn Javascript deaktiviert ist der normale, nicht durch JS gerenderte Inhalt so funktioniert, dass die Marker eben per #Sprungmarke angesteuert werden. Nannte sich früher mal Barrierefreiheit. Aber seit Smartphone/Tablet ist das wieder uninteressant geworden :p
so,
also nach dem ich jetzt einiges ausprobiert habe und immer mehr Problem als Lösung dabei rauskam 😃 , hab ich das ganze jetzt über tt_news catmenu gelöst.
Die Inhalte der Tabs sind nämlich tt_news listen.
Also eine einzige Liste in den Content + 1 Catmenü (als Ersatz für die Tabreiter) in den Content und dann das selbe Catmenü über eine SPC ins Hauptmenü gezimmert. CSS angepasst und alles funzt genauso wie es soll. Läd zwar jedesmal die Seite, aber damit kann ich leben.
Einziger Schönheitsfehler ist das in der URL (mit Realurl) nun auch Verzeichnisse für die Kategorien angezeigt werden. Falls jemand nen Tipp hat, wär nett. Ansonsten hab ich das für mich jetzt gelöst.
So.
Hat sich erledigt. Nach dem ich das ganze zwischenzeitlich mit dem CATMENU von tt_news versucht habe (die Inhalte in den Tabs sind tt_news) und das wieder neue Probleme gab, hab ichs jetzt ganz anders gelöst.
Hab die Inhalte auf verschiedene Seiten gepackt und das Untermenü über TS noch mal in den Content gemappt und so gestylt dass es aussieht wie das Tabmenü vorher.
Lädt zwar immer neu... aber fällt fast nicht auf. Menüs funktionieren wunderbar abhängig von einander und zeigen automatische immer den richtigen Punkt an.
Ist zwar nicht perfekt. War aber viel einfacher als der andere Kram. Und auch ein bisschen sauberer gelöst.
Also für mich jetzt erledigt 🙂