TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

typolink in Extension


Autor Nachricht
Verfasst am: 08. 03. 2012 [20:45]
Philipp88
Themenersteller
Dabei seit: 09.02.2012
Beiträge: 118
Hallo,

in meiner Extension hab ich per typolink folgenden Link zusammengestellt:

PHP
$url = t3lib_div::locationHeaderUrl() . $this->pi_linkTP_keepPIvars_url();
         $title = $record['ueberschrift'];
 
         $link = array("parameter" => 39, "additionalParams" => "&tx_powermail_pi1[uid25]=$title&&tx_powermail_pi1[uid26]=$url&" . $this->prefixId.'[cat]' . "&wohnung&quot<img src="typo3conf/ext/mm_forum//res/smilies/icon_wink.gif" alt="icon_wink.gif" />;


Doch meine $url wird nicht richtig dargestellt, und habe deshalb Probleme die aktuelle URL in mein HIDDEN- Feld einzutragen icon_frown.gif
Die URL sieht so aus (schon beim verlinken!)
HTML
a href="index.php?id=39&tx_powermail_pi1%5Buid25%5D=G%C3%BCnstig%20Wohnen&tx_powermail_pi1%5Buid26%5D=http%3A%2F%2Flocalhost%2Ft3%2Findex.php%3Fid%3D33&no_cache=1&tx_imokat_pi1%5Blay%5D=1&tx_imokat_pi1%5Bitem%5D=1&tx_imokat_pi1%5Bcat%5D=&wohnung=">[/


Wie bekomme ich die Sonderzeichen wieder wie "[", "]", "http://" und "&" in der URL hin?


Gruß,
Philipp88
Profil
Verfasst am: 12. 03. 2012 [13:21]
vince
Dabei seit: 29.10.2010
Beiträge: 123
hallo,

das mit $url = usw. brauchst du eigentlich nicht,

das hier sollte reichen:
PHP
$new_pivars = array();//hier neue Parameter setzen ( "name" => "wert", "name2" => "wert2" )
 
$link = $this->pi_linkTP_keepPIvars_url($new_pivars);


kleine Blick in die API:
http://doc-typo3.ameos.com/4.1.0/classtslib__pibase.html#b565c0ba88672ba3f2728592d0888d98

sehe ich das richtig, dass du ein Bild verlinken willst? dann benutze lieber die Methode pi_linkTP_keepPIvars

wenn du den Pfad von dem Bild als get-parameter übergeben willst, solltest du url_encode verwenden

Gruß,
vince
Profil
Verfasst am: 12. 03. 2012 [13:55]
Philipp88
Themenersteller
Dabei seit: 09.02.2012
Beiträge: 118
Nein ich möchte von meiner Extension eine anderen Seite (Zum Kontaktformular) verlinkt werden. Desalb auch $url wo er den Kontaktformular miteilt von welcher Seite das Formular aufgerufen wurde und in einem hidden- Feld eingetragen wird (hier Powermail).

urlenencode hat ich schon vor $url probiert, sah immer noch so ausicon_frown.gif

[Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 12.03.2012 um 14:03.]
Profil
Verfasst am: 12. 03. 2012 [14:07]
vince
Dabei seit: 29.10.2010
Beiträge: 123

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

hat noch ein paar weitere Parameter (API!): $altPageID gibt die Zielseite an (der default wert ist die aktuelle Seite)
clearAnyway = 0 bedeutet, dass die piVars beibehalten werden
cache = 0 bedeutet, dass no_cache=1 dranngehängt wird

powermail-parameter (z.B. tx_powermail[irgendwas]) wird hier nicht gehen, daher musst du diese Parameter nachträglich hinzufügen.
z.B. könntest du sowas schreiben (sofern $link die url enthält): $link .= "&tx_powermail[name]=wert";


PS: um Zeichen wie "[", "]", "http://" und "&" usw. wieder hinzubekommen: url_decode($param)

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 12.03.2012 um 14:11.]
Profil