Ist es möglich per TS die rootline einer Seite x anzuzeigen, die nicht die aktive Seite ist?
Also das normale rootline-Menü kenn ich. Ich hab da schon versucht die Seite mit der Eigenschaft begin zu setzen, aber damit ging es nicht.
Also ich bin auf Seite 1 und möchte die Rootline von Seite 2 anzeigen.
Kann mir jemand helfen?
das geht nur mit einem anderen Menü, also special = directory. Das Ergebnis sollte aber gleich sein.
steffenk schrieb
das geht nur mit einem anderen Menü, also special = directory. Das Ergebnis sollte aber gleich sein.
Nein, da wird dann garnichts angezeigt. directory zeigt doch eigentlich die Unterseiten an (es sind keine vorhanden in diesem fall) und nicht die übergeordneten, oder nicht?
das stimmt, die Ausgangsseite wird nie mit angezeigt.
Rootline (sowie Sitemap) gehen aber nur von der root aus.
Dann musst Du Dir das zusammensetzen
10 = COA
# Ausgangsseite
10.10 = TEXT
10.10.value = ...
10.20 = HMENU
10.20.special = directory
usw
Das Problem dabei ist, dass ich das nicht "per Hand" bauen kann, da die Seite für die die rootline angezeigt werden soll variabel ist. Es handelt sich um die backPid von tt_news.
Es gibt z.B. folgende 3 Seiten:
PfadA/SeiteA/
PfadB/SeiteB/
Detailansicht
Die Seiten SeiteA und SeiteB enthalten jeweils News in einer Listenansicht und linken beide auf die Seite Detailansicht.
Diese soll dann nicht die eigene rootline im Breadcrumb-Menü anzeigen, sondern die Rootline der backPid + Artikelname.
Das mit dem Artikelnamen hab ich schon hinbekommen, aber die "fremde" rootline nicht.
schon mal über sowas nachgedacht?
10 = COA
# Ausgangsseite
10.10 = TEXT
10.10.dataWrap = DB:pages:{GPvar:tx_ttnews|backpid}:title
10.10.wrap3 = <p>PAGE {|}
10.10.insertData = 1
10.20 = HMENU
10.20.special = directory
10.20.special.value.data = GPvar:tx_ttnews|backpid
10.20.insertData = 1
usw
Ich versteh noch nicht ganz deinen Versuch immer wieder "directory" da einzubauen. Es geht ja NUR um die übergeordneten Seiten der Seite.
Also einer einer von uns beiden steht auf der Leitung 😃
warum nimmst Du nicht für jeden Pfad eine eigene Detailseite?
Weil es sehr viele Pfade sind, die auch von Redakteuren gepflegt werden sollen, die aber keine News-Plugins konfigurieren müssen sollen.
das könnte man mit Mountseiten lösen.
Also, ich zeig nochmal kurz wie das von der Struktur her sein soll.
PfadA/SeiteA
PfadB/SeiteB
Detailansicht
Redkateure können auch neue Seiten und Unterseiten anlegen, die ebenfalls auf die Detailansicht zeigen. Dazu kopieren sie nur ein News-List-Plugin von einer anderen Seite und ändern die Parameter für die Listendarstellung. Die Ziel-Detailseite bleibt immer gleich.
Wenn jeder Pfad eine eigene Detailansicht bekommen würde, hieße das viel mehr Arbeit für die Redakteure.
- Es muss zusätzlich eine neue Seite angelegt werden.
- Dort muss das News-Single-Plugin platziert und konfiguriert werden.
- Das List-Plugin muss auf das neue Single-Plugin verweisen.
Das möchte ich den Redakteuren nicht zumuten.
Deshalb noch einmal zu meinem eigentlichen Problem:
Ich möchte die Rootline einer anderen Seite auf der aktuellen anzeigen lassen, wobei die andere Seite tx_ttnews[backPid] ist.
Meine Überlegung ist, man müsste ja nur folgendes machen:
Lies die übergeordnete Seite von backPid aus (Tabellenfeld pid).
Lies von dieser Seite die übergeordnete Seite aus.
Lies von dieser Seite die übergeordnete Seite aus.
usw.
Versteckte Seiten, Sysfolder, "Nicht im Menü", usw muss nicht beachtet werden!
Ich frage mich ob man das besser per TS oder per PHP-Script löst.
Lösung:
special = userdefined
special.file = fileadmin/scripts/simulateRootline.php
simulateRootline.php
<?php
$end = FALSE;
$news = t3lib_div::GPvar('tx_ttnews');
$actPage = $news['backPid'];
$sql = "SELECT * FROM pages WHERE uid = '".$actPage."'";
$res_id = mysql_query($sql);
$tmp[] = mysql_fetch_assoc($res_id);
while($end == FALSE){
$sql = "SELECT pid FROM pages WHERE uid = '".$actPage."'";
$res_id = mysql_query($sql);
$pid = mysql_fetch_assoc($res_id);
if($pid['pid']){
$sql = "SELECT * FROM pages WHERE uid = '".$pid['pid']."'";
$res_id = mysql_query($sql);
$tmp[] = mysql_fetch_assoc($res_id);
$actPage = $pid['pid'];
}else{
$end = TRUE;
}
}
$menuItemsArray = array_reverse($tmp);
array_shift($menuItemsArray);
?>
Danke für deine Hilfe, steffen