Zusammensetzung der TS Syntax [Gelöst]

  • cored cored
    R2-D2
    0 x
    93 Beiträge
    0 Hilfreiche Beiträge
    26. 01. 2010, 13:27

    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

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

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

    [TS]plugin.tx_phfewo_items.website.typolink.userFunc=user_linkmanipulation->prependLink[/TS]

    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:

    1. $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


  • 1
  • 0 x
    3252 Beiträge
    152 Hilfreiche Beiträge
    26. 01. 2010, 17:23

    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 cored
    R2-D2
    0 x
    93 Beiträge
    0 Hilfreiche Beiträge
    27. 01. 2010, 10:55

    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

  • 0 x
    3252 Beiträge
    152 Hilfreiche Beiträge
    27. 01. 2010, 11:26

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

    1. array('plugin.' => array(
    2. 'tx_phfewo_items.' => array(
    3. 'website.' => array(
    4. 'typolink.' => array(
    5. 'userFunc' => 'user_linkmanipulation->prependLink'
    6. )
    7. )
    8. )
    9. );

    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: http://www.typo3.net/tsref/functions/typolink/

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

    1. $markerArray['###WEBSITE###']=$this->cObj->typolink(
    2. $record['website'],
    3. 'userFunc' => $this->conf['website.']['typolink.']['userFunc'],
    4. 'parameter' => $record['website'],
    5. 'extTarget' => '_blank',
    6. )
    7. );

  • cored cored
    R2-D2
    0 x
    93 Beiträge
    0 Hilfreiche Beiträge
    27. 01. 2010, 14:11

    Vielen Dank für die Unterstützung.

    Jetzt funktioniert es.

  • rolib rolib
    R2-D2
    0 x
    102 Beiträge
    0 Hilfreiche Beiträge
    16. 02. 2010, 20:43

    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.

  • 1