Hallo,
ich werde aus der Dokumentation nicht ganz schlau, wo bzw. ob ich überhaupt einen Eventhandler wie zB onclick mit der Funktion getTypoLink erhalten kann. Im Idealfall möchte ich diese Funktion auch weiterhin verwenden, da sie in einer Extension verwendet wird die ich gerade umschreiben möchte. Genauer gesagt ist es die Extension macina_banners 1.5.0 in pi1/class.tx_macinabanners_pi1.php Zeile 337 die diesen Eventhandler erhalten soll:
$wrappedSubpartArray['###bannerlink###'] = t3lib_div::trimExplode("|", $this->cObj->getTypoLink("|", $GLOBALS['TSFE']->id . " " . $linkArray[1] , array( "no_cache" => 1 , $this->prefixId . "[banneruid]" => $row['uid'] ) ) );
Falls sich das aber nur mit einer anderen Funktion lösen lässt, würde mich interessieren mit Welcher.
Ok, da so lange niemand geantwortet hat, hab das Ganze evtl falsch ausgedrückt. Hier nun hoffentlich etwas verständlicher. Denkt euch den Code den ich im ersten Post geschrieben habe mal weg.
Da es im Templatesetup die Möglichkeit gibt per typolink.ATagParams weitere Linkeigenschaften zu übergeben, muss es sowas doch auch in einer Typo3 Funktion für die Extensionprogrammierung geben.
In der Dokumentation gibt es zB bei getTypolink folgende Parameter:
<?
function getTypoLink($label,$params,$urlParameters=array(),$target='');
?>
Allerdings akzeptiert $params nur 3 Parameter die zu den Werten von target, title und class werden.
Ich habe nun schon diverse Dokumentationen gelesen und verschiedene Suchen bewegt, aber ich bin nirgends fündig geworden.
Wo kann ich entweder einen Parameter für zB onclick übergeben, oder mir den String selbst zusammenbauen und dann anhängen? Oder weiß jemand eine andere Typolinkfunktion mit der soetwas möglich ist (kann ja sein dass ich zu blind war ^^).
versuchs mal so:
$aparams=$GLOBALS['TSFE']->ATagParams;
$GLOBALS['TSFE']->ATagParams='onclick="alert(\'hallo\');"';
#jetzt der link
$GLOBALS['TSFE']->ATagParams=$aparams;
Eine Frage habe ich ja: wo wird den bei getTypoLink der Linktext eingeben???
$this->cObj->getTypoLink("|", ... ist ja kein Linktext! Oder liege ich da falsch? :o
Tetramatrix schrieb
$this->cObj->getTypoLink("|", ... ist ja kein Linktext! Oder liege ich da falsch? :o
"|" ist der linktext, der in der funktion als split-char genommen wird (trimExplode) um dann einen subpart zu erzeugen!
georg
Danke für die Antwort. Ich habe den Code eingefügt, allerdings kann Typo3 damit keinen richtigen mehr Link draus machen. Scheint als ob er einen String erwartet aber einen Array bekommt.
<?php
// changed
$aparams = $GLOBALS['TSFE']->ATagParams;
$GLOBALS['TSFE']->ATagParams = 'onclick="alert(\'hallo\');"';
// now the original link
$clickTAG = t3lib_div::getIndpEnv('TYPO3_SITE_URL') . $this->cObj->getTypoLink_URL( $GLOBALS['TSFE']->id, array( "no_cache" => 1 , $this->prefixId . "[banneruid]" => $this->internal['currentRow']['uid'] ) );
$GLOBALS['TSFE']->ATagParams=$aparams;
// changed end
?>
Das ist der Link der draus wird:
<a href="index.php?id=18" target="Array" >...</a>
stopp mal - getTypoLink_URL liefert doch nur eine Url und keine Linkparameter.
Wenn Du den $clickTag hast, dann mach es doch so:
$aparams = $GLOBALS['TSFE']->ATagParams;
$GLOBALS['TSFE']->ATagParams = 'onclick="'.$clickTag.'"';
$link = $this->pi_linkTP('Hallo');
$GLOBALS['TSFE']->ATagParams=$aparams;