Navigation

 ·   Wiki Home
 ·   Wiki Hilfe (englisch)
 ·   Kategorien
 ·   Titel-Liste
 ·   Zufalls-Seite
 ·   Datei hochladen
 ·   Hochgeladene Dateien
 ·   Letzte Änderungen
 ·   RSS
 ·   Atom

Aktive Mitglieder:

Suchen:

 

Seite erstellen oder finden:

 

Ansehen Links in Extensions

In Extensions sollten Links generell nicht hart codiert sondern immer mit den Typo3-Funktionen erstellt werden. Der Grund ist einfach: Werden die Links in PHP direkt kofiert, so greifen die Typolink-Funktionen nicht, ausserdem können zusätzliche Parameter nicht durchgeschleift werden. Es gibt eine große Auswahl an Typo3-Funktionen für die Erstellung von Links:

Einfacher Link auf eine interne Seite:

tslib_pibase.pi_getPageLink    (
     
$id,
     
$target = '',
     
$urlParameters = array()
);

$test = $this->pi_getPageLink (11,'',($this->prefixId=>array('name'=>'wert')) );
// index.php?id=11&tx_extension_pi1[name]=wert

Parameter

  • integer: PID der Seite auf die der Link verweisen soll
  • string: HTML-Target
  • array: weitere Parameter, als Array: array(‘page’=>5,’irgendwas’=>‘7’)

Man bekommt eine URL zurück. Um den gesamten Link-Text incl. HTML zu erhalten, kann folgende Funktion verwendet werden:

tslib_pibase.pi_linkToPage    (
     
$str,
     
$id,
     
$target = '',
     
$urlParameters = array()
);

Die Parameter sind wie oben, allerdings kommt noch ein String hinzu für den Inhalt, der mit dem Link umgeben werden soll. Rückgabewert ist das komplette HTML für den Link.

Link auf die aktuelle Seite mit Cache-Einstellungen und zus. Parametern

tslib_pibase.pi_linkTP    (
     
$str,
     
$urlParameters = array(),
     
$cache = 0,
     
$altPageId = 0
);

Parameter

  • string: Der Linktext
  • array: Array mit zusätzlichen URL-Parametern. Diese Parameter werden in Liste der Parameter in der TypoScript-Property “parent.addParams” und $this->pi_moreParams aufgenommen. Bedeutet, dass sie den $this->prefixId String benötigen.
  • boolean: Mit 1 wird die aufgerufene Seite gecacht (durch Anhängen eines &cHash-Wertes, vorausgesetzt es handelt sich um ein USER_INT). Mit 0 wird ein no_cache-Parameter an den Link angehängt.
  • integer: PID der Zielseite; wenn das nicht angegeben wird, in das Ziel die aktuelle Seite.

Diese Schreibweise kann also auch für Links auf andere Seiten verwendet werden. Da per Voreinstellung auf die aktuelle Seite verlinkt wird, fehlt auch das target. Rückgabewert ist der komplette Link incl. HTML.

Link zur aktuellen Seite, der akt. gesetzte piVars erhält bzw. überschreibt

tslib_pibase.pi_linkTP_keepPIvars (
     
$str,
     
$overrulePIvars = array(),
     
$cache = 0,
     
$clearAnyway = 0,
     
$altPageId = 0 );

Parameter

  • string: der Linktext
  • array: Array zum Überschreiben (und Ergänzen) der aktuellen piVars. Die Variablen werden automatisch dem piVars-Array hinzugefügt; im Gegensatz zu pi_linkTP sollten die Schlüssel also nicht um $this->prefixId erweitert werden, das parriert automatisch. Werte, die sich in diesem Array befinden, überschreiben vorhandene Einträge in piVars. Wenn der Wert eines Schlüssels leer ist (leerer String), dann wird dieser Wert aus dem piVArs-Array entfernt.
  • boolean: Mit 1 wird die aufgerufene Seite gecacht (durch Anhängen eines &cHash-Wertes, vorausgesetzt es handelt sich um ein USER_INT). Mit 0 wird ein no_cache-Parameter an den Link angehängt.
  • boolean: Wenn dieser Wert gesetzt wird, so bleibt der Inhalt der piVars nicht erhalten. Praktisch, um piVars zu definieren, ohne auf den prefix zu achten. Insbesondere beim Action-Link von Formularen sinnvoll, sonst bleiben bei wiederholten Formularaufrufen einmal gesetzte Werte von Checkboxen oder Radioboxen erhalten.
  • integer: PID der Zielseite; wenn das nicht angegeben wird, in das Ziel die aktuelle Seite.

Rückgabewert ist der gesamte Link mit den Tags. Um nur die URL zu erhalten, folgende Funktion verwenden:

tslib_pibase.pi_linkTP_keepPIvars_url    (
     
$overrulePIvars = array(),
     
$cache = 0,
     
$clearAnyway = 0,
     
$altPageId = 0
);

Grundlage: der Typolink

Letzlich rufen die obigen Funktionen nach einigen Manipulationen die folgenden Funktionen auf:

tslib_cObj.typoLink    ( $linktxt, $conf ) ;
// oder
tslib_cObj.typoLink_URL    ( $conf );

Diese Funktion ermöglicht die Konfiguration und Erweiterung der Links über die Typolink-Optionen von TypoScript. Sie sollte nie übergangen werden.

Weiterführende Links

Category:Typo3 -> Extensions -> Programmierung

Kategorien: