Zum Inhalt springen

Powermail: bestimmte pivars bei submit erhalten

Erstellt am 23. Juli 2009 · 3 Antworten · letzte Antwort am 8. Juni 2011

Tags: Powermail, Frage

Daviz ·

Hallo Alle,

ich stehe gerade vor dem Problem, das durch abschicken eines Powermailformulars alle Pivars in der URL verloren gehen.

Ich benutze die Extension "browser" und habe in der Single-Ansicht ein Powermailformular eingebunden. Die Single-Ansicht wird durch die Url-Parameter tx_browser_pi1[showUid] und cHash erreicht.

Nachdem ich ein Formluar abschicke, möchte ich in der Singleansicht bleiben. In dem Formular müsste also anstelle von

<form name="infomail" id="infomail" action="index.php?id=45&tx_powermail_pi1[mailID]=90&cHash=c4db0b30c4#c90" method="post" class="tx_powermail_pi1_form" enctype="multipart/form-data">

in etwa folgendes stehen

<form name="infomail" id="infomail" action="index.php?id=45&tx_powermail_pi1[mailID]=90&tx_browser_pi1[showUid]=5&cHash=02cbd7c94e" method="post" class="tx_powermail_pi1_form" enctype="multipart/form-data">

Lässt sich die Action-Url für das Formular per TS manipulieren?
Würden hier in dem Falle die beiden unterschiedlichen cHash konkurieren?

Viele Grüße,
David

einpraegsam.​net ·

Einfach das Ziel des Formulares (action) manuell im formWrap HTML Template von powermail setzen...

Da die UID der anderen Extension dynamisch ist, kann man diese über dynamischeTyposcriptMarker in powermail setzen

Daviz ·

Hallo Alex,

danke für deine Hilfe! Ich musste die zwei Sätze zwar mehrmals lesen, bis ich sie wirklich begriffen habe, dafür funktioniert die Lösung wunderbar.

So hab ich's gemacht

plugin.tx_powermail_pi1.dynamicTyposcript{
  bottom = IMAGE
  bottom.params = class = tx-powermail-pi1_bottom
  bottom.file = fileadmin/img/invest_img/bg-box-info-seite-form-bottom.png
  
  formpid = TEXT
  formpid.data = TSFE:id
  
  formshowuid = TEXT
  formshowuid.data = GPvar:tx_browser_pi1|showUid
  
  formchash = TEXT
  formchash.data = GPvar:cHash
}

Und im HTML-Template dann

<form name="###POWERMAIL_NAME###" id="###POWERMAIL_NAME###" action="index.php?id=###POWERMAIL_TYPOSCRIPT_FORMPID###&tx_powermail_pi1[mailID]=90&tx_browser_pi1[showUid]=###POWERMAIL_TYPOSCRIPT_FORMSHOWUID###&cHash=###POWERMAIL_TYPOSCRIPT_FORMCHASH###" method="###POWERMAIL_METHOD###" class="tx_powermail_pi1_form" enctype="multipart/form-data">

Viele Grüße,
David

dabjoern ·

Hi Leute,

genau das gleiche Problem mit dem browser und powermail hatte ich auch. Sofort bin ich auf Daviz Lösung gestoßen und konnte sie weiter verbessern. Im Template habe ich den action Marker ausgetauscht (###POWERMAIL_TYPOSCRIPT_ACTION###). Mein TS sieht so aus:

plugin.tx_powermail_pi1 {
  dynamicTyposcript{
    action = TEXT
    action {
      typolink {
        parameter.data = TSFE:id
        returnLast = url
        useCacheHash = 1
        additionalParams.append = COA
        additionalParams.append {
          10 = TEXT
          10 {
            data = GPvar:tx_browser_pi1|showUid
            wrap = &tx_browser_pi1[showUid]=|
          }
          20 = TEXT
          20 {
            field = uid
            wrap = &tx_powermail_pi1[mailID]=|
          }
        }
      }
    }
  }
}

Durch das TS entsteht ein absolut dynamisches Action Attribut. Besonders wenn man mehrere powermail Formulare hat, muss man nicht mehrere Templates nutzen.

Grüße, dabjoern