You are here

function taxonomy_machine_name_taxonomy_term_presave in Taxonomy Machine Name 7

Same name and namespace in other branches
  1. 8 taxonomy_machine_name.module \taxonomy_machine_name_taxonomy_term_presave()

Implements hook_taxonomy_term_presave().

File

./taxonomy_machine_name.module, line 107

Code

function taxonomy_machine_name_taxonomy_term_presave($term) {

  // Set default value based on current name term.
  if (empty($term->machine_name)) {
    $term->machine_name = taxonomy_machine_name_clean_name($term->name);
    watchdog('taxonomy', 'Add default machine name for term: %name => %machine_name', array(
      '%name' => $term->name,
      '%machine_name' => $term->machine_name,
    ), WATCHDOG_DEBUG);
  }
  else {

    // Clean by security.
    $term->machine_name = taxonomy_machine_name_clean_name($term->machine_name);
  }

  // If the alias already exists, generate a new,
  // hopefully unique, variant.
  $original_machine_name = $machine_name = $term->machine_name;
  taxonomy_machine_name_uniquify($machine_name, $term);
  if ($original_machine_name != $machine_name) {
    $term->machine_name = $machine_name;

    // Alert the user why this happened.
    watchdog('taxonomy', 'Duplicate machine name for term: %original_machine_name => %machine_name', array(
      '%original_machine_name' => $original_machine_name,
      '%machine_name' => $term->machine_name,
    ), WATCHDOG_DEBUG);
  }
}