diff options
author | Neil Drumm <drumm@3064.no-reply.drupal.org> | 2006-11-10 19:40:23 +0000 |
---|---|---|
committer | Neil Drumm <drumm@3064.no-reply.drupal.org> | 2006-11-10 19:40:23 +0000 |
commit | 4476a2c0156451fb13e3dd2d9308e6c694caa378 (patch) | |
tree | ec3aa61687d13eec266505740f2135e56902f04e /modules | |
parent | 6263c0f22c4b97f99be66c97ba1bae6431eaa2a5 (diff) | |
download | brdo-4476a2c0156451fb13e3dd2d9308e6c694caa378.tar.gz brdo-4476a2c0156451fb13e3dd2d9308e6c694caa378.tar.bz2 |
#83202 by Jaza. Separate out node type deletion API and use it to keep {vocabulary_node_types} updated.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/node/content_types.inc | 5 | ||||
-rw-r--r-- | modules/node/node.module | 13 | ||||
-rw-r--r-- | modules/taxonomy/taxonomy.module | 14 |
3 files changed, 19 insertions, 13 deletions
diff --git a/modules/node/content_types.inc b/modules/node/content_types.inc index 5a22f363c..368a44985 100644 --- a/modules/node/content_types.inc +++ b/modules/node/content_types.inc @@ -331,7 +331,7 @@ function node_type_form_submit($form_id, $form_values) { * Implementation of hook_node_type(). */ function node_node_type($op, $info) { - if (!empty($info->old_type) && $info->old_type != $info->type) { + if ($op != 'delete' && !empty($info->old_type) && $info->old_type != $info->type) { $update_count = node_type_update_nodes($info->old_type, $info->type); if ($update_count) { @@ -387,7 +387,7 @@ function node_type_delete_confirm($type) { * Process content type delete confirm submissions. */ function node_type_delete_confirm_submit($form_id, $form_values) { - db_query("DELETE FROM {node_type} WHERE type = '%s'", $form_values['type']); + node_type_delete($form_values['type']); $t_args = array('%name' => $form_values['name']); drupal_set_message(t('The content type %name has been deleted.', $t_args)); @@ -398,4 +398,3 @@ function node_type_delete_confirm_submit($form_id, $form_values) { return 'admin/content/types'; } - diff --git a/modules/node/node.module b/modules/node/node.module index ae3a0a6d0..4c55d1aa6 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -295,6 +295,19 @@ function node_type_save($info) { } /** + * Deletes a node type from the database. + * + * @param $type + * The machine-readable name of the node type to be deleted. + */ +function node_type_delete($type) { + db_query("DELETE FROM {node_type} WHERE type = '%s'", $type); + + $info = node_get_types('type', $type); + module_invoke_all('node_type', 'delete', $info); +} + +/** * Updates all nodes of one type to be of another type. * * @param $orig_type diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module index 40fde59c7..b38bde579 100644 --- a/modules/taxonomy/taxonomy.module +++ b/modules/taxonomy/taxonomy.module @@ -818,16 +818,10 @@ function taxonomy_node_delete($nid) { */ function taxonomy_node_type($op, $info) { if ($op == 'update' && !empty($info->old_type) && $info->type != $info->old_type) { - if (db_num_rows(db_query("SELECT * from {vocabulary_node_types} WHERE type = '%s'", $info->old_type))) { - db_query("UPDATE {vocabulary_node_types} SET type = '%s' WHERE type = '%s'", $info->type, $info->old_type); - $num_updated = db_affected_rows(); - - if ($num_updated) { - $substr_pre = 'Changed the content type association of '; - $substr_post = strtr(' from %old-type to %type.', array('%old-type' => theme('placeholder', $info->old_type), '%type' => theme('placeholder', $info->type))); - drupal_set_message(format_plural($num_updated, $substr_pre .'1 vocabulary'. $substr_post, $substr_pre .'@count vocabularies'. $substr_post)); - } - } + db_query("UPDATE {vocabulary_node_types} SET type = '%s' WHERE type = '%s'", $info->type, $info->old_type); + } + elseif ($op == 'delete') { + db_query("DELETE FROM {vocabulary_node_types} WHERE type = '%s'", $info->type); } } |