Zum Inhalt springen

Zusammensetzung der TS Syntax

Erstellt am 26. Januar 2010 · 5 Antworten · letzte Antwort am 16. Februar 2010

Tags: Links, PHP, Frage

cored ·

Hallo zusammen,

ich nutze die Extension LinkClickCounter und will den TS etwas modifizieren, um auch eine eigene Extension zu erfassen.

Der TS Code der Extension lautete bisher

plugin.tt_news.general_stdWrap.parseFunc.tags.link.typolink.userFunc=user_linkmanipulation->prependLink
tt_content.image.20.1.imageLinkWrap.typolink.userFunc=user_linkmanipulation->prependLink

Jetzt wollte ich das ganze um meinenen eigenen Code erweitern und schrieb folgendes dazu:

plugin.tx_phfewo_items.website.typolink.userFunc=user_linkmanipulation->prependLink

Leider funktioniert das nicht.
Kann mir jemand sagen, wo der Fehler liegt?
Die Tabelle meine Extension heisst: tx_phfewo_items
Dort gibt es das Feld: website

Ausgegeben wird der Wert in meiner Extension durch die Datei class.tx_phfewo_pi1.php
Mit dieser Zeile:

$markerArray['###WEBSITE###']=$this->cObj->typolink($record['website'],array('parameter' => $record['website'],'extTarget' => '_blank',));

Kann mir jemand die Zusammensetzung der TS Syntax erläutern?

Danke schonmal im vorraus.

Cored

Julian.​Hofmann ·

Hallo Cored.

Du definierst zwar TS für Deine Extension, bei der Linkgenerierung taucht das TS aber nirgends auf. Die in TS definierte userFunc müsste mit in das Array, das als zweites Argument an typolink() übergeben wird.

Viele Grüße
Julian

cored ·

Vielen Dank schonmal für den Denkanstoß.

Aber mal andersherum gefragt:
Wie müsste ich denn das Typoscript ändern, um den Link zu erreichen, wie momentan in der Extension generiert wird.

Danke noch mal

Gruß Cored

Julian.​Hofmann ·

TS ist ansich mal "nur" ein assoziatives, multidimensionales Array, in dem Werte liegen. Das TS für Deine userFunc liegt dabei in

array('plugin.' => array(
  'tx_phfewo_items.' => array(
    'website.' => array(
      'typolink.' => array(
        'userFunc' => 'user_linkmanipulation->prependLink'
      )
    )
  )
);

TYPO3 liefert Dir in die main-Methode Deines Plugins als zweiten Parameter ($conf) den zu Deinem Plugin relevanten Ausschnitt des TS (also das Array mit dem Key 'tx_phfewo_items.').

Die typolink()-Funktion erwartet als zweiten Parameter die "TypoScript configuration". Welche Keys ind er Konfiguration zur Verfügung stehen, beschreibt die TSref genauer: https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Typolink.html

Und somit kommst Du dann zu (vorausgesetzt, Du hast wie üblich in der main()-Methode $conf in die Klassenvariable $this->conf geschrieben):

$markerArray['###WEBSITE###']=$this->cObj->typolink(
  $record['website'],
  array(
    'userFunc' => $this->conf['website.']['typolink.']['userFunc'],
    'parameter' => $record['website'],
    'extTarget' => '_blank',
  )
);
rolib ·

Hallo cored,

wollte die Extension ebenso einsetzen, bringe diese jedoch nicht zum Laufen, hättest du einen Tipp für mich? (Typo3 4.3.0) Danke.