You are here

function _taxonomy_patterns_prepare_term in Patterns 7.2

Same name and namespace in other branches
  1. 7 patterns_components/components/taxonomy.inc \_taxonomy_patterns_prepare_term()
1 call to _taxonomy_patterns_prepare_term()
taxonomy_patterns_prepare in patterns_components/components/taxonomy.inc

File

patterns_components/components/taxonomy.inc, line 352
Patterns component for taxonomy vocabularies and terms.

Code

function _taxonomy_patterns_prepare_term($action, $data, $vid = NULL) {

  // Get the vid first
  if (isset($data['vocabulary'])) {
    $data['vocabulary_machine_name'] = $data['vocabulary'];
    unset($data['vocabulary']);
  }

  // Set the vocabulary-id if not alraeady present
  if (!isset($data['vid'])) {

    // use the parameter if not null
    if (!empty($vid)) {
      $data['vid'] = $vid;
    }
    else {
      $taxo = taxonomy_vocabulary_machine_name_load($data['vocabulary_machine_name']);
      if (!empty($taxo)) {
        $data['vid'] = $taxo->vid;
      }
    }
  }
  if (!isset($data['tid'])) {
    if (isset($data['name'])) {

      // TODO: Check this
      $terms = taxonomy_get_term_by_name($data['name']);

      // We set it only if there is one and only term with the same name.
      if (count($terms) == 1) {
        $term = array_pop($terms);
        $data['tid'] = $term->tid;
      }
    }
  }
  if (isset($data['parent'])) {
    $data['parent'] = _taxonomy_patterns_prepare_parent_terms($data['parent']);
  }

  //return 'taxonomy_form_term';
  if (isset($data['delete'])) {

    // TODO: action === 'delete'
    $data['confirm_delete'] = TRUE;
  }
  else {

    // If it was not a delete request do a lot more
    $default_weight = 0;
    $default_textformat = 'filtered_html';
    if (!isset($data['format'])) {
      $data['format'] = $default_textformat;

      // was ''
    }
    if (!isset($data['weight'])) {
      $data['weight'] = $default_weight;
    }

    // @TODO: Check 'tid' => NULL,
    if (isset($data['descr'])) {
      $data['description']['value'] = $data['descr'];
      if (isset($data['descr-format'])) {
        $data['description']['format'] = $data['descr-format'];
        unset($data['descr-format']);
      }
      else {
        $data['description']['format'] = $default_textformat;
      }
      unset($data['descr']);
    }
  }

  // End Not Delete
  return $data;
}