typolink in Extension [Gelöst]

  • Philipp88 Philipp88
    Jedi-Ritter
    0 x
    147 Beiträge
    0 Hilfreiche Beiträge
    08. 03. 2012, 20:45

    Hallo,

    in meiner Extension hab ich per typolink folgenden Link zusammengestellt:

    1. $url = t3lib_div::locationHeaderUrl() . $this->pi_linkTP_keepPIvars_url();
    2. $title = $record['ueberschrift'];
    3.  
    4. $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!)

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


  • 1
  • vince vince
    Sternenflotten-Admiral
    0 x
    171 Beiträge
    5 Hilfreiche Beiträge
    12. 03. 2012, 13:21

    hallo,

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

    das hier sollte reichen:

    1. $new_pivars = array();//hier neue Parameter setzen ( "name" => "wert", "name2" => "wert2" )
    2.  
    3. $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 Philipp88
    Jedi-Ritter
    0 x
    147 Beiträge
    0 Hilfreiche Beiträge
    12. 03. 2012, 13:55

    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 vince
    Sternenflotten-Admiral
    0 x
    171 Beiträge
    5 Hilfreiche Beiträge
    12. 03. 2012, 14:07

    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)

  • 1