Rootline / Beadcrumb Menü / Pfadmenü an Extensions anpassen.
Ein Pfadmenü zu erstellen ist nicht schwer. Dieses Forum bietet viele gute Beispiele. Ich möchte hier einmal festhalten, wie man das Pfadmenü an verwendete Extensions anpasst, damit bei tt_news z. Bsp. der Titel der News im Pfadmenü angezeigt wird oder der Titel des Datensatzes einer selbst geschriebenen Extension. Auch dafür gibt es Beispiele im Forum, die ich jedoch nicht sofort verstanden habe. Vielleicht hilft dieses kleine Tutorial einigen von Euch weiter.
Ein simples Pfadmenü könnte z.Bsp. wie folgt aussehen. Der TypoScript-Code sollte in deinem Root-Template im SETUP stehen:
temp.pathmenu = COA
temp.pathmenu.10 = HMENU
temp.pathmenu.10 {
# Auch Seiten anzeigen vom Typ: Nicht im Menü
includeNotInMenu = 1
special = rootline
special.range = 0|-1
1 = TMENU
1 {
target = _top
NO {
allWrap = | » |*| | » |*| |
}
}
# Aktuell gewähltes Element
1.CUR = 1
1.CUR {
doNotLinkIt = 1
wrap = » |
}
}
Will man das Pfadmenü jetzt für die News (tt_news) oder eine selbst geschriebene Extension anpassen, dann folgenden TypoScript-Code direkt unter den obigen Code platzieren.
# ----- Änderungen für tt_news (Newstitel im Rootline anzeigen ----- #
[globalVar = GP:tx_ttnews|tt_news > 0]
temp.pathmenu.10.special.range = 0|-2
temp.pathmenu.20 = RECORDS
temp.pathmenu.20 {
dontCheckPid = 1
tables = tt_news
source.data = GPvar:tx_ttnews|tt_news
conf.tt_news = COA
conf.tt_news.20 = TEXT
conf.tt_news.20.field = title
conf.tt_news.20.crop = 60 | ...
conf.tt_news.20.wrap = » |
}
[end]
# ----- Änderungen für eigene Extensions ----- #
# Du musst deine eigenen Werte für Tabelle,etc. eintragen
[globalVar = GP:tx_deinExtKey_pi1|VariablenName > 0]
temp.pathmenu.10.special.range = 0|-1
temp.pathmenu.20 = RECORDS
temp.pathmenu.20 {
dontCheckPid = 1
# Tabellenname eintragen
tables = tx_DeinTabellenName
# Eintragen, wie die Variable übertragen wird
source.data = GPvar:tx_deinExtKey_pi1||VariablenName
conf.tx_DeinTabellenName = COA
conf.tx_DeinTabellenName.20 = TEXT
# Feld deiner Tabelle, das im Pfadmenü angezeigt werden soll
conf.tx_DeinTabellenName.20.field = DeinTabellenFeld
# Länge des Feldes auf 60 Zeichen beschränken
conf.tx_DeinTabellenName.20.crop = 60 | ...
conf.tx_DeinTabellenName.20.wrap = » |
}
[end]
Grüße,
Stephan
Hallo
1.) DANKE für das TS.
2.) Wie baut man das TS auf wenn man mehrere Extensions eingebaut hat. (z.B. tt_news, jm_gallery, tt_products alle auf der RootPage).
Der Ansatz von mir funktioniert bis auf das bei der Gallery das Album keinen Link hat wenn man ein Bild betrachtet.
Aber das geht doch sicher eleganter, bzw. so viel code kann ja auch nicht gut sein für die Performance.
Hat da jemand eine Vorschlag?
Walter
lib.breadcrumbs = COA
lib.breadcrumbs.10 = HMENU
lib.breadcrumbs.10 {
# Auch Seiten anzeigen vom Typ: Nicht im Menü
includeNotInMenu = 0
special = rootline
special.range = 0|-1
1 = TMENU
1 {
target = _top
NO {
allWrap = | » |*| | » |*| |
}
}
# Aktuell gewähltes Element
1.CUR = 1
1.CUR {
linkWrap =<strong>|</strong>
doNotLinkIt = 1
}
}
[globalVar = GP:tx_ttnews|tt_news > 0]
lib.breadcrumbs.10.special.range = 0|-2
lib.breadcrumbs.20 = RECORDS
lib.breadcrumbs.20 {
dontCheckPid = 1
tables = tt_news
source.data = GPvar:tx_ttnews|tt_news
conf.tt_news = COA
conf.tt_news.20 = TEXT
conf.tt_news.20.field = title
conf.tt_news.20.crop = 60 | ...
conf.tt_news.20.wrap = » |
}
[end]
# Du musst deine eigenen Werte für Tabelle,etc. eintragen
[globalVar = GP:tx_jmgallery_pi1|albumUid > 0]
lib.breadcrumbs.10.special.range = 0|-2
lib.breadcrumbs.20 = RECORDS
lib.breadcrumbs.20 {
dontCheckPid = 1
# Tabellenname eintragen
tables = tx_jmgallery_albums
# Eintragen, wie die Variable übertragen wird
source.data = GPvar: tx_jmgallery_pi1|albumUid
conf.tx_jmgallery_albums = COA
conf.tx_jmgallery_albums.20 = TEXT
# Feld deiner Tabelle, das im Pfadmenü angezeigt werden soll
conf.tx_jmgallery_albums.20.field = name
# Länge des Feldes auf 60 Zeichen beschränken
conf.tx_jmgallery_albums.20.crop = 60 | ...
conf.tx_jmgallery_albums.20.wrap = » |
}
[end]
[globalVar = GP:tx_jmgallery_pi1|imageUid > 0]
lib.breadcrumbs.20.special.range = 0|-1
lib.breadcrumbs.30 = RECORDS
lib.breadcrumbs.30 {
dontCheckPid = 1
# Tabellenname eintragen
tables = tx_jmgallery_images
# Eintragen, wie die Variable übertragen wird
source.data = GPvar: tx_jmgallery_pi1|imageUid
conf.tx_jmgallery_images = COA
conf.tx_jmgallery_images.30 = TEXT
# Feld deiner Tabelle, das im Pfadmenü angezeigt werden soll
conf.tx_jmgallery_images.30.field = filename
# Länge des Feldes auf 60 Zeichen beschränken
conf.tx_jmgallery_images.30.crop = 60 | ...
conf.tx_jmgallery_images.30.wrap = » |
}
[end]
Auch wenn du mehrere Extension auf einer Seite am laufen hast sollte dies funktionieren.
Und ob es kürzer geht weiß ich nicht. Ich muss ja TYPO3 sagen, was es wo finden kann, um es anzuzeigen. Und sooo viel Performance wird dadurch nicht verloren gehen.
Grüße
Meine bisherige Rootline wird wie folgt aufgebaut:
lib.rootline = HMENU
lib.rootline {
wrap = <div id="rootline">|</div>
includeNotInMenu = 1
special = rootline
entryLevel = -2
1 = TMENU
1 {
NO=1
NO {
before = Sie sind hier: || » || » || » || »
after =
}
ACT < .NO
CUR < .NO
}
}
Jetzt habe ich mal nach deinem Beispiel das Ganze für tt_products
probiert. Leider erscheint aber nichts, wenn man sich auf der
Detailseite des Produktes befindet 🙁
Woran könnte das denn liegen?
[globalVar = GP:tx_ttproducts|tt_products > 0]
lib.rootline.10.special.range = 0|-2
lib.rootline.20 = RECORDS
lib.rootline.20 {
dontCheckPid = 1
tables = tt_products
source.data = GPvar:tx_ttproducts|tt_products
conf.tt_products = COA
conf.tt_products.20 = TEXT
conf.tt_products.20.field = title
conf.tt_products.20.crop = 60 | ...
conf.tt_products.20.wrap = » |
}
[end]
Danke!
T.C.
Hallo Toccamonium,
deine GP Abfrage ist für tt_products nicht ganz korrekt. Müsste so heissen:
[globalVar = GP:tx_ttproducts_pi1|product > 0]
lib.rootline.10.special.range = 0|-2
lib.rootline.20 = RECORDS
lib.rootline.20 {
dontCheckPid = 1
tables = tt_products
source.data = GPvar:tx_ttproducts_pi1|product
conf.tt_products = COA
conf.tt_products.20 = TEXT
conf.tt_products.20.field = title
conf.tt_products.20.crop = 60 | ...
conf.tt_products.20.wrap = » |
}
[end]
Gruss
Lars
Wie sieht das denn bei TYPO3 6 aus? Da läuft das Typoscript leider nicht.