function override_css_selector_value_validate in Override css 7
Validate selector group form
File
- ./
override_css.admin.inc, line 348
Code
function override_css_selector_value_validate($form, &$form_state) {
$selector = override_css_selector_load($form_state['values']['selector']);
$available_properties = override_css_properties_list();
$properties = array_filter($selector['properties']);
// Integration with sliderfield module needs rewrite of the value
if (module_exists('sliderfield')) {
foreach ($form_state['values'] as $key => $element) {
if (is_array($element) && isset($element['value'])) {
$form_state['values'][$key] = $element['value'];
}
}
}
foreach ($properties as $property) {
switch ($available_properties[$property]['type']) {
case 'border':
if ($form_state['values'][$property . '_size']) {
if (!is_numeric($form_state['values'][$property . '_size'])) {
form_set_error($property . '_opacity', 'Enkel numerieke waarden zijn toegestaan.');
}
}
break;
case 'shadow':
$extra_fields = array(
'_horizontal',
'_vertical',
'_blur',
'_spread',
);
foreach ($extra_fields as $extra_field) {
if ($form_state['values'][$property . $extra_field]) {
if (!is_numeric($form_state['values'][$property . $extra_field])) {
form_set_error($property . $extra_field, 'Enkel numerieke waarden zijn toegestaan.');
}
}
}
case 'background-color':
if ($form_state['values'][$property . '_opacity']) {
if (!is_numeric($form_state['values'][$property . '_opacity'])) {
form_set_error($property . '_opacity', 'Enkel numerieke waarden zijn toegestaan.');
}
elseif ($form_state['values'][$property . '_opacity'] < 0 || $form_state['values'][$property . '_opacity'] > 100) {
form_set_error($property . '_opacity', 'Enkel waarden tussen 0 (niet transparant) en 100 (transparant) zijn toegestaan.');
}
}
case 'color':
if ($form_state['values'][$property] && !preg_match('/^#([a-f0-9]{3}){1,2}$/iD', $form_state['values'][$property])) {
form_set_error($property, 'De kleur is geen geldige hexadecimale css waarde (#xxxxxx).');
}
break;
case 'size':
case 'radius':
if ($form_state['values'][$property] && !is_numeric($form_state['values'][$property])) {
form_set_error($property, 'Enkel numerieke waarden zijn toegestaan.');
}
break;
case 'image':
module_load_include('inc', 'system', 'system.admin');
//validate given path
if ($form_state['values'][$property]) {
$path = _system_theme_settings_validate_path($form_state['values'][$property]);
if (!$path) {
form_set_error($property, 'Het pad naar de afbeelding bestaat niet, gebruik het upload formulier om een nieuwe afbeelding up te loaden of geef een correct pad in.');
}
}
// validate upload
$validators = array(
'file_validate_is_image' => array(),
);
$file = file_save_upload($property . '_upload', $validators);
if (isset($file)) {
if ($file) {
$form_state['values'][$property . '_upload'] = $file;
}
else {
form_set_error($property . '_upload', 'De afbeelding kon niet geüpload worden.');
}
}
break;
default:
break;
}
}
}