Home ›
Copy (or inherit) taxonomy terms from one node to anotherCopy (or inherit) taxonomy terms from one node to another
Submitted by Benjamin Melançon on December 12, 2007 - 10:06pm
function wsf_action_copy_terms($from_nid, $to_nid, $avoid_race = FALSE) {
// agaric-ben @TODO optimize;
// see http://agaricdesign.com/note/copy-taxonomy-terms-from-one-node-another
if ($avoid_race) {
// avoid pseudo race condition from taxonomy_node_get_terms static variable
$result = db_query('SELECT tid FROM {term_node} WHERE nid = %d', $from_nid);
$terms = array();
while ($term = db_fetch_object($result)) {
$terms[$term->tid] = $term;
}
} else {
$terms = taxonomy_node_get_terms($from_nid);
}
// WARNING: INSERT IGNORE is MySQL only - @TODO ben-agaric
foreach ($terms as $tid => $term) {
db_query('INSERT IGNORE INTO {term_node} (nid, tid) VALUES (%d, %d)', $to_nid, $tid);
}
}
Comments
Post new comment