Für die vielleicht ein ähnliches oder gleiches Problem haben, hier noch meine Lösung.
Ich habe den extra Content jetzt nichtmehr auf der letzten Seite, sondern auf der Parentseite in einer Zusätzlichen Content Spalte
Backend:
- Page 1 (hier ist der Content)
- - SubPage 1
- - SubPage 2
- - SubPage 3
Ausgabe im Frontend:
- Page 1 (hier ist der Content)
- - SubPage 1
- - SubPage 2
- - SubPage 3
- - Content
Gemacht habe ich das wie folgt:
1. Erweitern der Seiten um eine Zusätzliche Contentspalte
Standartmäsig gibt es Typo3 4 Spalten für Content, -> Links,Normal,Rechts und Rand
Denen habe ich eine 5 Spalte angehängt. Ich hab die 'Menü Content' genannt aber das is wurst wie die heist.
Dazu folgendes in die Datei typo3conf/extTables.php eintragen
t3lib_extMgm::addPageTSConfig('
mod.SHARED.colPos_list = 1,0,2,3,4
');
$TCA['tt_content']['columns']['colPos']['config']['items'] = array (
'1' => array ('Links||Links||||||||','1'),
'0' => array ('Normal||Normal||||||||','0'),
'2' => array ('Rechts||Rechts||||||||','2'),
'3' => array ('Rand||Rand||||||||','3'),
'4' => array ('Menü Content||Menü Content||||||||','4'),
);
und folgendes ind die Datei typo3conf/localconf.php
$typo_db_extTableDef_script = 'extTables.php';
damit ist die 5. Reihe im Backend zu sehen und kann nach lust und laune mit content zugemüllt werden.
2. Zugriff auf die zusätzliche Spalte
MeinIrgendwas < styles.content.get
MeinIrgendwas.select.where = colPos=4
3. Dem Menü zu verstehen gebe das es den Contetn verwenden soll
Um dem conten im Menü zu gesicht zu bekommen ist eine wenig Typoscript notwendig.
Erstmal das Menü ohne Content
content.Hauptmenue = COA
content.Hauptmenue {
wrap = |
10 = HMENU
10 {
entryLevel = 2
special = directory
special.value = 1
protectLVar = 1
1 = TMENU
1 {
expAll = 1
noBlur = 1
wrap = <ul>|</ul>
NO = 1
NO {
wrapItemAndSub = <li>|</li>
}
}
}
}
und noch das mit dem Zusätzliche Content
content.Hauptmenue = COA
content.Hauptmenue {
wrap = |
10 = HMENU
10 {
entryLevel = 2
special = directory
special.value = 1
protectLVar = 1
1 = TMENU
1 {
expAll = 1
noBlur = 1
wrap = <ul>|</ul>
NO = 1
NO {
wrapItemAndSub = <li>|</li>
wrapItemAndSub.append = COA
wrapItemAndSub.append {
wrap = <li>|</li>
if {
value.data = field:uid
equals.cObject = COA
equals.cObject{
wrap = |
10 = CONTENT
10 {
wrap = |
table = pages
select {
pidInList.data = field:pid
orderBy = sorting DESC
max = 1
selectFields = uid
}
renderObj = TEXT
renderObj.field = uid
renderObj.wrap = |
}
}
}
}
10 = CONTENT
10 < styles.content.get
10.select.pidInList.dataWrap = {field:pid}
10.select.where = colPos=4
}
}
}
}
hierbei wird der Content mithilfe der stdWrap funktionen an das Menü geheftet.
in der IF Abfrage wird überprüft ob es sich bei der Aktuell geparsten Seite um die Letzte im Aktuellen Seitenbaum handelt, und wenn das Zutrifft, dann gibt das COA den Content aus der 4. Spalte der Parentseite aus.
Mit orderBy = sorting DESC und max = 1 gibt die Datenbank abfrage nur die Letzte Seite im Tree zurück.
Die IF ABfrage schlägt fehl wenn die Aktuelle Seite im Menü nicht exakt die Letzte Seite der Aktuellen PageTree- Ebene ist.
soviel zu meiner Lösung. es gibt vielleicht bessere / schönere wege und lösungen.. aber es funktioniert ^^ und villeicht kann man damit ja noch jemandem helfen.
Gruß Hamsta