You are here

function taxonomy_tools_overview_submit in Taxonomy Tools 8

Same name and namespace in other branches
  1. 7 taxonomy_tools.admin.inc \taxonomy_tools_overview_submit()

Submit handler for Taxonomy Tools overview form.

See also

taxonomy_tools_overview()

File

./taxonomy_tools.admin.inc, line 481
Administrative page callbacks for the Taxonomy Tools module.

Code

function taxonomy_tools_overview_submit($form, &$form_state) {
  if ($form_state['triggering_element']['#value'] == t('Delete terms')) {

    // Execute term deletion.
    if (isset($form_state['values']['term_delete']) && $form_state['values']['term_delete'] === TRUE) {
      return taxonomy_tools_confirm_term_delete_submit($form, $form_state);
    }

    // Rebuild the form to confirm the term deletion.
    $form_state['rebuild'] = TRUE;
    $form_state['confirm_term_delete'] = TRUE;
    return;
  }
  elseif ($form_state['triggering_element']['#value'] == t('Save order')) {

    // Fetch all the necessary information from the database.
    $query = db_select('taxonomy_term_data', 'db1');
    $query
      ->addField('db1', 'tid');
    $query
      ->addField('db1', 'weight');
    $query
      ->condition('db1.vid', $form['#vocabulary']->vid);
    $query
      ->join('taxonomy_term_hierarchy', 'db2', 'db1.tid = db2.tid');
    $query
      ->condition('db2.parent', $form_state['values']['tree_root']);
    $result = $query
      ->execute()
      ->fetchAllKeyed();
    foreach ($result as $tid => $weight) {
      if ($form_state['values']['weight_' . $tid] != $weight) {

        // Update term weight value.
        $query = db_update('taxonomy_term_data');
        $query
          ->fields(array(
          'weight' => $form_state['values']['weight_' . $tid],
        ));
        $query
          ->condition('tid', $tid);
        $query
          ->execute();
      }
    }
  }
}