[TYPO3-german] Navigation im Produktkatalog

David Bruchmann david at bruchmann-web.de
Thu Sep 2 11:43:24 CEST 2010


  Am 31.08.2010 19:41, schrieb JR:
> Hallo David,
>
> vielen Dank für deine schnelle Antwort. Meine Produkte und meine Kategorien
> befinden sich in einem einzigen Sysfolder.
>
> * Produkte
> ** Kategorie 1
> *** Unterseiten
> ** Kategorie 2
> *** Unterseiten
> ** Kategorie 3
> *** Unterseiten
> * Produktkatalog (Sysfolder - Dieser enthält alle Produkte und Kategorien -
> die Kategorien sind bereits mit den entsprechenden Seiten verlinkt)
> * ProductDetail (Hier wird ein einzelnes Produkt angezeigt)
>
> Wird das Produkt angezeigt - Seite ProductDetail - verliert mein Menü und
> meine Brotkrumennavigation den richten Pfad zu der jeweiligen Kategorie,
> weil die Seite ProduktDetail außerhalb des Baumes ist. Ich benötige also
> eine "Anweisung" mit der ich Typo3 mitteilen kann, dass sich der Benutzer
> eigentlich auf einer anderen Seite befindet. Welche das ist, steht im
> Datensatz meiner Kategorien. Ich benötige eine Anweisung wie
> setzeVerweiseAufPage(pid), damit mein Menü ordnungsgemäß funktioniert.
>
>
> Viele Grüße und vielen Dank
> Jan


Hallo Jan,

Deine Erweiterung ist sicher eine Erweiterung der Klasse pi_base (Class 
tx_xyz_pi1 extends tslib_pibase).
Demnach hast Du Zugriff auf die Funktion pi_getPidList($pid_list, 
$recursive = 0).

Ich habe das mehr oder weniger so implementiert:

$conf['pidList'] = $this->cObj->data['pages'];
$conf['recursive'] = $this->cObj->data['recursive'];

$this->pidList = 
$this->pi_getPidList($this->conf['pidList'],$this->conf['recursive']);

Entgegen Deiner Frage bekommst Du damit nicht unbedingt eine einzelne 
PID sondern eine Liste (2,3,4)
Das ist davon abhängig, wie die Einstellungen im Plugin gemacht wurden 
und der Trick dabei ist, daß Du auch mehrere Sysfolder verwenden kannst, 
um die Daten zu speichern - diese können verschachtelt sein, dann wird 
das bereits durch $this->cObj->data['recursive'] abgefangen und es muss 
nur deer Hauptordner angegeben werden. Unter $this->cObj->data['pages'] 
kannst Du aber auch mehrere Ordner angeben und die werden mit in die 
PID-Liste aufgenommen.

$this->pidList kannst Du dann verwenden um Deine SQL-Anweisungen zu 
konstruieren:

... WHERE pid IN ($this->pidList) ...

Gruß,
David


More information about the TYPO3-german mailing list