Commit 4476a2c0 authored by drumm's avatar drumm

#83202 by Jaza. Separate out node type deletion API and use it to keep...

#83202 by Jaza. Separate out node type deletion API and use it to keep {vocabulary_node_types} updated.
parent 6263c0f2
...@@ -331,7 +331,7 @@ function node_type_form_submit($form_id, $form_values) { ...@@ -331,7 +331,7 @@ function node_type_form_submit($form_id, $form_values) {
* Implementation of hook_node_type(). * Implementation of hook_node_type().
*/ */
function node_node_type($op, $info) { 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); $update_count = node_type_update_nodes($info->old_type, $info->type);
if ($update_count) { if ($update_count) {
...@@ -387,7 +387,7 @@ function node_type_delete_confirm($type) { ...@@ -387,7 +387,7 @@ function node_type_delete_confirm($type) {
* Process content type delete confirm submissions. * Process content type delete confirm submissions.
*/ */
function node_type_delete_confirm_submit($form_id, $form_values) { 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']); $t_args = array('%name' => $form_values['name']);
drupal_set_message(t('The content type %name has been deleted.', $t_args)); 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) { ...@@ -398,4 +398,3 @@ function node_type_delete_confirm_submit($form_id, $form_values) {
return 'admin/content/types'; return 'admin/content/types';
} }
...@@ -294,6 +294,19 @@ function node_type_save($info) { ...@@ -294,6 +294,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. * Updates all nodes of one type to be of another type.
* *
......
...@@ -818,16 +818,10 @@ function taxonomy_node_delete($nid) { ...@@ -818,16 +818,10 @@ function taxonomy_node_delete($nid) {
*/ */
function taxonomy_node_type($op, $info) { function taxonomy_node_type($op, $info) {
if ($op == 'update' && !empty($info->old_type) && $info->type != $info->old_type) { 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);
db_query("UPDATE {vocabulary_node_types} SET type = '%s' WHERE type = '%s'", $info->type, $info->old_type); }
$num_updated = db_affected_rows(); elseif ($op == 'delete') {
db_query("DELETE FROM {vocabulary_node_types} WHERE type = '%s'", $info->type);
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));
}
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment