Hi,
there is an event
Code:
onVisformsAfterEditFormSave
with the following parameters
Code:
'subject' => $visform,
'context' => 'com_visforms.form',
'fields' => $fields
which you can retrieve in the event handler
Code:
public function onVisformsAfterEditFormSave(VisformsAfterEditFormSaveEvent $event): void {
// after saving edit form results
// context = 'com_visforms.form'
$context = $event->getContext();
$form = $event->getForm();
$fields = $event->getFields();
}
you could basically use this event handler to redirect to the desired page.
Before you redirect you have to make sure that you clear the user state and check the record in.
Like it is done in the controller code in the components/com_visforms/src/Controller/EditController.php
Which usually runs after all event handlers are processed.
EditController.php (line 307ff)
Code:
$app->setUserState('com_visforms.' . $visform->context , null);
$app->setUserState('com_visforms.fieldsdisabledstate.' . $visform->context , null);
$adminModel = $this->getModel('Visdata', 'Administrator');
// Table Visdata expects the parameter fid
$this->input->set('fid', $visform->id);
$adminModel->checkin($this->input->get('cid'));
Make sure, that your plugin with the event handler is the last one in the plugin list.
So that the Visforms event handler for this event are still executed.
Regard,
Aicha