function _nat_add_terms in Node Auto Term [NAT] 7.2
Same name and namespace in other branches
- 5 nat.module \_nat_add_terms()
- 6.2 nat.module \_nat_add_terms()
- 6 nat.module \_nat_add_terms()
- 7 nat.module \_nat_add_terms()
Add node titles as terms into the taxonomy system. @todo Ideas are welcome to allow retaining the hierarchy for vocabularies not present in the node form.
Parameters
Object $node: The node object to associate and update.
Array $vids: An array of vocabulary IDs to restrict associations to; useful for operations such as NAT sync ...
Return value
Array $tids An array of term objects.
2 calls to _nat_add_terms()
- nat_node_insert in ./
nat.module - Implements hook_node_insert().
- _nat_sync_associations in ./
nat.admin.inc - Synchronize NAT node-term relationships. Create associated terms for node where missing.
File
- ./
nat.module, line 551 - NAT - node auto term - is a helper module that automatically creates a term using the same title as a node.
Code
function _nat_add_terms($node, $vids = array()) {
$nat_config = _nat_variable_get();
$hierarchy = _nat_get_term_hierarchies($node);
$machine_names = $nat_config['types'][$node->type];
$config_vids = array();
foreach (_nat_get_vocabularies() as $vid => $vocabulary) {
if (isset($machine_names[$vocabulary->machine_name])) {
$config_vids[$vid] = $vocabulary->machine_name;
}
}
$vids = empty($vids) ? $config_vids : $vids;
$terms_saved = array();
foreach ($vids as $vid => $machine_name) {
$term = new StdClass();
$term->weight = 0;
$term->vid = $vid;
// Save hierarchy for vocabularies also present in the node form. No parent
// requires a 0.
$term->parent = isset($hierarchy[$vid]) ? $hierarchy[$vid] : array(
0,
);
$fields = $nat_config['associations'][$node->type][$machine_name];
// $entities = entity_create_stub_entity('taxonomy_term', array(null, null, $term->vid));
$entities = array();
$terms_saved[] = _nat_save_term($node, $hierarchy, $term, $entities, $fields);
}
return $terms_saved;
}