protected function FullCalendar::castNestedValues in FullCalendar 8
Same name and namespace in other branches
- 8.3 src/Plugin/views/style/FullCalendar.php \Drupal\fullcalendar\Plugin\views\style\FullCalendar::castNestedValues()
Casts form values to a given type, if defined.
Parameters
array $values: An array of fullcalendar option values.
array $form: The fullcalendar option form definition.
string|null $current_key: (optional) The current key being processed. Defaults to NULL.
array $parents: (optional) An array of parent keys when recursing through the nested array. Defaults to an empty array.
1 call to FullCalendar::castNestedValues()
- FullCalendar::validateOptionsForm in src/
Plugin/ views/ style/ FullCalendar.php - Validate the options form.
File
- src/
Plugin/ views/ style/ FullCalendar.php, line 190
Class
- FullCalendar
- Plugin annotation @ViewsStyle( id = "fullcalendar", title = @Translation("FullCalendar"), help = @Translation("Displays items on a calendar."), theme = "fullcalendar", theme_file = "fullcalendar.theme.inc", display_types = {"normal"} )
Namespace
Drupal\fullcalendar\Plugin\views\styleCode
protected function castNestedValues(array &$values, array $form, $current_key = NULL, array $parents = []) {
foreach ($values as $key => &$value) {
// We are leaving a recursive loop, remove the last parent key.
if (empty($current_key)) {
array_pop($parents);
}
// In case we recurse into an array, or need to specify the key for
// drupal_array_get_nested_value(), add the current key to $parents.
$parents[] = $key;
if (is_array($value)) {
// Enter another recursive loop.
$this
->castNestedValues($value, $form, $key, $parents);
}
else {
// Get the form definition for this key.
$form_value = NestedArray::getValue($form, $parents);
// Check to see if #data_type is specified, if so, cast the value.
if (isset($form_value['#data_type'])) {
settype($value, $form_value['#data_type']);
}
// Remove the current key from $parents to move on to the next key.
array_pop($parents);
}
}
}