Asserts that user input is expected to be of a certain type.
string
alnum
- allows only alphanumeric characters and whitespacesalpha
- allows only alpha characters and whitespacesint
- allow only integer valuesnumeric
- allows numeric valuesdate
- allows date/time strings and objectsurl
- allows only valid URLsemail
- allows only valid email addresses
$field = array(
'type' => 'text',
'validation_rules' => array(
'type' => 'alnum',
),
);
Asserts that user input is between min and max values
$field = array(
'type' => 'text',
'validation_rules' => array(
'type' => 'int',
'min' => 10,
'max' => 20,
),
);
Asserts that the length of user input is between min and max values
$field = array(
'type' => 'password',
'validation_rules' => array(
'type' => 'string',
'minlength' => 6,
'maxlength' => 25,
),
);
Asserts that user input contains a predefined string
$field = array(
'type' => 'text',
'validation_rules' => array(
'type' => 'string',
'contains' => 'hello world',
),
);
Asserts that user input matches a regex pattern
$field = array(
'type' => 'time',
'validation_rules' => array(
'type' => 'string',
'regex' => '^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$',
),
);
You can define custom validation rules, using the following pattern:
// Callback for validating user input
elgg_register_plugin_hook_handler('validate:my_rule', 'prototyper', 'my_callback');
// Register the validation rule to make it available in hypePrototyperUI
hypePrototyper()->config->registerValidationRule('my_rule');
Partial client-side validation is available through Parsley.js. Do enable validation,
add data-parsley-validate
to your form attributes.
echo elgg_view_form('my_prototyped_form', array(
'enctype' => 'multipart/form-data',
'data-parsley-validate' => true,
), $vars);