rex_form-Element entfernen?
Verfasst: 22. Mai 2017, 10:30
Hallo Leute,
ich stehe mal wieder auf dem Schlauch und denke diese Frage ist im Forum besser aufgehoben als im Slack-Channel...
Ich habe ein eigenes AddOn gebaut und nutze dafür u.a. eine extended rex_form-Klasse um rex_form-Elemente zu manipulieren:
Damit erreiche ich eine Manipulation der Eingabe-Variable und kann dann den Timestamp besser verarbeiten.
Wie muss ich die Klasse aber ausgestalten, wenn ich ein rex_form-Objekt nicht manipulieren, sondern komplett entfernen möchte?
Was habe ich vor:
Ich habe eine Checkbox in der AddOn-Eingabe, die den Zeitstempel aktualisieren soll. Das Checkbox-Feld gibt es aber nicht in der Datenbank, was zu "Fehler beim Speichern." führt... Ich brauche die Checkbox ja auch nur zur Steuerung und dachte ich kann das in etwas so umsetzen:
Ich habe nun zwei elementare Probleme:
1) Wie kann ich den $fieldValue von "TSTAMP" ändern, wenn sich die Schleife aber gerade im Objekt "CHECKBOX" befindet?
2) Wie kann ich das gesamte rex_form-Element "CHECKBOX" entfernen, sodass es NICHT in der Datenbank gespeichert wird?
Kann mir da jemand evtl. auf die Sprünge helfen?
Vielen Dank und eine angenehme Woche...
Stefan / dpf_dd
ich stehe mal wieder auf dem Schlauch und denke diese Frage ist im Forum besser aufgehoben als im Slack-Channel...
Ich habe ein eigenes AddOn gebaut und nutze dafür u.a. eine extended rex_form-Klasse um rex_form-Elemente zu manipulieren:
Code: Alles auswählen
class my_rex_form extends rex_form {
function preSave($fieldsetName, $fieldName, $fieldValue, &$saveSql){
$out = '';
switch($fieldName){
default:
return $fieldValue;
case "TSTAMP":
$fieldValue = str_replace('-',' ',$fieldValue);
$rohdatum = new DateTime($fieldValue);
$out = $rohdatum->format('Y-m-d H:i:s');
return $out;
}
}
function preView($fieldsetName, $fieldName, $fieldValue){
$out = '';
switch($fieldName){
default:
return $fieldValue;
case "TSTAMP":
$rohdatum = new DateTime($fieldValue);
$out = $rohdatum->format('d.m.Y-H:i');
return $out;
}
}
}
Wie muss ich die Klasse aber ausgestalten, wenn ich ein rex_form-Objekt nicht manipulieren, sondern komplett entfernen möchte?
Was habe ich vor:
Ich habe eine Checkbox in der AddOn-Eingabe, die den Zeitstempel aktualisieren soll. Das Checkbox-Feld gibt es aber nicht in der Datenbank, was zu "Fehler beim Speichern." führt... Ich brauche die Checkbox ja auch nur zur Steuerung und dachte ich kann das in etwas so umsetzen:
Code: Alles auswählen
function preSave($fieldsetName, $fieldName, $fieldValue, &$saveSql){
$out = '';
switch($fieldName){
default:
return $fieldValue;
case "CHECKBOX":
if($fieldValue == 0)
{
### rex_form-Element "TSTAMP" NICHT MODIFIZIEREN
}
else {
### rex_form-Element "TSTAMP" soll mit time() überschrieben werden...
}
### In beiden Fällen nach Durchlauf das aktuelle rex_form-Element ("CHECKBOX") entfernen (sonst gibt es "Fehler beim Speichern"...)
case "TSTAMP":
$fieldValue = str_replace('-',' ',$fieldValue);
$rohdatum = new DateTime($fieldValue);
$out = $rohdatum->format('Y-m-d H:i:s');
return $out;
}
}
1) Wie kann ich den $fieldValue von "TSTAMP" ändern, wenn sich die Schleife aber gerade im Objekt "CHECKBOX" befindet?
2) Wie kann ich das gesamte rex_form-Element "CHECKBOX" entfernen, sodass es NICHT in der Datenbank gespeichert wird?
Kann mir da jemand evtl. auf die Sprünge helfen?
Vielen Dank und eine angenehme Woche...
Stefan / dpf_dd