Zum Inhalt springen

typolink in Extension

Erstellt am 8. MĂ€rz 2012 · 3 Antworten · letzte Antwort am 12. MĂ€rz 2012

Tags: Links, PHP, Frage

Philipp88 ·

Hallo,

in meiner Extension hab ich per typolink folgenden Link zusammengestellt:

$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");

Doch meine $url wird nicht richtig dargestellt, und habe deshalb Probleme die aktuelle URL in mein HIDDEN- Feld einzutragen 🙁
Die URL sieht so aus (schon beim verlinken!)

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

vince ·

hallo,

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

das hier sollte reichen:

$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

Philipp88 ·

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 aus🙁

vince ·

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)