taxonomy_form_term_submit
function taxonomy_form_term_submit
taxonomy_form_term_submit($form, &$form_state)
Submit handler to insert or update a term.
See also
File
- modules/taxonomy/taxonomy.admin.inc, line 801
- Administrative page callbacks for the taxonomy module.
Code
function taxonomy_form_term_submit($form, &$form_state) { if ($form_state['triggering_element']['#value'] == t('Delete')) { // Execute the term deletion. if ($form_state['values']['delete'] === TRUE) { return taxonomy_term_confirm_delete_submit($form, $form_state); } // Rebuild the form to confirm term deletion. $form_state['rebuild'] = TRUE; $form_state['confirm_delete'] = TRUE; return; } $term = taxonomy_form_term_submit_build_taxonomy_term($form, $form_state); $status = taxonomy_term_save($term); switch ($status) { case SAVED_NEW: drupal_set_message(t('Created new term %term.', array('%term' => $term->name))); watchdog('taxonomy', 'Created new term %term.', array('%term' => $term->name), WATCHDOG_NOTICE, l(t('edit'), 'taxonomy/term/' . $term->tid . '/edit')); break; case SAVED_UPDATED: drupal_set_message(t('Updated term %term.', array('%term' => $term->name))); watchdog('taxonomy', 'Updated term %term.', array('%term' => $term->name), WATCHDOG_NOTICE, l(t('edit'), 'taxonomy/term/' . $term->tid . '/edit')); // Clear the page and block caches to avoid stale data. cache_clear_all(); break; } $current_parent_count = count($form_state['values']['parent']); $previous_parent_count = count($form['#term']['parent']); // Root doesn't count if it's the only parent. if ($current_parent_count == 1 && isset($form_state['values']['parent'][0])) { $current_parent_count = 0; $form_state['values']['parent'] = array(); } // If the number of parents has been reduced to one or none, do a check on the // parents of every term in the vocabulary value. if ($current_parent_count < $previous_parent_count && $current_parent_count < 2) { taxonomy_check_vocabulary_hierarchy($form['#vocabulary'], $form_state['values']); } // If we've increased the number of parents and this is a single or flat // hierarchy, update the vocabulary immediately. elseif ($current_parent_count > $previous_parent_count && $form['#vocabulary']->hierarchy < 2) { $form['#vocabulary']->hierarchy = $current_parent_count == 1 ? 1 : 2; taxonomy_vocabulary_save($form['#vocabulary']); } $form_state['values']['tid'] = $term->tid; $form_state['tid'] = $term->tid; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!taxonomy!taxonomy.admin.inc/function/taxonomy_form_term_submit/7.x