diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2008-10-08 03:27:56 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2008-10-08 03:27:56 +0000 |
commit | 3a0d4322ae61b3ef7e8514bfc2a6355c8e170019 (patch) | |
tree | a1c40112af38141f1c98f65c7d07cc17c01187c8 | |
parent | 34ec8f9834579098308308c85be484fe5b771995 (diff) | |
download | brdo-3a0d4322ae61b3ef7e8514bfc2a6355c8e170019.tar.gz brdo-3a0d4322ae61b3ef7e8514bfc2a6355c8e170019.tar.bz2 |
#206138 by pwolanin: Rename mis-named 'module' attribute in node types.
-rw-r--r-- | modules/blog/blog.module | 2 | ||||
-rw-r--r-- | modules/book/book.install | 10 | ||||
-rw-r--r-- | modules/forum/forum.module | 2 | ||||
-rw-r--r-- | modules/node/content_types.inc | 25 | ||||
-rw-r--r-- | modules/node/node.install | 24 | ||||
-rw-r--r-- | modules/node/node.module | 144 | ||||
-rw-r--r-- | modules/poll/poll.module | 2 | ||||
-rw-r--r-- | profiles/default/default.profile | 22 |
8 files changed, 122 insertions, 109 deletions
diff --git a/modules/blog/blog.module b/modules/blog/blog.module index c848b90ba..fa5c0ba20 100644 --- a/modules/blog/blog.module +++ b/modules/blog/blog.module @@ -13,7 +13,7 @@ function blog_node_info() { return array( 'blog' => array( 'name' => t('Blog entry'), - 'module' => 'blog', + 'base' => 'blog', 'description' => t('A <em>blog entry</em> is a single post to an online journal, or <em>blog</em>.'), ) ); diff --git a/modules/book/book.install b/modules/book/book.install index 4fb9bdbc6..0da95b941 100644 --- a/modules/book/book.install +++ b/modules/book/book.install @@ -27,14 +27,14 @@ function _book_install_type_create() { $book_node_type = array( 'type' => 'book', 'name' => t('Book page'), - 'module' => 'node', + 'base' => 'node_content', 'description' => t('A <em>book page</em> is a page of content, organized into a collection of related entries collectively known as a <em>book</em>. A <em>book page</em> automatically displays links to adjacent pages, providing a simple navigation system for organizing and reviewing structured content.'), - 'custom' => TRUE, - 'modified' => TRUE, - 'locked' => FALSE, + 'custom' => 1, + 'modified' => 1, + 'locked' => 0, ); - $book_node_type = (object)_node_type_set_defaults($book_node_type); + $book_node_type = node_type_set_defaults($book_node_type); node_type_save($book_node_type); // Default to not promoted. variable_set('node_options_book', array('status')); diff --git a/modules/forum/forum.module b/modules/forum/forum.module index 035f11bd3..e2bd329ac 100644 --- a/modules/forum/forum.module +++ b/modules/forum/forum.module @@ -356,7 +356,7 @@ function forum_node_info() { return array( 'forum' => array( 'name' => t('Forum topic'), - 'module' => 'forum', + 'base' => 'forum', 'description' => t('A <em>forum topic</em> is the initial post to a new discussion thread within a forum.'), 'title_label' => t('Subject'), ) diff --git a/modules/node/content_types.inc b/modules/node/content_types.inc index 504934c24..826deac83 100644 --- a/modules/node/content_types.inc +++ b/modules/node/content_types.inc @@ -50,19 +50,12 @@ function node_overview_types() { */ function node_type_form(&$form_state, $type = NULL) { if (!isset($type->type)) { - $type = new stdClass(); - $type->type = $type->name = $type->module = $type->description = $type->help = ''; - $type->min_word_count = 0; - $type->has_title = TRUE; - $type->has_body = TRUE; - $type->title_label = t('Title'); - $type->body_label = t('Body'); - $type->custom = TRUE; - $type->modified = FALSE; - $type->locked = FALSE; + // This is a new type. Node module managed types are custom and unlocked. + $type = node_type_set_defaults(array('custom' => 1, 'locked' => 0)); } - $form['#node_type'] = $type; // Make the type object available to implementations of hook_form_alter. + // Make the type object available to implementations of hook_form_alter. + $form['#node_type'] = $type; $form['identity'] = array( '#type' => 'fieldset', @@ -170,9 +163,9 @@ function node_type_form(&$form_state, $type = NULL) { '#type' => 'value', '#value' => isset($type->orig_type) ? $type->orig_type : '', ); - $form['module'] = array( + $form['base'] = array( '#type' => 'value', - '#value' => $type->module, + '#value' => $type->base, ); $form['custom'] = array( '#type' => 'value', @@ -253,7 +246,7 @@ function node_type_form_validate($form, &$form_state) { function node_type_form_submit($form, &$form_state) { $op = isset($form_state['values']['op']) ? $form_state['values']['op'] : ''; - $type = new stdClass(); + $type = node_type_set_defaults(); $type->type = trim($form_state['values']['type']); $type->name = trim($form_state['values']['name']); @@ -271,7 +264,7 @@ function node_type_form_submit($form, &$form_state) { $type->has_title = ($type->title_label != ''); $type->has_body = ($type->body_label != ''); - $type->module = !empty($form_state['values']['module']) ? $form_state['values']['module'] : 'node'; + $type->base = !empty($form_state['values']['base']) ? $form_state['values']['base'] : 'node_content'; $type->custom = $form_state['values']['custom']; $type->modified = TRUE; $type->locked = $form_state['values']['locked']; @@ -365,7 +358,7 @@ function node_type_reset(&$type) { $info_array = module_invoke_all('node_info'); if (isset($info_array[$type->orig_type])) { $info_array[$type->orig_type]['type'] = $type->orig_type; - $info = _node_type_set_defaults($info_array[$type->orig_type]); + $info = node_type_set_defaults($info_array[$type->orig_type]); foreach ($info as $field => $value) { $type->$field = $value; diff --git a/modules/node/node.install b/modules/node/node.install index ac2fed9d4..1d6980ccb 100644 --- a/modules/node/node.install +++ b/modules/node/node.install @@ -293,8 +293,8 @@ function node_schema() { 'not null' => TRUE, 'default' => '', ), - 'module' => array( - 'description' => t('The module that implements this type.'), + 'base' => array( + 'description' => t('The base string used to construct callbacks corresponding to this node type.'), 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, @@ -380,3 +380,23 @@ function node_schema() { return $schema; } + +/** + * Drupal 6.x to 7.x updates + */ + +/** + * Fix node type 'module' attribute to avoid name-space conflicts. + */ +function node_update_7000() { + $ret = array(); + + $ret[] = update_sql("UPDATE {node_type} SET module = 'node_content' WHERE module = 'node'"); + db_change_field($ret, 'node_type', 'module', 'base', array('type' => 'varchar', 'length' => 255, 'not null' => TRUE)); + + return $ret; +} + +/** + * End of 6.x to 7.x updates + */ diff --git a/modules/node/node.module b/modules/node/node.module index e9f635694..104c0f1c1 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -465,8 +465,8 @@ function node_get_types($op = 'types', $node = NULL, $reset = FALSE) { return $_node_types; case 'type': return isset($_node_types[$type]) ? $_node_types[$type] : FALSE; - case 'module': - return isset($_node_types[$type]->module) ? $_node_types[$type]->module : FALSE; + case 'base': + return isset($_node_types[$type]->base) ? $_node_types[$type]->base : FALSE; case 'names': return $_node_names; case 'name': @@ -508,32 +508,35 @@ function node_type_save($info) { $is_existing = FALSE; $existing_type = !empty($info->old_type) ? $info->old_type : $info->type; $is_existing = db_result(db_query("SELECT COUNT(*) FROM {node_type} WHERE type = '%s'", $existing_type)); - if (!isset($info->help)) { - $info->help = ''; - } - if (empty($info->min_word_count)) { - $info->min_word_count = 0; - } - if (!isset($info->body_label)) { - $info->body_label = ''; - } - if (empty($info->custom)) { - $info->custom = 0; - } - if (empty($info->locked)) { - $info->locked = 0; - } + $type = node_type_set_defaults($info); + + $fields = array( + 'type' => (string) $type->type, + 'name' => (string) $type->name, + 'base' => (string) $type->base, + 'has_title' => (int) $type->has_title, + 'title_label' => (string) $type->title_label, + 'has_body' => (int) $type->has_body, + 'body_label' => (string) $type->body_label, + 'description' => (string) $type->description, + 'help' => (string) $type->help, + 'min_word_count' => (int) $type->min_word_count, + 'custom' => (int) $type->custom, + 'modified' => (int) $type->modified, + 'locked' => (int) $type->locked, + ); if ($is_existing) { - db_query("UPDATE {node_type} SET type = '%s', name = '%s', module = '%s', has_title = %d, title_label = '%s', has_body = %d, body_label = '%s', description = '%s', help = '%s', min_word_count = %d, custom = %d, modified = %d, locked = %d WHERE type = '%s'", $info->type, $info->name, $info->module, $info->has_title, $info->title_label, $info->has_body, $info->body_label, $info->description, $info->help, $info->min_word_count, $info->custom, $info->modified, $info->locked, $existing_type); + db_update('node_type')->fields($fields)->condition('type', $existing_type)->execute(); - module_invoke_all('node_type', 'update', $info); + module_invoke_all('node_type', 'update', $type); return SAVED_UPDATED; } else { - db_query("INSERT INTO {node_type} (type, name, module, has_title, title_label, has_body, body_label, description, help, min_word_count, custom, modified, locked, orig_type) VALUES ('%s', '%s', '%s', %d, '%s', %d, '%s', '%s', '%s', %d, %d, %d, %d, '%s')", $info->type, $info->name, $info->module, $info->has_title, $info->title_label, $info->has_body, $info->body_label, $info->description, $info->help, $info->min_word_count, $info->custom, $info->modified, $info->locked, $info->orig_type); + $fields['orig_type'] = (string) $type->orig_type; + db_insert('node_type')->fields($fields)->execute(); - module_invoke_all('node_type', 'insert', $info); + module_invoke_all('node_type', 'insert', $type); return SAVED_NEW; } } @@ -580,7 +583,7 @@ function _node_types_build() { $info_array = module_invoke_all('node_info'); foreach ($info_array as $type => $info) { $info['type'] = $type; - $_node_types[$type] = (object) _node_type_set_defaults($info); + $_node_types[$type] = node_type_set_defaults($info); $_node_names[$type] = $info['name']; } @@ -588,8 +591,8 @@ function _node_types_build() { while ($type_object = db_fetch_object($type_result)) { // Check for node types from disabled modules and mark their types for removal. // Types defined by the node module in the database (rather than by a separate - // module using hook_node_info) have a module value of 'node'. - if ($type_object->module != 'node' && empty($info_array[$type_object->type])) { + // module using hook_node_info) have a base value of 'node_content'. + if ($type_object->base != 'node_content' && empty($info_array[$type_object->type])) { $type_object->disabled = TRUE; } if (!isset($_node_types[$type_object->type]) || $type_object->modified) { @@ -609,43 +612,54 @@ function _node_types_build() { } /** - * Set default values for a node type defined through hook_node_info(). + * Set the default values for a node type. + * + * The defaults are for a type defined through hook_node_info(). + * When populating a custom node type $info should have the 'custom' + * key set to 1. + * + * @param $info + * An object or array containing values to override the defaults. + * + * @return + * A node type object. */ -function _node_type_set_defaults($info) { - if (!isset($info['has_title'])) { - $info['has_title'] = TRUE; - } - if ($info['has_title'] && !isset($info['title_label'])) { - $info['title_label'] = t('Title'); - } +function node_type_set_defaults($info = array()) { + static $type; - if (!isset($info['has_body'])) { - $info['has_body'] = TRUE; - } - if ($info['has_body'] && !isset($info['body_label'])) { - $info['body_label'] = t('Body'); + if (!isset($type)) { + $type = new stdClass(); + $type->type = ''; + $type->name = ''; + $type->base = ''; + $type->description = ''; + $type->help = ''; + $type->min_word_count = 0; + $type->has_title = 1; + $type->has_body = 1; + $type->title_label = t('Title'); + $type->body_label = t('Body'); + $type->custom = 0; + $type->modified = 0; + $type->locked = 1; + $type->is_new = 1; } - if (!isset($info['help'])) { - $info['help'] = ''; - } - if (!isset($info['min_word_count'])) { - $info['min_word_count'] = 0; + $new_type = clone $type; + $info = (array) $info; + foreach ($info as $key => $data) { + $new_type->$key = $data; } - if (!isset($info['custom'])) { - $info['custom'] = FALSE; + // If the type has no title or body, set an empty label. + if (!$new_type->has_title) { + $new_type->title_label = ''; } - if (!isset($info['modified'])) { - $info['modified'] = FALSE; + if (!$new_type->has_body) { + $new_type->body_label = ''; } - if (!isset($info['locked'])) { - $info['locked'] = TRUE; - } - - $info['orig_type'] = $info['type']; - $info['is_new'] = TRUE; + $new_type->orig_type = isset($info['type']) ? $info['type'] : ''; - return $info; + return $new_type; } /** @@ -659,12 +673,8 @@ function _node_type_set_defaults($info) { * TRUE iff the $hook exists in the node type of $node. */ function node_hook(&$node, $hook) { - $module = node_get_types('module', $node); - if ($module == 'node') { - // Avoid function name collisions. - $module = 'node_content'; - } - return module_hook($module, $hook); + $base = node_get_types('base', $node); + return module_hook($base, $hook); } /** @@ -681,11 +691,8 @@ function node_hook(&$node, $hook) { */ function node_invoke(&$node, $hook, $a2 = NULL, $a3 = NULL, $a4 = NULL) { if (node_hook($node, $hook)) { - $module = node_get_types('module', $node); - if ($module == 'node') { - $module = 'node_content'; // Avoid function name collisions. - } - $function = $module . '_' . $hook; + $base = node_get_types('base', $node); + $function = $base . '_' . $hook; return ($function($node, $a2, $a3, $a4)); } } @@ -1172,7 +1179,7 @@ function node_perm() { ); foreach (node_get_types() as $type) { - if ($type->module == 'node') { + if ($type->base == 'node_content') { $perms += node_list_permissions($type); } } @@ -2085,11 +2092,8 @@ function node_access($op, $node, $account = NULL) { // Can't use node_invoke('access', $node), because the access hook takes the // $op parameter before the $node parameter. - $module = node_get_types('module', $node); - if ($module == 'node') { - $module = 'node_content'; // Avoid function name collisions. - } - $access = module_invoke($module, 'access', $op, $node, $account); + $base = node_get_types('base', $node); + $access = module_invoke($base, 'access', $op, $node, $account); if (!is_null($access)) { return $access; } diff --git a/modules/poll/poll.module b/modules/poll/poll.module index 71d6129a7..5d547549d 100644 --- a/modules/poll/poll.module +++ b/modules/poll/poll.module @@ -174,7 +174,7 @@ function poll_node_info() { return array( 'poll' => array( 'name' => t('Poll'), - 'module' => 'poll', + 'base' => 'poll', 'description' => t('A <em>poll</em> is a question with a set of possible responses. A <em>poll</em>, once created, automatically provides a simple running count of the number of votes received for each response.'), 'title_label' => t('Question'), 'has_body' => FALSE, diff --git a/profiles/default/default.profile b/profiles/default/default.profile index acd0164bc..db8f9a376 100644 --- a/profiles/default/default.profile +++ b/profiles/default/default.profile @@ -98,29 +98,25 @@ function default_profile_tasks(&$task, $url) { array( 'type' => 'page', 'name' => st('Page'), - 'module' => 'node', + 'base' => 'node_content', 'description' => st("A <em>page</em>, similar in form to an <em>article</em>, is a simple method for creating and displaying information that rarely changes, such as an \"About us\" section of a website. By default, a <em>page</em> entry does not allow visitor comments and is not featured on the site's initial home page."), - 'custom' => TRUE, - 'modified' => TRUE, - 'locked' => FALSE, - 'help' => '', - 'min_word_count' => '', + 'custom' => 1, + 'modified' => 1, + 'locked' => 0, ), array( 'type' => 'article', 'name' => st('Article'), - 'module' => 'node', + 'base' => 'node_content', 'description' => st("An <em>article</em>, similar in form to a <em>page</em>, is ideal for creating and displaying content that informs or engages website visitors. Press releases, site announcements, and informal blog-like entries may all be created with an <em>article</em> entry. By default, an <em>article</em> entry is automatically featured on the site's initial home page, and provides the ability to post comments."), - 'custom' => TRUE, - 'modified' => TRUE, - 'locked' => FALSE, - 'help' => '', - 'min_word_count' => '', + 'custom' => 1, + 'modified' => 1, + 'locked' => 0, ), ); foreach ($types as $type) { - $type = (object) _node_type_set_defaults($type); + $type = node_type_set_defaults($type); node_type_save($type); } |