function taxonomy_defaults_form_alter in Taxonomy Defaults 6
Same name and namespace in other branches
- 5 taxonomy_defaults.module \taxonomy_defaults_form_alter()
- 6.2 taxonomy_defaults.module \taxonomy_defaults_form_alter()
- 7 taxonomy_defaults.module \taxonomy_defaults_form_alter()
Adds the defaults for active vocabularies as preselected terms to '$node->taxonomy' This requires a weight higher than taxonomy.module.
File
- ./
taxonomy_defaults.module, line 66 - Taxonomy defaults - allows assignment of default terms to node types, either
Code
function taxonomy_defaults_form_alter(&$form, &$form_state, $form_id) {
// Only alter node forms
if (isset($form['type']) && $form['type']['#value'] . '_node_form' == $form_id) {
$node = $form['#node'];
// Add the default 'pre-selected' terms to $node->taxonomy
foreach (taxonomy_get_vocabularies($node->type) as $vid => $vocab) {
$default_tids = variable_get("taxdef_{$node->type}_{$vid}", array());
$visible = variable_get("taxdef_{$node->type}_{$vid}_visible", array());
if ($vocab->tags) {
// for freetag vocabs, build an array of terms and convert to a string
$terms = array();
foreach ($default_tids as $tid) {
$terms[] = taxonomy_get_term($tid);
}
$typed_string = taxonomy_implode_tags($terms, $vid);
if ($visible) {
// Do not preselect terms on nodes that already have been edited
if (!isset($node->nid)) {
$form['taxonomy']['tags'][$vid]['#default_value'] = $typed_string;
}
}
else {
$form['taxonomy']['tags'][$vid]['#type'] = 'value';
unset($form['taxonomy'][$vid]['#theme']);
// Do not preselect terms on nodes that already have been edited
if (!isset($node->nid)) {
$form['taxonomy']['tags'][$vid]['#value'] = $typed_string;
}
}
}
else {
if ($visible) {
// Do not preselect terms on nodes that already have been edited
if (!isset($node->nid)) {
$form['taxonomy'][$vid]['#default_value'] = $default_tids;
}
}
else {
$form['taxonomy'][$vid]['#type'] = 'value';
unset($form['taxonomy'][$vid]['#theme']);
// Do not preselect terms on nodes that already have been edited
if (!isset($node->nid)) {
$form['taxonomy'][$vid]['#value'] = $default_tids;
}
}
}
}
}
}