LiveWhale will automatically validate form fields against expected values, e.g. that a successful form submission requires that an email field receive either a single email address or a series of comma-separated email addresses. LiveWhale also automatically enforces that required field are not empty (‘’).
If you are adding custom fields to an existing data module, or simply want to enforce additional checks on existing fields, then you can accomplish this with a custom module that utilizes an onFormsSubmission handler. An example module is below.
<?php
$_LW->REGISTERED_APPS['my_app']=[
'title'=>'My App',
'handlers'=>['onFormsSubmission'],
];
class LiveWhaleApplicationMyApp {
// perform additional form validations
public function onFormsSubmission($id) {
global $_LW;
// use the $id to only apply this validation to a certain form, or perhaps
// track the presence of a field name in $_LW->_POST
if ($id === 6) {
// sanitized field values are available in $_LW->_POST, which is recommended
// all the field name are abstracted, but consistent, so you’ll have to pick
// them out. for example, require that the title is not too long
if (strlen($_LW->_POST['lw_form_6_###############']) > 60) {
die(json_encode(['error' => 'Brevity is the soul of wit. (Shakespeare)
Please shorten your title to less than 60 characters.']));
}
// and don’t forget about summary length
if (strlen($_LW->_POST['lw_form_6_###############']) > 300) {
die(json_encode(['error' => 'Brevity makes sweetness, doesn\'t it?
(Stephen King) Please shorten your summary to less than 300 characters.']));
}
// validations succeeded
}
// no validations needed
}
}
?>