[TYPO3-german] Formhandler Problem mit insertIfNoUpdatePossible
Reinhard Führicht
fuehricht at gmx.at
Fri Jun 7 10:24:09 CEST 2013
Hallo Susanne,
ich fürchte der Patch hatte einen Bug. :-)
Es fehlt die Übergabe von $andWhere and die Methode "doesRecordExist".
Bitte versuch mal diese Änderungen in der Methode "init"
Index: Classes/Finisher/Tx_Formhandler_Finisher_DB.php
===================================================================
--- Classes/Finisher/Tx_Formhandler_Finisher_DB.php (revision 76269)
+++ Classes/Finisher/Tx_Formhandler_Finisher_DB.php (working copy)
@@ -270,7 +270,8 @@
//check if uid of record to update is in GP
$uid = $this->getUpdateUid();
- $recordExists = $this->doesRecordExist($uid);
+ $andWhere = $this->utilityFuncs->getSingle($this->settings, 'andWhere');
+ $recordExists = $this->doesRecordExist($uid, $andWhere);
if ($recordExists) {
$this->doUpdate = TRUE;
} elseif(intval($this->utilityFuncs->getSingle($this->settings,
'insertIfNoUpdatePossible')) !== 1) {
Viele Grüße,
Reinhard
Am 06.06.2013 23:49, schrieb Susanne:
> Hallo Reinhard,
>
> vielen Dank für den Tip, ich habe ihn sofort ausprobiert. Leider ohne
> Erfolg, es gibt immer noch den gleichen Effekt wie ich unter "Fall 3"
> beschrieben habe.
> debug=1 zeigt mir, dass nach wie vor ein UPDATE versucht wird.
>
> Als würde andWhere immer noch nicht berücksichtigt bei der Abfrage, ob
> der Datensatz existiert.
> Seitencache- und Konfigurationscache habe ich geleert. Oder gibt es noch
> irgendwelche temp-, cache- oder ähnliche Dateien die ich löschen muss?
>
> Hast du vielleicht noch eine Idee, woran der Fehler liegen könnte?
>
> Vielen Dank auf jeden Fall schonmal für deine Hilfe und auf diesem Wege
> auch für die tolle Extension!
>
> Gruß
> Susanne
>
>
> Am 06.06.2013 09:45, schrieb Reinhard Führicht:
>> Hallo Susanne
>>
>> Am 05.06.2013 23:36, schrieb Susanne:
>>> Hallo,
>>>
>>> ich habe folgendes Problem:
>>> Mit Hilfe von Formhandler werden neue Einträge in die Tabelle Pages
>>> geschrieben, in verschiedene pid?s.
>>> Entscheidend ist der title der neuen Seite, daher habe ich key = title
>>> gesetzt und generiere key_value dynamisch aus der Eingabe im Formular.
>>> Innerhalb jeder pid darf der Seitentitle nur einmal vorkommen. Ist er
>>> schon vorhanden, soll der bestehende Eintrag nur überschrieben werden
>>> und ein neues cr_date erhalten.
>>> Die pid, in der der aktuelle Eintrag geschrieben werden soll, wird
>>> ebenfalls dynamisch generiert und ist sowohl als andWhere-Bedingung als
>>> auch im pid.mapping angegeben.
>>>
>>> Ich nutze den Finisher_DB mit einer Kombination aus
>>> .updateInsteadOfInsert = 1 und insertIfNoUpdatePossible = 1
>>>
>>> * Fall1: Eine Seite mit dem gewählten Title existiert schon in der
>>> entsprechenden PID: Das Update wird Problemlos ausgeführt
>>> * Fall2: Eine Seite mit dem gewählten Title existiert im kompletten
>>> Seitenbaum noch nicht: Insert wird innerhalb der entsprechenden PID
>>> richtig ausgeführt, alles funktioniert wie es soll
>>> * Fall3: Eine Seite mit dem gewählten Title existiert bereits im
>>> Seitenbaum, aber nicht in der in der andWhere-bedingung vorgegebenen
>>> PID. Dies führt zu folgendem Fehler:
>>> Formhandler führt hier ein UPDATE statt einem INSERT aus. Ein Update
>>> ist aber nicht möglich, da die Seite in der pid aus der
>>> andWhere-Bedingung nicht vorkommt. Die Folge: Die Seite wird nicht
>>> geschrieben.
>>>
>>> Ich habe schon versucht, disableUpdateUidFallback = 1 zu setzen. Leider
>>> ohne Erfolg.
>>>
>>> Hat jemand eine Idee, wie ich dieses Problem lösen kann?
>>>
>>> Schon einmal vielen Dank!
>>>
>>> Gruß
>>> Susanne
>>>
>>>
>>
>> Kann es sein, dass es an diesem Bug liegt? [1]
>>
>> Bis zur Version 1.6.0 hängt Finisher_DB das andWhere nicht an die
>> Abfrage ob der Datensatz bereits existiert.
>>
>> Der Patch hier [2] sollte das beheben.
>>
>> Viele Grüße,
>> Reinhard
>>
>> [1] http://forge.typo3.org/issues/46502
>> [2]
>> http://forge.typo3.org/projects/extension-formhandler/repository/revisions/75391/diff/trunk/Classes/Finisher/Tx_Formhandler_Finisher_DB.php
>>
>>
>
--
--------------------------------
http://www.typo3-formhandler.com
--------------------------------
More information about the TYPO3-german
mailing list