function ds_ui_limit_validate in Display Suite 7.2
Element validation function for ui limit field.
1 string reference to 'ds_ui_limit_validate'
- ds_shared_form in modules/
ds_ui/ includes/ ds.fields.inc - Shared form for all fields.
File
- modules/
ds_ui/ includes/ ds.fields.inc, line 198 - Administrative functions for managing custom fields for every entity.
Code
function ds_ui_limit_validate($element, &$form_state, $form) {
// Get all enabled entity types.
$entity_types = array_filter($form_state['values']['entities']);
if (!empty($element['#value'])) {
$ui_limit = $element['#value'];
$lines = explode("\n", str_replace("\r", "\n", $ui_limit));
// Ensure that all strings are trimmed and filter out empty lines.
$lines = array_filter(array_map('trim', $lines));
$error = FALSE;
foreach ($lines as $line) {
// Each line should hold a pipe character to seperate bundle and view_mode.
if (strpos($line, '|') === FALSE) {
$error = TRUE;
continue;
}
list($bundle, $view_mode) = explode('|', $line);
if (empty($bundle) || empty($view_mode) || !_ds_check_existing_ui_limit($entity_types, $bundle, $view_mode)) {
$error = TRUE;
}
}
if ($error) {
form_error($element, t('The values are in the form of $bundle|$view_mode, where $view_mode may be either a view mode set to use custom settings, or \'default\'.'));
}
// Set trimmed and validated entry back as value.
form_set_value($element, implode("\n", $lines), $form_state);
}
}