[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • rex_form & preSave
Seite 1 von 1

rex_form & preSave

Verfasst: 23. Aug 2016, 12:11
von elsethos
Hallo,

ich wollte gern beim speichern eines Formulares ein Feld verschlüsselt abspeichern, was mit REDAXO 4.2.1 auch funktionierte. Mit Redaxo 5.2 scheitere ich.

im Formular:

Code: Alles auswählen

$form = rex_form::factory(rex::getTablePrefix().'xxxxxxxx',"xxxx","id=".$id,'post',$debug,'rex_form_extended');
eingebundene Klasse:

Code: Alles auswählen

class rex_form_extended {
	function preSave($fieldsetName, $fieldName, $fieldValue, &$saveSql)
	{
	   return sha1($fieldValue);
	}
}

Re: rex_form & preSave

Verfasst: 23. Aug 2016, 17:51
von Gregor.Harlan
Probier es mal so:
$form = rex_form_extended::factory(rex::getTablePrefix().'xxxxxxxx',"xxxx","id=".$id,'post',$debug);

Re: rex_form & preSave

Verfasst: 24. Aug 2016, 06:11
von elsethos
Hallo Gregor,

Danke für die Antwort. Dann erhalte ich aber folgende Fehlermeldung:

"Error" thrown in xxx/redaxo/src/addons/addonName/pages/index.php on line 58
Call to undefined method rex_form_extended::factory()

Folgendes habe ich bereits in der eingebundenen Klasse probiert:

Code: Alles auswählen

class rex_form_extended {
	function preSave($fieldsetName, $fieldName, $fieldValue, &$saveSql)
	{
	  die('FOO');
				
	   return parent::preSave($fieldsetName, $fieldName, sha1($fieldValue), $saveSql);
	}
}
der obige Code erzeugt jedoch keine Ausgabe.

Die Datei wird aber definitiv eingebunden, den setze ich nur:

Code: Alles auswählen

die('FOO');
wird eine Ausgabe generiert.

Es scheint, als greift die Klasse nicht auf die Funktion zu. Oder habe ich noch etwas anderes übersehen?

Re: rex_form & preSave

Verfasst: 24. Aug 2016, 08:56
von Thomas.Blum
Hej,

deine Klasse erbt nicht von der rex_form Klasse.

vg Thomas

Re: rex_form & preSave

Verfasst: 24. Aug 2016, 09:10
von elsethos
Hallo Thomas,

ich nehme an du meinst?

Code: Alles auswählen

class rex_form_extended extends rex_form{
	function preSave($fieldsetName, $fieldName, $fieldValue, &$saveSql)
	{
				
	   return parent::preSave($fieldsetName, $fieldName, sha1($fieldValue), $saveSql);
	}
}
Aber auch dies ändert nichts.

Re: rex_form & preSave

Verfasst: 24. Aug 2016, 11:07
von Gregor.Harlan
Das meint er, ja.
So dürfte der Fehler "Call to undefined method rex_form_extended::factory()" eigentlich nicht mehr kommen. Ist es denn der noch?

Re: rex_form & preSave

Verfasst: 24. Aug 2016, 12:11
von elsethos
hallo und danke, jetzt klappt es. Ihr seid die Besten! :D :D :D

Re: rex_form & preSave

Verfasst: 24. Aug 2016, 13:56
von Thomas.Blum
Hej,
jetzt klappt es
was hast du zusätzlich zu deinem Code vorhin geändert?

Code: Alles auswählen

class rex_form_extended extends rex_form{
   function preSave($fieldsetName, $fieldName, $fieldValue, &$saveSql)
   {
            
      return parent::preSave($fieldsetName, $fieldName, sha1($fieldValue), $saveSql);
   }
}
vg Thomas

Re: rex_form & preSave

Verfasst: 24. Aug 2016, 14:04
von elsethos
Ich hatte aus Versehen dies wieder eingebaut und nicht mitbekommen:

Code: Alles auswählen

$form = rex_form::factory(rex::getTablePrefix().'xxxxxxxx',"xxxx","id=".$id,'post',$debug,'rex_form_extended');
:wink: