You are here

function field_weight_display_overview_form_submit in Field display weights (per node) 7

Same name and namespace in other branches
  1. 7.2 field_weight.module \field_weight_display_overview_form_submit()

File

./field_weight.module, line 155
Field display weight module.

Code

function field_weight_display_overview_form_submit($form, &$form_state) {
  $node = $form_state['#node'];
  $values = $form_state['values']['field_weight'];
  $form_state['redirect'] = 'node/' . $node->nid;
  $instances = field_info_instances('node', $node->type);
  $weights = array();
  foreach ($instances as $field => $instance) {
    $weights[$field] = array(
      'weight' => $values[$field]['weight'],
      'hidden' => $values[$field]['hidden'],
    );
  }

  // If all weights are 0 (unchanged) will return empty.
  $empty_check = array_filter($weights);
  if (!empty($empty_check)) {
    db_merge('field_weight')
      ->key(array(
      'nid' => $node->nid,
    ))
      ->fields(array(
      'nid' => $node->nid,
      'type' => $node->type,
      'field_weights' => serialize($weights),
    ))
      ->execute();
  }
  elseif (empty($empty_check)) {

    // Remove entry if user manually sets all weights to 0.
    _field_weight_remove_weights($form, $form_state);
  }
}