Bei der Programmierung mit Frontenderweiterungen greift man nach Möglichkeit auf die Methoden der Klasse tslib_pibase zurück, da die eigene Extension eine Erweiterung der selbigen darstellt.
Dennoch findet man viel Unverständnis oder Halbweisheiten über diese Klasse, deswegen und als "Spickzettel" führe ich meine Erfahrungen damit auf.
Frontenderweiterungen werden am schnellsten und sichersten mit dem Kickstarter angelegt. Dabei wird eine Hauptklasse für jedes Frontendmodul angelegt:
class tx_[EXTENSIONKEY]_pi[MODULNUMMER] extends tslib_pibase { ...
Die Fragmente der Klassennamen haben folgende Bedeutung:
Innerhalb der Erweiterung kann man zwar beliebige Variablen definieren, allerdings empfiehlt sich, alle Variablen, die zur Unterscheidung der Erweiterung beitragen mit $this->prefixId."[VARIABLENBEZEICHNUNG]" zu beginnen.
Dies ist relevant, wenn Parameter per Formularen, über Links, Sessions, etc. übergeben werden. Ansonsten kann es zu Fehlern kommen, wenn zwei verschiedene Frontenderweiterungen auf der gleichen Seite auf verschiedene Objekte gleichen Namens zugreifen wollen.
Bei JavaScripts ist das leider häufiger der Fall, da die Namenskonvention hier leider oft nicht eingehalten wird - insbesondere auch dadurch, daß komplette JavaScript-Bibliotheken einfach eingebunden werden (z.B. Mootols).
this->piVars stellt einen Array aus den Variablen dar, die durch alle Get- und Post-Variablen zur Erweiterung an die Seite übertragen werden.
Dabei kann die Klasse durch die Variablen-Präfix $this->prefixId bei der Zuordnung erkennen, welche Erweiterung jeweils durch möglicherweise mehrere Parameter angesprochen wird.
$this->prefixId wird am Beginn jeden Frontendmoduls festgelegt und hat den gleichen Namen wie die Klasse. Die Details dazu sind im vorhergehenden Abschnitt erklärt. Somit sieht eine URL mit Parametern einer fiktiven Klasse mit dem Extension-Key "foo" folgendermaßen aus:
index.php?tx_foo_pi1[parameter1]=wert1&tx_foo_pi1[parameter1]=wert2