class field_validation_url_validator in Field Validation 7.2
Hierarchy
- class \field_validation_validator
Expanded class hierarchy of field_validation_url_validator
1 string reference to 'field_validation_url_validator'
- field_validation_url_validator.inc in plugins/
validator/ field_validation_url_validator.inc
File
- plugins/
validator/ field_validation_url_validator.inc, line 16
View source
class field_validation_url_validator extends field_validation_validator {
/**
* Validate field.
*/
public function validate() {
$settings = $this->rule->settings;
if ($this->value != '') {
$flag = FALSE;
if (empty($settings['external']) && empty($settings['internal'])) {
$flag = TRUE;
}
if (!empty($settings['external'])) {
$flag = valid_url($this->value, TRUE);
}
if (!$flag && !empty($settings['internal'])) {
$normal_path = drupal_get_normal_path($this->value);
if (!url_is_external($normal_path)) {
$parsed_link = parse_url($normal_path);
if ($normal_path != $parsed_link['path']) {
$normal_path = $parsed_link['path'];
}
$flag = drupal_valid_path($normal_path);
}
}
if (!$flag) {
$this
->set_error();
}
}
}
/**
* Provide settings option.
*/
function settings_form(&$form, &$form_state) {
$default_settings = $this
->get_default_settings($form, $form_state);
// Print debug($default_settings);
$form['settings']['external'] = array(
'#title' => t('External URL'),
'#description' => t("Limit allowed input to absolute/external url."),
'#type' => 'checkbox',
'#default_value' => isset($default_settings['external']) ? $default_settings['external'] : FALSE,
);
$form['settings']['internal'] = array(
'#title' => t('Internal path'),
'#description' => t("Limit allowed input to internal drupal path."),
'#type' => 'checkbox',
'#default_value' => isset($default_settings['internal']) ? $default_settings['internal'] : FALSE,
);
$form['settings']['help'] = array(
'#markup' => t("If both of External URL and Internal path are checked, it means that both of them are allowed."),
);
parent::settings_form($form, $form_state);
}
}