name, 'taxonomy/term/'. $tid); } else { $output[$tid] = theme('placeholder', $tid); } } return $output[$tid]; } /** * Implementation of hook_node_import_fields(). */ function primary_term_node_import_fields($type) { $fields = array(); // Import taxonomy terms for nodes. if (($node_type = node_import_type_is_node($type)) !== FALSE) { $vids = variable_get('pt_vocabs_'. $node_type, array()); foreach ($vids as $vid) { $vocabulary = taxonomy_vocabulary_load($vid); $fields['primary_term:'. $vid] = array( 'title' => t('Primary Term'), 'module' => 'primary_term', 'input_format' => 'taxonomy_term', 'vocabulary' => $vocabulary, 'has_multiple' => FALSE, 'has_hierarchy' => FALSE, ); } } return $fields; } /** * Implementation of hook_node_import_defaults(). */ function primary_term_node_import_defaults($type, $defaults, $fields, $map) { $form = array(); // Import taxonomy terms for nodes. if (($node_type = node_import_type_is_node($type)) !== FALSE) { $vids = variable_get('pt_vocabs_'. $node_type, array()); foreach ($vids as $vid) { $vocabulary = taxonomy_vocabulary_load($vid); if ($vocabulary->tags) { $form['primary_term:'. $vocabulary->vid] = array( '#type' => 'textfield', '#title' => $vocabulary->name, '#default_value' => isset($defaults['primary_term:'. $vocabulary->vid]) ? $defaults['primary_term:'. $vocabulary->vid] : '', '#autocomplete_path' => 'taxonomy/autocomplete/'. $vocabulary->vid, ); } else { $form['primary_term:'. $vocabulary->vid] = taxonomy_form($vocabulary->vid, isset($defaults['primary_term:'. $vocabulary->vid])? $defaults['primary_term:'. $vocabulary->vid] : 0); } } } return $form; } /** * Implementation of hook_node_import_values_alter(). */ function primary_term_node_import_values_alter(&$values, $type, $defaults, $options, $fields, $preview) { if (($node_type = node_import_type_is_node($type)) !== FALSE) { $taxonomy = isset($values['primary_term']) ? $values['primary_term'] : array(); foreach ($fields as $fieldname => $fieldinfo) { if (strpos($fieldname, 'primary_term:') === 0) { $vocab = $fieldinfo['vocabulary']; if ($vocab->tags) { $taxonomy['tags'] = isset($taxonomy['tags']) ? $taxonomy['tags'] : array(); $taxonomy['tags'][$vocab->vid] = implode(',', (array)$values[$fieldname]); } else { $taxonomy[$vocab->vid] = $values[$fieldname]; } unset($values[$fieldname]); } } /* the primary term module uses node->primary_term and node->primaryterm for different purposes, mostly for historical reasons, as changing this would break compatibility with every contributed module that uses this field (cf. comments in primary_term.module) */ $values['primary_term'] = $taxonomy; $tid = array_shift($taxonomy); $values['primaryterm'] = $tid; } }