[TYPO3-german] Formhandler: pid lässt sich nicht ändern

Reinhard Führicht rf at typoheads.at
Fri Apr 1 10:18:19 CEST 2011


Am 2011-04-01 01:07, schrieb Michael Oehlhof:
> Ich habe eine Seite mit einem Formular und rufe das Formular von
> verschiedenen Seiten aus auf.
> Die pid der "Startseite" reiche ich als post Variable an das Formular.
> In dem gespeicherten Datensatz wird sie auch abgelegt.
> Aber der Datensatz wird auf der Seite mit dem Formular angelegt und
> nicht auf der "Startseite" von der aus die Formularseite aufgerufen wird.
> In der Doku liest man:
> pid {
> mapping = TEXT
> mapping.data = TSFE:id
> }
> Wenn ich stattdessen:
> pid {
> mapping = TEXT
> mapping.data = GP:startpid
> }
> übergebe (startpid ist die per Post übergebene pid) wird trotzdem nicht
> unter dieser pid abgelegt.
> Auch die direkte Angabe von:
> pid = 123
> legt die Daten nicht auf der Seite 123 ab, sondern auf der Seite des
> Formulars.
> Auch mit
> pid.mapping = startpid
> ändert sich nichts.
>
> Hat jemand eine Idee wie man den Finisher_DB dazu bekommt den Datensatz
> nicht auf der Seite des Formulars abzulegen?
> Wie kann ich die pid vorgeben?
>
> Grüße
> Michael

Hallo Michael,


pid {
  mapping = TEXT
  mapping.data = GP:startpid
}

funktioniert nicht, weil Formhandler NUR auf interne GET/POST-Werte 
zugreift, also solche, die über das Formular übertragen wurden.
Du kannst die PID als hidden-Feld im Formular übertragen und dann mit 
GP:prefix|startpid darauf zugreifen oder einfach mit

pid.mapping = startpid

Um die PID ins hidden-Feld zu bekommen, brauchst du den 
PreProcessor_LoadDefaultValues.

pid = 123

Sollte eigentlich problemlos funktionieren, zumindest wenn ich mir den 
Code im Finisher_DB anschaue. Verwendest du die Version aus dem TER oder 
aus dem SVN?

Viele Grüße,
Reinhard


More information about the TYPO3-german mailing list