Zum Inhalt springen

Rootline an Extension anpassen

Erstellt am 29. Januar 2008 · 5 Antworten · letzte Antwort am 13. Juni 2013

Tags: tt_news, Tipp

Mopps ·

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

opaque ·

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 =  &nbsp;&raquo;&nbsp; |
}       
[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 = &nbsp;&raquo;&nbsp; |
}       
[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 = &nbsp;&raquo;&nbsp; |
}       
[end]
Mopps ·

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

Toccamonium ·

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:&nbsp;|| &nbsp;&raquo;&nbsp; || &nbsp;&raquo;&nbsp; || &nbsp;&raquo;&nbsp; || &nbsp;&raquo;&nbsp;
      after = &nbsp;
    }
    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.

gkahr ·

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 =  &raquo  |
}       
[end]

Gruss
Lars