You are here

function _slick_typecast_optionset in Slick Carousel 7.2

Same name and namespace in other branches
  1. 7.3 includes/slick.admin.inc \_slick_typecast_optionset()

Returns the typecast values, so that JSON object has the right values.

Parameters

array $options: An array of Optionset options.

int $breakpoints: The number of breakpoints if specified.

3 calls to _slick_typecast_optionset()
SlickUi::edit_form_submit in slick_ui/plugins/export_ui/SlickUi.class.php
Overrides the edit form submit handler.
slick_optionset_load_all in includes/slick.admin.inc
Fetches all optionsets from the storage.
slick_optionset_save in includes/slick.admin.inc
Saves the given option set to the database.

File

includes/slick.admin.inc, line 261
Contains optional functions called only if needed by admin pages.

Code

function _slick_typecast_optionset(array &$options = array(), $breakpoints = 0) {
  if (empty($options)) {
    return;
  }
  $slick_options = slick_get_options();
  foreach ($slick_options as $name => $value) {
    if (isset($options['settings'][$name])) {
      $cast = gettype($slick_options[$name]);
      settype($options['settings'][$name], $cast);
    }
  }
  if (isset($options['responsives']['responsive']) && $breakpoints) {
    $slick_responsive_options = slick_get_responsive_options($breakpoints);
    foreach ($slick_responsive_options as $i => $items) {
      foreach ($items as $name => $item) {
        switch ($name) {
          case 'breakpoint':
            settype($options['responsives']['responsive'][$i][$name], 'int');
            break;
          case 'unslick':
            settype($options['responsives']['responsive'][$i][$name], 'bool');
            break;
          case 'settings':
            foreach ($item as $key => $setting) {
              if (isset($options['responsives']['responsive'][$i][$name][$key])) {
                $cast = gettype($item[$key]);
                settype($options['responsives']['responsive'][$i][$name][$key], $cast);
              }
            }
            break;
          default:
            break;
        }
      }
    }
  }
  drupal_alter('slick_typecast_optionset_info', $options, $breakpoints);
}