? .DS_Store ? sites/.DS_Store ? sites/all/.DS_Store ? sites/all/modules/devel ? sites/all/themes/.DS_Store ? sites/default/files ? sites/default/private ? sites/default/settings.php ? themes/.DS_Store ? themes/goofy/.DS_Store ? themes/goofy/images/.DS_Store Index: modules/node/node.pages.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.pages.inc,v retrieving revision 1.122 diff -u -p -r1.122 node.pages.inc --- modules/node/node.pages.inc 13 Apr 2010 15:23:03 -0000 1.122 +++ modules/node/node.pages.inc 18 Apr 2010 23:16:10 -0000 @@ -13,7 +13,15 @@ function node_page_edit($node) { $type_name = node_type_get_name($node); drupal_set_title(t('Edit @type @title', array('@type' => $type_name, '@title' => $node->title)), PASS_THROUGH); - return drupal_get_form($node->type . '_node_form', $node); + if ($type_name) { + return drupal_get_form($node->type . '_node_form', $node); + } + else { + $page = array(); + $types_link = user_access('administer content types') ? l(t(' Edit content types.'), 'admin/structure/types') : ''; + drupal_set_message(t('This content cannot be edited because the content type %type has been disabled or removed.', array('%type' => $node->type)) . $types_link, 'error'); + return $page; + } } function node_add_page() { Index: modules/node/node.test =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.test,v retrieving revision 1.79 diff -u -p -r1.79 node.test --- modules/node/node.test 13 Apr 2010 23:16:56 -0000 1.79 +++ modules/node/node.test 18 Apr 2010 23:16:10 -0000 @@ -298,6 +298,14 @@ class PageEditTestCase extends DrupalWeb $first_node_version = node_load($node->nid, $node->vid); $second_node_version = node_load($node->nid, $revised_node->vid); $this->assertNotIdentical($first_node_version->revision_uid, $second_node_version->revision_uid, 'Each revision has a distinct user.'); + + // Ensure that the node edit screen throws a message when type no longer exists. + module_enable(array('poll')); + $this->drupalLogin($this->admin_user); + $node = $this->drupalCreateNode(array('type' => 'poll')); + module_disable(array('poll')); + $this->drupalGet("node/$node->nid/edit"); + $this->assertRaw(t('This content cannot be edited because the content type %type has been disabled or removed.', array('%type' => $node->type))); } /**