You are here

function blockanimate_form_submit in BlockAnimate 7

Helper function.

Additional submit callback for block configuration pages. Save supplied block CSS classes and block attributes.

1 string reference to 'blockanimate_form_submit'
blockanimate_form_alter in ./blockanimate.module
Implements hook_form_alter().

File

./blockanimate.module, line 232
Add CSS3 cross-browser animation to any Drupal block.

Code

function blockanimate_form_submit($form, &$form_state) {
  $form_id = $form_state['values']['form_id'];
  if ($form_id == 'block_admin_configure' || $form_id == 'block_add_block_form') {
    $animate_css_class = $form_state['values']['animate_css_class'];
    $animate_css_infinite = $animate_css_class != 'none' && strlen($form_state['values']['animate_css_wow_iteration']) == 0 ? $form_state['values']['animate_css_infinite'] : 0;
    $animate_css_duration = _blockanimate_get_db_value_for_optional_field($animate_css_class, $form_state['values']['animate_css_wow_duration']);
    $animate_css_delay = _blockanimate_get_db_value_for_optional_field($animate_css_class, $form_state['values']['animate_css_wow_delay']);
    $animate_css_offset = _blockanimate_get_db_value_for_optional_field($animate_css_class, $form_state['values']['animate_css_wow_offset']);
    $animate_css_iteration = _blockanimate_get_db_value_for_optional_field($animate_css_class, $form_state['values']['animate_css_wow_iteration']);
    $field_values = array(
      'animate_css_class' => $animate_css_class,
      'animate_css_infinite' => $animate_css_infinite,
      'animate_css_wow_duration' => $animate_css_duration,
      'animate_css_wow_delay' => $animate_css_delay,
      'animate_css_wow_offset' => $animate_css_offset,
      'animate_css_wow_iteration' => $animate_css_iteration,
    );
    if (user_access('administer blocks') && !empty($field_values)) {
      db_update('block')
        ->fields($field_values)
        ->condition('module', $form_state['values']['module'])
        ->condition('delta', $form_state['values']['delta'])
        ->execute();

      // Flush all context module cache to use the updated block classes.
      if (module_exists('context')) {
        cache_clear_all('context', 'cache', TRUE);
      }
    }
  }
}