Last active
August 29, 2015 14:24
-
-
Save Da-Fecto/c7c3f236f83e6690e0af to your computer and use it in GitHub Desktop.
Formbuilder Handler.php
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$config->form = array( | |
// Name of the formbuilder form | |
'formName' => $form_name, | |
// Redirect to here after successful submit. | |
'successUrl' => $success_url, | |
// Global error message after faulty submit. | |
'errorMessage' => $error_message, | |
); | |
if ($config->form['formName']) { | |
/** | |
* Modify settings | |
* | |
* We use $config as a mediator so probably no changes are needed here. | |
* More settings found here: /site/modules/FormBuilder/FormBuilderProcessor.php | |
* | |
* @param HookEvent $event | |
*/ | |
$forms->addHookBefore('FormBuilderProcessor::render', function(HookEvent $event) { | |
// (object) FormBuilderProcessor | |
$processor = $event->object; | |
// Configuration array | |
$settings = wire('config')->form; | |
// Name of the form | |
if($processor->formName != $settings['formName']) return; | |
// Shown after failed submit. | |
$processor->set('errorMessage', $settings['errorMessage']); | |
// Redirect after succesfull submit. | |
$processor->set('successUrl', $settings['successUrl']); | |
// Submit the form somewhere else. (disabling all other options) | |
$processor->set('saveFlags', FormBuilderProcessor::saveFlagExternal); | |
}); | |
/** | |
* Modify the field before render | |
* | |
* @param HookEvent $event | |
*/ | |
$forms->addHookBefore('Inputfield::render', function(HookEvent $event) { | |
$form = $event->object; | |
if($form->name != wire('config')->form['formName']) return; | |
/** | |
* Example usage | |
* | |
* $field = $form->get('password'); | |
* $field->set('type', 'password'); | |
*/ | |
}); | |
/** | |
* After the input is processed by ProcessWire | |
* | |
* @example See examples at the top of this file | |
* @param HookEvent $event | |
*/ | |
$forms->addHookAfter('InputfieldForm::processInput', function(HookEvent $event) { | |
$form = $event->object; | |
if($form->name != wire('config')->form['formName']) return; | |
/** | |
* Example usage | |
* | |
* $field = $form->get('username'); | |
* $field->value = 'set a value'; | |
* $field->getErrors(true); | |
* $field->error("Set an error"); | |
*/ | |
}); | |
$form = $forms->render($config->form['formName']); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment