| 1 |
<?php |
<?php |
| 2 |
// $Id: taxonomy_manager.admin.inc,v 1.1.2.17.2.20 2009/08/07 08:20:22 mh86 Exp $ |
// $Id: taxonomy_manager.admin.inc,v 1.1.2.17.2.21 2009/08/10 13:47:46 mh86 Exp $ |
| 3 |
|
|
| 4 |
/** |
/** |
| 5 |
* |
* |
| 2116 |
$voc = taxonomy_vocabulary_load($vid); |
$voc = taxonomy_vocabulary_load($vid); |
| 2117 |
$merging_terms_parents = array(); |
$merging_terms_parents = array(); |
| 2118 |
|
|
|
if ($voc->hierarchy == 2 && $new_inserted && $options['collect_parents']) { |
|
|
db_query("DELETE FROM {term_hierarchy} WHERE parent = 0 AND tid = %d", $main_term); |
|
|
} |
|
|
|
|
| 2119 |
//TODO: add hook, so that other modules can consider changes |
//TODO: add hook, so that other modules can consider changes |
| 2120 |
foreach ($merging_terms as $merge_term) { |
foreach ($merging_terms as $merge_term) { |
| 2121 |
if ($merge_term != $main_term) { |
if ($merge_term != $main_term) { |
| 2129 |
} |
} |
| 2130 |
} |
} |
| 2131 |
|
|
|
if ($voc->hierarchy == 1) { //sinlge hierarchy |
|
|
$parents = taxonomy_get_parents($merge_term); |
|
|
$parent = array_shift($parents); |
|
|
$merging_terms_parents[$parent->tid] = $parent->tid; |
|
|
} |
|
| 2132 |
if ($options['collect_parents']) { |
if ($options['collect_parents']) { |
| 2133 |
$parents = taxonomy_get_parents($merge_term); |
$parents = taxonomy_get_parents($merge_term); |
| 2134 |
foreach ($parents as $parent_tid => $parent_term) { |
foreach ($parents as $parent_tid => $parent_term) { |
| 2135 |
|
$merging_terms_parents[$parent_tid] = $parent_tid; |
| 2136 |
if (!db_result(db_query("SELECT COUNT(*) FROM {term_hierarchy} WHERE tid = %d AND parent = %d", $main_term, $parent_tid))) { |
if (!db_result(db_query("SELECT COUNT(*) FROM {term_hierarchy} WHERE tid = %d AND parent = %d", $main_term, $parent_tid))) { |
| 2137 |
db_query("INSERT INTO {term_hierarchy} (tid, parent) VALUES (%d, %d)", $main_term, $parent_tid); |
db_query("INSERT INTO {term_hierarchy} (tid, parent) VALUES (%d, %d)", $main_term, $parent_tid); |
| 2138 |
} |
} |
| 2177 |
taxonomy_manager_delete_terms(array($merge_term)); |
taxonomy_manager_delete_terms(array($merge_term)); |
| 2178 |
} |
} |
| 2179 |
} |
} |
| 2180 |
|
taxonomy_manager_update_voc($vid, $merging_terms_parents); |
| 2181 |
if ($voc->hierarchy == 1 && count($merging_terms_parents) == 1 && $new_inserted) { |
if ($options['collect_parents'] && (db_result(db_query("SELECT COUNT(*) FROM {term_hierarchy} WHERE tid = %d", $main_term)) > 1)) { |
| 2182 |
db_query("UPDATE {term_hierarchy} SET parent = %d WHERE tid = %d", array_shift($merging_terms_parents), $main_term); |
db_query("DELETE FROM {term_hierarchy} WHERE parent = 0 AND tid = %d", $main_term); |
| 2183 |
} |
} |
|
|
|
| 2184 |
taxonomy_manager_merge_history_update($main_term, $merging_terms); |
taxonomy_manager_merge_history_update($main_term, $merging_terms); |
| 2185 |
} |
} |
| 2186 |
|
|