? .DS_Store ? drupal_common_theme_00.patch ? drupal_common_theme_01.patch ? make_node_optional_11.patch ? make_node_optional_12.patch ? make_node_optional_13.patch ? make_node_optional_14.patch ? performance_settings_08.patch ? performance_settings_09.patch ? performance_settings_10.patch ? remove_fieldset_body_title_02.patch ? vocabulary_form_cleanup_08.patch ? vocabulary_form_cleanup_09.patch ? modules/.DS_Store ? modules/field/.DS_Store ? modules/field/modules/.DS_Store ? profiles/.DS_Store ? sites/.DS_Store ? sites/default/files ? sites/default/settings.php Index: includes/common.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/common.inc,v retrieving revision 1.951 diff -u -p -r1.951 common.inc --- includes/common.inc 31 Jul 2009 19:56:09 -0000 1.951 +++ includes/common.inc 4 Aug 2009 22:38:55 -0000 @@ -4817,8 +4817,7 @@ function drupal_flush_all_caches() { } drupal_theme_rebuild(); - // Rebuild content types, menu will be rebuilt as well. - node_types_rebuild(); + menu_rebuild(); // Don't clear cache_form - in-progress form submissions may break. // Ordered so clearing the page cache will always be the last action. $core = array('cache', 'cache_filter', 'cache_registry', 'cache_page'); Index: includes/locale.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/locale.inc,v retrieving revision 1.221 diff -u -p -r1.221 locale.inc --- includes/locale.inc 30 Jul 2009 08:40:22 -0000 1.221 +++ includes/locale.inc 4 Aug 2009 22:38:57 -0000 @@ -448,10 +448,14 @@ function locale_languages_delete_form_su db_delete('languages') ->condition('language', $form_state['values']['langcode']) ->execute(); - db_update('node') - ->fields(array('language' => '')) - ->condition('language', $form_state['values']['langcode']) - ->execute(); + if (module_exists('node')) { + // TODO: move the {node} update to Content Translation which depends on + // Node. + db_update('node') + ->fields(array('language' => '')) + ->condition('language', $form_state['values']['langcode']) + ->execute(); + } $variables = array('%locale' => $languages[$form_state['values']['langcode']]->name); drupal_set_message(t('The language %locale has been removed.', $variables)); watchdog('locale', 'The language %locale has been removed.', $variables); Index: includes/menu.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/menu.inc,v retrieving revision 1.331 diff -u -p -r1.331 menu.inc --- includes/menu.inc 30 Jul 2009 10:16:48 -0000 1.331 +++ includes/menu.inc 4 Aug 2009 22:38:58 -0000 @@ -750,7 +750,7 @@ function _menu_link_translate(&$item) { * Type of the object. These appear in hook_menu definitions as %type. Core * provides aggregator_feed, aggregator_category, contact, filter_format, * forum_term, menu, menu_link, node, taxonomy_vocabulary, user. See the - * relevant {$type}_load function for more on each. Defaults to node. + * relevant {$type}_load function for more on each. * @param $position * The position of the object in the path, where the first path segment is 0. * For node/%node, the position of %node is 1, but for comment/reply/%node, @@ -758,7 +758,7 @@ function _menu_link_translate(&$item) { * @param $path * See menu_get_item() for more on this. Defaults to the current path. */ -function menu_get_object($type = 'node', $position = 1, $path = NULL) { +function menu_get_object($type, $position = 1, $path = NULL) { $router_item = menu_get_item($path); if (isset($router_item['load_functions'][$position]) && !empty($router_item['map'][$position]) && $router_item['load_functions'][$position] == $type . '_load') { return $router_item['map'][$position]; Index: includes/module.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/module.inc,v retrieving revision 1.149 diff -u -p -r1.149 module.inc --- includes/module.inc 28 Jul 2009 19:06:15 -0000 1.149 +++ includes/module.inc 4 Aug 2009 22:38:58 -0000 @@ -260,8 +260,8 @@ function module_enable($module_list, $di if (!empty($invoke_modules)) { // Refresh the module list to include the new enabled module. module_list(TRUE); - // Force to regenerate the stored list of hook implementations. registry_rebuild(); + menu_rebuild(); // If any modules were newly installed, execute the hook for them. if (!$disable_modules_installed_hook && !empty($modules_installed)) { @@ -271,13 +271,6 @@ function module_enable($module_list, $di foreach ($invoke_modules as $module) { module_invoke($module, 'enable'); - // Check if node_access table needs rebuilding. - // We check for the existence of node_access_needs_rebuild() since - // at install time, module_enable() could be called while node.module - // is not enabled yet. - if (drupal_function_exists('node_access_needs_rebuild') && !node_access_needs_rebuild() && module_hook($module, 'node_grants')) { - node_access_needs_rebuild(TRUE); - } } if (!empty($invoke_modules)) { @@ -297,11 +290,6 @@ function module_disable($module_list) { $invoke_modules = array(); foreach ($module_list as $module) { if (module_exists($module)) { - // Check if node_access table needs rebuilding. - if (!node_access_needs_rebuild() && module_hook($module, 'node_grants')) { - node_access_needs_rebuild(TRUE); - } - module_load_install($module); module_invoke($module, 'disable'); db_update('system') @@ -322,12 +310,8 @@ function module_disable($module_list) { module_list(TRUE); // Force to regenerate the stored list of hook implementations. registry_rebuild(); - } - - // If there remains no more node_access module, rebuilding will be - // straightforward, we can do it right now. - if (node_access_needs_rebuild() && count(module_implements('node_grants')) == 0) { - node_access_rebuild(); + // Rebuild the menu. + menu_rebuild(); } } Index: includes/path.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/path.inc,v retrieving revision 1.44 diff -u -p -r1.44 path.inc --- includes/path.inc 2 Aug 2009 06:48:24 -0000 1.44 +++ includes/path.inc 4 Aug 2009 22:38:58 -0000 @@ -18,7 +18,7 @@ function drupal_path_initialize() { $_GET['q'] = drupal_get_normal_path(trim($_GET['q'], '/')); } else { - $_GET['q'] = drupal_get_normal_path(variable_get('site_frontpage', 'node')); + $_GET['q'] = drupal_get_normal_path(variable_get('site_frontpage', 'frontpage')); } } @@ -308,7 +308,7 @@ function drupal_is_front_page() { if (!isset($is_front_page)) { // As drupal_path_initialize updates $_GET['q'] with the 'site_frontpage' path, // we can check it against the 'site_frontpage' variable. - $is_front_page = ($_GET['q'] == drupal_get_normal_path(variable_get('site_frontpage', 'node'))); + $is_front_page = ($_GET['q'] == drupal_get_normal_path(variable_get('site_frontpage', 'frontpage'))); } return $is_front_page; @@ -329,7 +329,7 @@ function drupal_match_path($path, $patte $regexps = &drupal_static(__FUNCTION__); if (!isset($regexps[$patterns])) { - $regexps[$patterns] = '/^(' . preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\($|\|)/'), array('|', '.*', '\1' . preg_quote(variable_get('site_frontpage', 'node'), '/') . '\2'), preg_quote($patterns, '/')) . ')$/'; + $regexps[$patterns] = '/^(' . preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\($|\|)/'), array('|', '.*', '\1' . preg_quote(variable_get('site_frontpage', 'frontpage'), '/') . '\2'), preg_quote($patterns, '/')) . ')$/'; } return (bool)preg_match($regexps[$patterns], $path); } Index: includes/theme.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/theme.inc,v retrieving revision 1.502 diff -u -p -r1.502 theme.inc --- includes/theme.inc 3 Aug 2009 03:04:33 -0000 1.502 +++ includes/theme.inc 4 Aug 2009 22:38:59 -0000 @@ -1937,10 +1937,6 @@ function template_preprocess_page(&$vari $variables['rdf_namespaces'] = drupal_get_rdf_namespaces(); $variables['grddl_profile'] = 'http://ns.inria.fr/grddl/rdfa/'; - if ($node = menu_get_object()) { - $variables['node'] = $node; - } - // Compile a list of classes that are going to be applied to the body element. // This allows advanced theming based on context (home page, node of certain type, etc.). // Add a class that tells us whether we're on the front page or not. @@ -1963,10 +1959,6 @@ function template_preprocess_page(&$vari } } - // If on an individual node page, add the node type to body classes. - if (isset($variables['node']) && $variables['node']->type) { - $variables['classes_array'][] = 'node-type-' . form_clean_id($variables['node']->type); - } // Add information about the number of sidebars. if ($variables['layout'] == 'both') { $variables['classes_array'][] = 'two-sidebars'; Index: modules/aggregator/aggregator.test =================================================================== RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.test,v retrieving revision 1.28 diff -u -p -r1.28 aggregator.test --- modules/aggregator/aggregator.test 30 Jul 2009 19:24:20 -0000 1.28 +++ modules/aggregator/aggregator.test 4 Aug 2009 22:38:59 -0000 @@ -8,7 +8,7 @@ class AggregatorTestCase extends DrupalWebTestCase { function setUp() { - parent::setUp('aggregator', 'aggregator_test'); + parent::setUp('node', 'aggregator', 'aggregator_test'); $web_user = $this->drupalCreateUser(array('administer news feeds', 'access news feeds', 'create article content')); $this->drupalLogin($web_user); } Index: modules/block/block.admin.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/block/block.admin.inc,v retrieving revision 1.47 diff -u -p -r1.47 block.admin.inc --- modules/block/block.admin.inc 20 Jul 2009 18:51:32 -0000 1.47 +++ modules/block/block.admin.inc 4 Aug 2009 22:39:00 -0000 @@ -252,25 +252,6 @@ function block_admin_configure(&$form_st '#description' => t('Show this block only for the selected role(s). If you select no roles, the block will be visible to all users.'), ); - // Content type specific configuration. - $default_type_options = db_query("SELECT type FROM {block_node_type} WHERE module = :module AND delta = :delta", array( - ':module' => $module, - ':delta' => $delta, - ))->fetchCol(); - $form['content_type_vis_settings'] = array( - '#type' => 'fieldset', - '#title' => t('Content type specific visibility settings'), - '#collapsible' => TRUE, - '#collapsed' => TRUE, - ); - $form['content_type_vis_settings']['types'] = array( - '#type' => 'checkboxes', - '#title' => t('Show block for specific content types'), - '#default_value' => $default_type_options, - '#options' => node_type_get_names(), - '#description' => t('Show this block only when on a page displaying a post of the given type(s). If you select no types, there will be no type specific limitation.'), - ); - // Standard block configurations. $form['user_vis_settings'] = array( '#type' => 'fieldset', @@ -337,20 +318,6 @@ function block_admin_configure_submit($f } $query->execute(); - db_delete('block_node_type') - ->condition('module', $form_state['values']['module']) - ->condition('delta', $form_state['values']['delta']) - ->execute(); - $query = db_insert('block_node_type')->fields(array('type', 'module', 'delta')); - foreach (array_filter($form_state['values']['types']) as $type) { - $query->values(array( - 'type' => $type, - 'module' => $form_state['values']['module'], - 'delta' => $form_state['values']['delta'], - )); - } - $query->execute(); - module_invoke($form_state['values']['module'], 'block_save', $form_state['values']['delta'], $form_state['values']); drupal_set_message(t('The block configuration has been saved.')); cache_clear_all(); @@ -414,16 +381,6 @@ function block_add_block_form_submit($fo } $query->execute(); - $query = db_insert('block_node_type')->fields(array('type', 'module', 'delta')); - foreach (array_filter($form_state['values']['types']) as $type) { - $query->values(array( - 'type' => $type, - 'module' => $form_state['values']['module'], - 'delta' => $delta, - )); - } - $query->execute(); - drupal_set_message(t('The block has been created.')); cache_clear_all(); $form_state['redirect'] = 'admin/structure/block'; Index: modules/block/block.install =================================================================== RCS file: /cvs/drupal/drupal/modules/block/block.install,v retrieving revision 1.30 diff -u -p -r1.30 block.install --- modules/block/block.install 2 Aug 2009 08:16:16 -0000 1.30 +++ modules/block/block.install 4 Aug 2009 22:39:00 -0000 @@ -131,34 +131,6 @@ function block_schema() { ), ); - $schema['block_node_type'] = array( - 'description' => 'Sets up display criteria for blocks based on content types', - 'fields' => array( - 'module' => array( - 'type' => 'varchar', - 'length' => 64, - 'not null' => TRUE, - 'description' => "The block's origin module, from {block}.module.", - ), - 'delta' => array( - 'type' => 'varchar', - 'length' => 32, - 'not null' => TRUE, - 'description' => "The block's unique delta within module, from {block}.delta.", - ), - 'type' => array( - 'type' => 'varchar', - 'length' => 32, - 'not null' => TRUE, - 'description' => "The machine-readable name of this type from {node_type}.type.", - ), - ), - 'primary key' => array('module', 'delta', 'type'), - 'indexes' => array( - 'type' => array('type'), - ), - ); - $schema['box'] = array( 'description' => 'Stores contents of custom-made blocks.', 'fields' => array( Index: modules/block/block.module =================================================================== RCS file: /cvs/drupal/drupal/modules/block/block.module,v retrieving revision 1.353 diff -u -p -r1.353 block.module --- modules/block/block.module 3 Aug 2009 03:04:33 -0000 1.353 +++ modules/block/block.module 4 Aug 2009 22:39:00 -0000 @@ -477,8 +477,6 @@ function block_form_system_performance_s '#title' => t('Block cache'), '#default_value' => variable_get('block_cache', CACHE_DISABLED), '#options' => array(CACHE_DISABLED => t('Disabled'), CACHE_NORMAL => t('Enabled (recommended)')), - '#disabled' => count(module_implements('node_grants')), - '#description' => t('Note that block caching is inactive when modules defining content access restrictions are enabled.'), ); // Check if the "Who's online" block is enabled. @@ -619,7 +617,7 @@ function _block_load_blocks() { /** * Implement hook_block_list_alter(). * - * Check the page, user role, content type and user specific visibilty settings. + * Check the page, user role and user specific visibilty settings. * Remove the block if the visibility conditions are not met. */ function block_block_list_alter(&$blocks) { @@ -632,13 +630,6 @@ function block_block_list_alter(&$blocks $block_roles[$record->module][$record->delta][] = $record->rid; } - // Build an array of node types for each block. - $block_node_types = array(); - $result = db_query('SELECT module, delta, type FROM {block_node_type}'); - foreach ($result as $record) { - $block_node_types[$record->module][$record->delta][] = $record->type; - } - foreach ($blocks as $key => $block) { if ($block->theme != $theme_key || $block->status != 1) { // This block was added by a contrib module, leave it in the list. @@ -654,34 +645,6 @@ function block_block_list_alter(&$blocks continue; } - // If a block has no node types associated, it is displayed for every type. - // For blocks with node types associated, if the node type does not match - // the settings from this block, remove it from the block list. - if (isset($block_node_types[$block->module][$block->delta])) { - $node = menu_get_object(); - if (!empty($node)) { - // This is a node or node edit page. - if (!in_array($node->type, $block_node_types[$block->module][$block->delta])) { - // This block should not be displayed for this node type. - unset($blocks[$key]); - continue; - } - } - elseif (arg(0) == 'node' && arg(1) == 'add' && in_array(arg(2), array_keys(node_type_get_types()))) { - // This is a node creation page - if (!in_array(arg(2), $block_node_types[$block->module][$block->delta])) { - // This block should not be displayed for this node type. - unset($blocks[$key]); - continue; - } - } - else { - // This is not a node page, remove the block. - unset($blocks[$key]); - continue; - } - } - // Use the user's block visibility setting, if necessary. if ($block->custom != 0) { if ($user->uid && isset($user->block[$block->module][$block->delta])) { Index: modules/block/block.test =================================================================== RCS file: /cvs/drupal/drupal/modules/block/block.test,v retrieving revision 1.25 diff -u -p -r1.25 block.test --- modules/block/block.test 3 Aug 2009 03:04:33 -0000 1.25 +++ modules/block/block.test 4 Aug 2009 22:39:00 -0000 @@ -104,9 +104,9 @@ class BlockTestCase extends DrupalWebTes */ function testBlockVisibility() { $block = array(); - $block['title'] = 'Syndicate'; - $block['module'] = 'node'; - $block['delta'] = 'syndicate'; + $block['title'] = 'Powered by Drupal'; + $block['module'] = 'system'; + $block['delta'] = 'powered-by'; // Set the block to be hidden on any user path, and to be shown only to // authenticated users. @@ -119,15 +119,15 @@ class BlockTestCase extends DrupalWebTes $this->moveBlockToRegion($block, $this->regions[1]); $this->drupalGet(''); - $this->assertText('Syndicate', t('Block was displayed on the front page.')); + $this->assertText($block['title'], t('Block was displayed on the front page.')); $this->drupalGet('user*'); - $this->assertNoText('Syndicate', t('Block was not displayed according to block visibility rules.')); + $this->assertNoText($block['title'], t('Block was not displayed according to block visibility rules.')); // Confirm that the block is not displayed to anonymous users. $this->drupalLogout(); $this->drupalGet(''); - $this->assertNoText('Syndicate', t('Block was not displayed to anonymous users.')); + $this->assertNoText($block['title'], t('Block was not displayed to anonymous users.')); } /** Index: modules/blog/blog.info =================================================================== RCS file: /cvs/drupal/drupal/modules/blog/blog.info,v retrieving revision 1.11 diff -u -p -r1.11 blog.info --- modules/blog/blog.info 8 Jun 2009 09:23:51 -0000 1.11 +++ modules/blog/blog.info 4 Aug 2009 22:39:00 -0000 @@ -8,3 +8,4 @@ core = 7.x files[] = blog.module files[] = blog.pages.inc files[] = blog.test +dependencies[] = node \ No newline at end of file Index: modules/blogapi/blogapi.test =================================================================== RCS file: /cvs/drupal/drupal/modules/blogapi/blogapi.test,v retrieving revision 1.15 diff -u -p -r1.15 blogapi.test --- modules/blogapi/blogapi.test 13 Jul 2009 21:51:09 -0000 1.15 +++ modules/blogapi/blogapi.test 4 Aug 2009 22:39:00 -0000 @@ -11,7 +11,7 @@ class BlogAPITestCase extends DrupalWebT } function setUp() { - parent::setUp('blog', 'blogapi', 'taxonomy'); + parent::setUp('node', 'blog', 'blogapi', 'taxonomy'); // Force loading the xmlrpc.inc to have the xmlrpc() function. drupal_function_exists('xmlrpc'); Index: modules/book/book.info =================================================================== RCS file: /cvs/drupal/drupal/modules/book/book.info,v retrieving revision 1.12 diff -u -p -r1.12 book.info --- modules/book/book.info 8 Jun 2009 09:23:51 -0000 1.12 +++ modules/book/book.info 4 Aug 2009 22:39:00 -0000 @@ -10,3 +10,4 @@ files[] = book.admin.inc files[] = book.pages.inc files[] = book.install files[] = book.test +dependencies[] = node \ No newline at end of file Index: modules/book/book.test =================================================================== RCS file: /cvs/drupal/drupal/modules/book/book.test,v retrieving revision 1.13 diff -u -p -r1.13 book.test --- modules/book/book.test 20 Jul 2009 18:51:32 -0000 1.13 +++ modules/book/book.test 4 Aug 2009 22:39:00 -0000 @@ -13,7 +13,7 @@ class BookTestCase extends DrupalWebTest } function setUp() { - parent::setUp('book'); + parent::setUp('node', 'book'); } /** @@ -205,7 +205,7 @@ class BookBlockTestCase extends DrupalWe } function setUp() { - parent::setUp('book'); + parent::setUp('node', 'book'); // Create and login user $admin_user = $this->drupalCreateUser(array('administer blocks')); Index: modules/comment/comment.info =================================================================== RCS file: /cvs/drupal/drupal/modules/comment/comment.info,v retrieving revision 1.10 diff -u -p -r1.10 comment.info --- modules/comment/comment.info 8 Jun 2009 09:23:51 -0000 1.10 +++ modules/comment/comment.info 4 Aug 2009 22:39:01 -0000 @@ -10,3 +10,4 @@ files[] = comment.admin.inc files[] = comment.pages.inc files[] = comment.install files[] = comment.test +dependencies[] = node \ No newline at end of file Index: modules/dblog/dblog.test =================================================================== RCS file: /cvs/drupal/drupal/modules/dblog/dblog.test,v retrieving revision 1.24 diff -u -p -r1.24 dblog.test --- modules/dblog/dblog.test 31 Jul 2009 19:01:01 -0000 1.24 +++ modules/dblog/dblog.test 4 Aug 2009 22:39:01 -0000 @@ -17,7 +17,7 @@ class DBLogTestCase extends DrupalWebTes * Enable modules and create users with specific permissions. */ function setUp() { - parent::setUp('dblog', 'blog', 'poll'); + parent::setUp('dblog', 'node', 'blog', 'poll'); // Create users. $this->big_user = $this->drupalCreateUser(array('administer site configuration', 'access administration pages', 'access site reports', 'administer users')); $this->any_user = $this->drupalCreateUser(array()); Index: modules/field/modules/number/number.module =================================================================== RCS file: /cvs/drupal/drupal/modules/field/modules/number/number.module,v retrieving revision 1.11 diff -u -p -r1.11 number.module --- modules/field/modules/number/number.module 1 Aug 2009 06:03:12 -0000 1.11 +++ modules/field/modules/number/number.module 4 Aug 2009 22:39:01 -0000 @@ -94,7 +94,7 @@ function number_field_schema($field) { * - 'number_min': The value is smaller than the allowed minimum value. * - 'number_max': The value is larger than the allowed maximum value. */ -function number_field_validate($obj_type, $node, $field, $instance, $items, &$errors) { +function number_field_validate($obj_type, $object, $field, $instance, $items, &$errors) { foreach ($items as $delta => $item) { if ($item['value'] != '') { if (is_numeric($instance['settings']['min']) && $item['value'] < $instance['settings']['min']) { Index: modules/filter/filter.test =================================================================== RCS file: /cvs/drupal/drupal/modules/filter/filter.test,v retrieving revision 1.28 diff -u -p -r1.28 filter.test --- modules/filter/filter.test 27 Jul 2009 20:15:35 -0000 1.28 +++ modules/filter/filter.test 4 Aug 2009 22:39:02 -0000 @@ -9,6 +9,10 @@ class FilterAdminTestCase extends Drupal 'group' => 'Filter', ); } + + function setUp() { + parent::setUp('node'); + } /** * Test filter administration functionality. Index: modules/forum/forum.info =================================================================== RCS file: /cvs/drupal/drupal/modules/forum/forum.info,v retrieving revision 1.12 diff -u -p -r1.12 forum.info --- modules/forum/forum.info 8 Jun 2009 09:23:52 -0000 1.12 +++ modules/forum/forum.info 4 Aug 2009 22:39:02 -0000 @@ -2,6 +2,7 @@ name = Forum description = Provides discussion forums. dependencies[] = taxonomy +dependencies[] = node dependencies[] = comment package = Core version = VERSION Index: modules/forum/forum.test =================================================================== RCS file: /cvs/drupal/drupal/modules/forum/forum.test,v retrieving revision 1.27 diff -u -p -r1.27 forum.test --- modules/forum/forum.test 3 Aug 2009 03:04:33 -0000 1.27 +++ modules/forum/forum.test 4 Aug 2009 22:39:02 -0000 @@ -23,7 +23,7 @@ class ForumTestCase extends DrupalWebTes * Enable modules and create users with specific permissions. */ function setUp() { - parent::setUp('taxonomy', 'comment', 'forum'); + parent::setUp('node', 'taxonomy', 'comment', 'forum'); // Create users. $this->big_user = $this->drupalCreateUser(array('administer blocks', 'administer forums', 'administer menu', 'administer taxonomy', 'create forum content')); // 'access administration pages')); $this->own_user = $this->drupalCreateUser(array('create forum content', 'edit own forum content', 'delete own forum content')); Index: modules/help/help.module =================================================================== RCS file: /cvs/drupal/drupal/modules/help/help.module,v retrieving revision 1.86 diff -u -p -r1.86 help.module --- modules/help/help.module 31 Jul 2009 11:20:42 -0000 1.86 +++ modules/help/help.module 4 Aug 2009 22:39:02 -0000 @@ -41,7 +41,9 @@ function help_help($path, $arg) { $output .= '
  • ' . t('Configure your website Once logged in, visit the administration section, where you can customize and configure all aspects of your website.', array('@admin' => url('admin'), '@config' => url('admin/settings'))) . '
  • '; $output .= '
  • ' . t('Enable additional functionality Next, visit the module list and enable features which suit your specific needs. You can find additional modules in the Drupal modules download section.', array('@modules' => url('admin/structure/modules'), '@download_modules' => 'http://drupal.org/project/modules')) . '
  • '; $output .= '
  • ' . t('Customize your website design To change the "look and feel" of your website, visit the themes section. You may choose from one of the included themes or download additional themes from the Drupal themes download section.', array('@themes' => url('admin/appearance'), '@download_themes' => 'http://drupal.org/project/themes')) . '
  • '; - $output .= '
  • ' . t('Start posting content Finally, you can add new content for your website.', array('@content' => url('node/add'))) . '
  • '; + if (module_exists('node')) { + $output .= '
  • ' . t('Start posting content Finally, you can add new content for your website.', array('@content' => url('node/add'))) . '
  • '; + } $output .= ''; $output .= '

    ' . t('For more information, please refer to the specific topics listed in the next section, or the online Drupal handbooks. You may also post at the Drupal forum, or view the wide range of other support options available.', array('@help' => url('admin/help'), '@handbook' => 'http://drupal.org/handbooks', '@forum' => 'http://drupal.org/forum', '@support' => 'http://drupal.org/support')) . '

    '; return $output; Index: modules/locale/locale.install =================================================================== RCS file: /cvs/drupal/drupal/modules/locale/locale.install,v retrieving revision 1.46 diff -u -p -r1.46 locale.install --- modules/locale/locale.install 14 Jul 2009 10:22:17 -0000 1.46 +++ modules/locale/locale.install 4 Aug 2009 22:39:02 -0000 @@ -74,10 +74,6 @@ function locale_uninstall() { variable_del('locale_cache_strings'); variable_del('locale_js_directory'); - foreach (node_type_get_types() as $type => $content_type) { - $setting = variable_del('language_content_type_' . $type); - } - // Switch back to English: with a $language->language value different from 'en' // successive calls of t() might result in calling locale(), which in turn might // try to query the unexisting {locales_source} and {locales_target} tables. Index: modules/locale/locale.module =================================================================== RCS file: /cvs/drupal/drupal/modules/locale/locale.module,v retrieving revision 1.246 diff -u -p -r1.246 locale.module --- modules/locale/locale.module 2 Aug 2009 15:44:08 -0000 1.246 +++ modules/locale/locale.module 4 Aug 2009 22:39:02 -0000 @@ -277,45 +277,6 @@ function locale_form_path_admin_form_alt } /** - * Implement hook_form_FORM_ID_alter(). - */ -function locale_form_node_type_form_alter(&$form, &$form_state) { - if (isset($form['identity']['type'])) { - $form['workflow']['language_content_type'] = array( - '#type' => 'radios', - '#title' => t('Multilingual support'), - '#default_value' => variable_get('language_content_type_' . $form['#node_type']->type, 0), - '#options' => array(t('Disabled'), t('Enabled')), - '#description' => t('Enable multilingual support for this content type. If enabled, a language selection field will be added to the editing form, allowing you to select from one of the enabled languages. If disabled, new posts are saved with the default language. Existing content will not be affected by changing this option.', array('!languages' => url('admin/international/language'))), - ); - } -} - -/** - * Implement hook_form_alter(). Adds language fields to forms. - */ -function locale_form_alter(&$form, &$form_state, $form_id) { - if (isset($form['#id']) && $form['#id'] == 'node-form') { - if (isset($form['#node']->type) && variable_get('language_content_type_' . $form['#node']->type, 0)) { - $form['language'] = array( - '#type' => 'select', - '#title' => t('Language'), - '#default_value' => (isset($form['#node']->language) ? $form['#node']->language : ''), - '#options' => array('' => t('Language neutral')) + locale_language_list('name'), - ); - } - // Node type without language selector: assign the default for new nodes - elseif (!isset($form['#node']->nid)) { - $default = language_default(); - $form['language'] = array( - '#type' => 'value', - '#value' => $default->language - ); - } - } -} - -/** * Implement hook_theme(). */ function locale_theme() { Index: modules/locale/locale.test =================================================================== RCS file: /cvs/drupal/drupal/modules/locale/locale.test,v retrieving revision 1.33 diff -u -p -r1.33 locale.test --- modules/locale/locale.test 3 Aug 2009 03:04:33 -0000 1.33 +++ modules/locale/locale.test 4 Aug 2009 22:39:03 -0000 @@ -1216,7 +1216,7 @@ class LocalePathFunctionalTest extends D } function setUp() { - parent::setUp('locale', 'path'); + parent::setUp('node', 'locale', 'path'); } /** @@ -1299,7 +1299,7 @@ class LocaleContentFunctionalTest extend } function setUp() { - parent::setUp('locale'); + parent::setUp('node', 'locale'); } /** Index: modules/node/content_types.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/node/content_types.inc,v retrieving revision 1.84 diff -u -p -r1.84 content_types.inc --- modules/node/content_types.inc 29 Jul 2009 06:39:34 -0000 1.84 +++ modules/node/content_types.inc 4 Aug 2009 22:39:03 -0000 @@ -163,12 +163,20 @@ function node_type_form(&$form_state, $t '#default_value' => variable_get('node_options_' . $type->type, array('status', 'promote')), '#options' => array( 'status' => t('Published'), - 'promote' => t('Promoted to front page'), + 'promote' => t('Promoted to /node'), 'sticky' => t('Sticky at top of lists'), 'revision' => t('Create new revision'), ), '#description' => t('Users with the administer nodes permission will be able to override these options.'), ); + if (module_exists('locale')) { + $form['workflow']['node_type_language'] = array( + '#type' => 'checkbox', + '#title' => t('Multilingual support'), + '#default_value' => variable_get('node_type_language_' . $form['#node_type']->type, 0), + '#description' => t('Add a language selection field to the editing form, allowing you to select from one of the enabled languages. If disabled, new posts are saved with the default language. Existing content will not be affected by changing this option.', array('!languages' => url('admin/international/language'))), + ); + } $form['display'] = array( '#type' => 'fieldset', '#title' => t('Display settings'), Index: modules/node/node.admin.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.admin.inc,v retrieving revision 1.60 diff -u -p -r1.60 node.admin.inc --- modules/node/node.admin.inc 30 Jul 2009 19:24:21 -0000 1.60 +++ modules/node/node.admin.inc 4 Aug 2009 22:39:04 -0000 @@ -7,6 +7,116 @@ */ /** + * Implement hook_form_FORM_ID_alter(). + */ +function node_form_system_themes_form_alter(&$form, $form_state) { + $form['admin_theme']['node_admin_theme'] = array( + '#type' => 'checkbox', + '#title' => t('Use administration theme for content editing'), + '#description' => t('Use the administration theme when editing existing posts or creating new ones.'), + '#default_value' => variable_get('node_admin_theme', '0'), + ); +} + +/** + * Implement hook_form_FORM_ID_alter(). + */ +function node_form_block_admin_configure_alter(&$form, $form_state) { + if (count(node_type_get_names())) { + $form['#submit'][] = 'node_block_admin_configure_submit'; + $default_type_options = db_query("SELECT type FROM {node_block_visibility} WHERE module = :module AND delta = :delta", array( + ':module' => $form['module']['#value'], + ':delta' => $form['delta']['#value'], + ))->fetchCol(); + $form['content_type_vis_settings'] = array( + '#type' => 'fieldset', + '#title' => t('Content type specific visibility settings'), + '#collapsible' => TRUE, + '#collapsed' => TRUE, + ); + $form['content_type_vis_settings']['types'] = array( + '#type' => 'checkboxes', + '#title' => t('Show block for specific content types'), + '#default_value' => $default_type_options, + '#options' => node_type_get_names(), + '#description' => t('Show this block only when on a page displaying a post of the given type(s). If you select no types, there will be no type specific limitation.'), + ); + $form['submit']['#weight'] = 1; + } +} + +/** + * Form submit handler for block_admin_configure(). + */ +function node_block_admin_configure_submit($form, &$form_state) { + $values = $form_state['values']; + db_delete('node_block_visibility') + ->condition('module', $values['module']) + ->condition('delta', $values['delta']) + ->execute(); + $query = db_insert('node_block_visibility')->fields(array('type', 'module', 'delta')); + foreach (array_filter($values['types']) as $type) { + $query->values(array( + 'type' => $type, + 'module' => $values['module'], + 'delta' => $values['delta'], + )); + } + $query->execute(); +} + +/** + * Implement hook_form_FORM_ID_alter(). + */ +function node_form_block_add_block_form_alter(&$form, $form_state) { + node_form_block_admin_configure_alter($form); +} + +/** + * Implement hook_form_FORM_ID_alter(). + */ +function node_form_system_performance_settings_alter($form, &$form_state) { + if (count(module_implements('node_grants'))) { + $form['block_cache']['block_cache'] = array( + '#disabled' => TRUE, + '#description' => t('Block caching is inactive because modules defining content access restrictions are enabled.'), + ); + } +} + +/** + * Implement hook_modules_enabled(). + */ +function node_modules_enabled($modules) { + node_types_rebuild(); + foreach ($modules as $module) { + if (!node_access_needs_rebuild() && module_hook($module, 'node_grants')) { + node_access_needs_rebuild(TRUE); + } + } +} + +/** + * Implement hook_modules_disabled(). + */ +function node_modules_disabled($modules) { + if (!node_access_needs_rebuild()) { + $node_grants = array(); + foreach ($modules as $module) { + // Check if node_access table needs rebuilding. + if (module_hook($module, 'node_grants')) { + $node_grants = $module; + } + } + + // If there remains no more node_access module, rebuild permissions. + if (!empty($node_grants) && count(array_diff(module_implements('node_grants'), $node_grants)) == 0) { + node_access_rebuild(); + } + } +} + +/** * Menu callback: confirm rebuilding of permissions. */ function node_configure_rebuild_confirm() { Index: modules/node/node.info =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.info,v retrieving revision 1.11 diff -u -p -r1.11 node.info --- modules/node/node.info 8 Jun 2009 09:23:53 -0000 1.11 +++ modules/node/node.info 4 Aug 2009 22:39:04 -0000 @@ -1,5 +1,5 @@ ; $Id: node.info,v 1.11 2009/06/08 09:23:53 dries Exp $ -name = Node +name = Content description = Allows content to be submitted to the site and displayed on pages. package = Core version = VERSION @@ -10,4 +10,3 @@ files[] = node.admin.inc files[] = node.pages.inc files[] = node.install files[] = node.test -required = TRUE Index: modules/node/node.install =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.install,v retrieving revision 1.25 diff -u -p -r1.25 node.install --- modules/node/node.install 27 Jul 2009 19:26:31 -0000 1.25 +++ modules/node/node.install 4 Aug 2009 22:39:04 -0000 @@ -331,10 +331,102 @@ function node_schema() { 'primary key' => array('type'), ); + $schema['history'] = array( + 'description' => 'A record of which {users} have read which {node}s.', + 'fields' => array( + 'uid' => array( + 'description' => 'The {users}.uid that read the {node} nid.', + 'type' => 'int', + 'not null' => TRUE, + 'default' => 0, + ), + 'nid' => array( + 'description' => 'The {node}.nid that was read.', + 'type' => 'int', + 'not null' => TRUE, + 'default' => 0, + ), + 'timestamp' => array( + 'description' => 'The Unix timestamp at which the read occurred.', + 'type' => 'int', + 'not null' => TRUE, + 'default' => 0, + ), + ), + 'primary key' => array('uid', 'nid'), + 'indexes' => array( + 'nid' => array('nid'), + ), + ); + + $schema['node_block_visibility'] = array( + 'description' => 'Sets up display criteria for blocks based on content types', + 'fields' => array( + 'module' => array( + 'type' => 'varchar', + 'length' => 64, + 'not null' => TRUE, + 'description' => "The block's origin module, from {block}.module.", + ), + 'delta' => array( + 'type' => 'varchar', + 'length' => 32, + 'not null' => TRUE, + 'description' => "The block's unique delta within module, from {block}.delta.", + ), + 'type' => array( + 'type' => 'varchar', + 'length' => 32, + 'not null' => TRUE, + 'description' => "The machine-readable name of this type from {node_type}.type.", + ), + ), + 'primary key' => array('module', 'delta', 'type'), + 'indexes' => array( + 'type' => array('type'), + ), + ); + return $schema; } /** + * Implementation of hook_install(). + */ +function node_install() { + drupal_install_schema('node'); + + db_insert('node_access') + ->fields(array( + 'nid' => 0, + 'gid' => 0, + 'realm' => 'all', + 'grant_view' => 1, + 'grant_update' => 0, + 'grant_delete' => 0, + )) + ->execute(); + + variable_set('node_options_forum', array(0 => 'status')); +} + +/** + * Implementation of hook_uninstall(). + */ +function node_uninstall() { + global $conf; + + $variables = db_query("SELECT name FROM {variable} WHERE name LIKE 'node_%'")->fetchCol(); + foreach ($variables as $variable) { + unset($conf[$variable]); + } + db_query("DELETE FROM {variable} WHERE name LIKE 'node_%'"); + cache_clear_all('variables', 'cache'); + + drupal_uninstall_schema('node'); +} + +/** * @defgroup updates-6.x-to-7.x System updates from 6.x to 7.x * @{ */ Index: modules/node/node.js =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.js,v retrieving revision 1.4 diff -u -p -r1.4 node.js --- modules/node/node.js 27 Apr 2009 20:19:37 -0000 1.4 +++ modules/node/node.js 4 Aug 2009 22:39:04 -0000 @@ -29,6 +29,11 @@ Drupal.behaviors.nodeFieldsetSummaries = } return vals.join(', '); }); + + $('fieldset#edit-language-information', context).setSummary(function (context) { + var element = $('#edit-language-1'); + return element.find('option[value=' + element.val() + ']').text(); + }); } }; Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.1090 diff -u -p -r1.1090 node.module --- modules/node/node.module 31 Jul 2009 19:01:02 -0000 1.1090 +++ modules/node/node.module 4 Aug 2009 22:39:06 -0000 @@ -174,6 +174,38 @@ function node_field_build_modes($obj_typ } /** + * Implement hook_block_list_alter(). + */ +function node_block_list_alter(&$blocks) { + global $user, $theme_key; + + // Check if this is a node page and store the node type. + $node = menu_get_object('node'); + if ($node) { + $node_type = $node->type; + } + elseif (arg(0) == 'node' && arg(1) == 'add') { + $node_type = arg(2); + } + + if (isset($node_type)) { + // Build an array of node types for each block. + $block_node_types = array(); + $result = db_query("SELECT module, delta, type FROM {node_block_visibility}"); + foreach ($result as $record) { + $block_node_types[$record->module][$record->delta][] = $record->type; + } + + foreach ($blocks as &$block) { + // Only apply restrictions to the current theme's active blocks. + if ($block->theme == $theme_key && $block->status == 1 && isset($block_node_types[$block->module][$block->delta]) && !in_array($node_type, $block_node_types[$block->module][$block->delta])) { + unset($block); + } + } + } +} + +/** * Gather a listing of links to nodes. * * @param $result @@ -387,8 +419,6 @@ function node_types_rebuild() { // Reset cached node type information so that the next access // will use the updated data. node_type_clear(); - // This is required for proper menu items at node/add/type. - menu_rebuild(); } /** @@ -517,6 +547,10 @@ function node_type_delete($type) { db_delete('node_type') ->condition('type', $type) ->execute(); + db_delete('node_block_visibility') + ->condition('type', $type) + ->execute(); + variable_del('node_type_language_' . $type); module_invoke_all('node_type', 'delete', $info); } @@ -1699,7 +1733,7 @@ function node_menu() { ); $items['node'] = array( 'title' => 'Content', - 'page callback' => 'node_page_default', + 'page callback' => 'node_page', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); @@ -1971,7 +2005,7 @@ function node_build_multiple($nodes, $bu /** * Menu callback; Generate a listing of promoted nodes. */ -function node_page_default() { +function node_page() { $select = db_select('node', 'n') ->fields('n', array('nid')) ->condition('promote', 1) @@ -1994,27 +2028,17 @@ function node_page_default() { '#theme' => 'pager', '#weight' => 5, ); - drupal_set_title(''); } else { - drupal_set_title(t('Welcome to @site-name', array('@site-name' => variable_get('site_name', 'Drupal')))); - - $default_message = '

    ' . t('No front page content has been created yet.') . '

    '; - - if (user_access('access administration pages')) { - $default_links = array ( - l(t('Create content'), 'node/add'), - l(t('Change the default front page'), 'admin/settings/site-information'), - ); - $default_message .= theme('item_list', $default_links); - } - - $build['default_message'] = array( - '#markup' => $default_message, + $build['message'] = array( + '#markup' => t('No content has been promoted yet.'), '#prefix' => '
    ', '#suffix' => '
    ', ); } + + drupal_set_title(''); + return $build; } @@ -3163,3 +3187,15 @@ function node_requirements($phase) { ); return $requirements; } + +/** + * Preprocess variables for page.tpl.php + */ +function node_preprocess_page(&$variables) { + if ($node = menu_get_object()) { + $variables['node'] = $node; + if ($node->type) { + $variables['classes_array'][] = 'node-type-' . form_clean_id($node->type); + } + } +} \ No newline at end of file Index: modules/node/node.pages.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.pages.inc,v retrieving revision 1.72 diff -u -p -r1.72 node.pages.inc --- modules/node/node.pages.inc 29 Jul 2009 06:39:34 -0000 1.72 +++ modules/node/node.pages.inc 4 Aug 2009 22:39:06 -0000 @@ -158,6 +158,30 @@ function node_form(&$form_state, $node) '#type' => 'vertical_tabs', ); + if (TRUE || variable_get('language_content_type_' . $form['#node']->type, 0)) { + $form['language_information'] = array( + '#type' => 'fieldset', + '#title' => t('Language'), + '#collapsible' => TRUE, + '#collapsed' => isset($form['#node']->language), + '#group' => 'additional_settings', + '#attached_js' => array(drupal_get_path('module', 'node') . '/node.js'), + ); + $form['language_information']['language'] = array( + '#type' => 'select', + '#title' => t('Language'), + '#default_value' => (isset($form['#node']->language) ? $form['#node']->language : ''), + '#options' => array('' => t('Language neutral')) + locale_language_list('name'), + ); + } + // Node type without language selector: assign the default for new nodes + elseif (!isset($form['#node']->nid)) { + $form['language'] = array( + '#type' => 'value', + '#value' => language_default()->language, + ); + } + // Add a log field if the "Create new revision" option is checked, or if the // current user has the ability to check that option. if (!empty($node->revision) || user_access('administer nodes')) { @@ -235,7 +259,7 @@ function node_form(&$form_state, $node) ); $form['options']['promote'] = array( '#type' => 'checkbox', - '#title' => t('Promoted to front page'), + '#title' => t('Promoted to /node'), '#default_value' => $node->promote, ); $form['options']['sticky'] = array( Index: modules/system/system.admin.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v retrieving revision 1.167 diff -u -p -r1.167 system.admin.inc --- modules/system/system.admin.inc 3 Aug 2009 06:06:23 -0000 1.167 +++ modules/system/system.admin.inc 4 Aug 2009 22:39:08 -0000 @@ -222,12 +222,6 @@ function system_themes_form() { '#description' => t('Choose which theme the administration pages should display in. If you choose "Default theme" the administration pages will use the same theme as the rest of the site.'), '#default_value' => variable_get('admin_theme', 0), ); - $form['admin_theme']['node_admin_theme'] = array( - '#type' => 'checkbox', - '#title' => t('Use administration theme for content editing'), - '#description' => t('Use the administration theme when editing existing posts or creating new ones.'), - '#default_value' => variable_get('node_admin_theme', '0'), - ); $form['buttons']['submit'] = array( '#type' => 'submit', @@ -943,8 +937,8 @@ function system_modules_submit($form, &$ // Clear all caches. registry_rebuild(); + menu_rebuild(); drupal_theme_rebuild(); - node_types_rebuild(); cache_clear_all('schema', 'cache'); drupal_clear_css_cache(); drupal_clear_js_cache(); @@ -1224,9 +1218,9 @@ function system_site_information_setting $form['site_frontpage'] = array( '#type' => 'textfield', '#title' => t('Default front page'), - '#default_value' => 'node', + '#default_value' => 'frontpage', '#size' => 40, - '#description' => t('The home page displays content from this relative URL. If unsure, specify "node".'), + '#description' => t('The home page displays content from this relative URL. If unsure, specify %frontpage.', array('%frontpage' => 'frontpage')), '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q='), '#required' => TRUE, ); Index: modules/system/system.install =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.install,v retrieving revision 1.362 diff -u -p -r1.362 system.install --- modules/system/system.install 3 Aug 2009 03:04:33 -0000 1.362 +++ modules/system/system.install 4 Aug 2009 22:39:09 -0000 @@ -312,7 +312,7 @@ function system_requirements($phase) { */ function system_install() { // Create tables. - $modules = array('system', 'filter', 'user', 'node'); + $modules = array('system', 'filter', 'user'); foreach ($modules as $module) { drupal_install_schema($module); } @@ -386,17 +386,6 @@ function system_install() { ->condition('name', 'garland') ->execute(); - db_insert('node_access') - ->fields(array( - 'nid' => 0, - 'gid' => 0, - 'realm' => 'all', - 'grant_view' => 1, - 'grant_update' => 0, - 'grant_delete' => 0, - )) - ->execute(); - // Add text formats. $filtered_html_format = db_insert('filter_format') ->fields(array( @@ -473,8 +462,6 @@ function system_install() { // Set the default input format to Filtered HTML. variable_set('filter_default_format', $filtered_html_format); - variable_set('node_options_forum', array(0 => 'status')); - $cron_key = md5(mt_rand()); variable_set('cron_key', $cron_key); @@ -779,33 +766,6 @@ function system_schema() { ), ); - $schema['history'] = array( - 'description' => 'A record of which {users} have read which {node}s.', - 'fields' => array( - 'uid' => array( - 'description' => 'The {users}.uid that read the {node} nid.', - 'type' => 'int', - 'not null' => TRUE, - 'default' => 0, - ), - 'nid' => array( - 'description' => 'The {node}.nid that was read.', - 'type' => 'int', - 'not null' => TRUE, - 'default' => 0, - ), - 'timestamp' => array( - 'description' => 'The Unix timestamp at which the read occurred.', - 'type' => 'int', - 'not null' => TRUE, - 'default' => 0, - ), - ), - 'primary key' => array('uid', 'nid'), - 'indexes' => array( - 'nid' => array('nid'), - ), - ); $schema['menu_router'] = array( 'description' => 'Maps paths to various callbacks (access, page and title)', 'fields' => array( Index: modules/system/system.module =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.module,v retrieving revision 1.735 diff -u -p -r1.735 system.module --- modules/system/system.module 3 Aug 2009 06:06:23 -0000 1.735 +++ modules/system/system.module 4 Aug 2009 22:39:11 -0000 @@ -786,12 +786,23 @@ function system_menu() { 'access arguments' => array('administer site configuration'), 'type' => MENU_CALLBACK, ); + // Default page for batch operations. $items['batch'] = array( 'page callback' => 'system_batch_page', 'access callback' => TRUE, 'type' => MENU_CALLBACK, ); + + // Default front page. + $items['frontpage'] = array( + 'title' => 'Front page', + 'description' => 'The default front page.', + 'page callback' => 'system_frontpage', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + ); + return $items; } @@ -3086,3 +3097,28 @@ function system_retrieve_file($url, $des return $local; } + +/** + * Display the default front page. + */ +function system_frontpage() { + drupal_set_title(t('Welcome to @site-name', array('@site-name' => variable_get('site_name', 'Drupal')))); + + $message = '

    ' . t('No front page content has been created yet.') . '

    '; + + if (user_access('access administration pages')) { + $links = array (l(t('Change the default front page'), 'admin/settings/site-information')); + if (module_exists('node')) { + array_unshift($links, l(t('Create content'), 'node/add')); + } + $message .= theme('item_list', $links); + } + + $build['message'] = array( + '#markup' => $message, + '#prefix' => '
    ', + '#suffix' => '
    ', + ); + + return $build; +} \ No newline at end of file Index: modules/taxonomy/taxonomy.info =================================================================== RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.info,v retrieving revision 1.9 diff -u -p -r1.9 taxonomy.info --- modules/taxonomy/taxonomy.info 8 Jun 2009 09:23:54 -0000 1.9 +++ modules/taxonomy/taxonomy.info 4 Aug 2009 22:39:12 -0000 @@ -9,3 +9,4 @@ files[] = taxonomy.admin.inc files[] = taxonomy.pages.inc files[] = taxonomy.install files[] = taxonomy.test +dependencies[] = node \ No newline at end of file Index: modules/taxonomy/taxonomy.test =================================================================== RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.test,v retrieving revision 1.42 diff -u -p -r1.42 taxonomy.test --- modules/taxonomy/taxonomy.test 3 Aug 2009 20:19:29 -0000 1.42 +++ modules/taxonomy/taxonomy.test 4 Aug 2009 22:39:13 -0000 @@ -53,7 +53,7 @@ class TaxonomyVocabularyFunctionalTest e } function setUp() { - parent::setUp(); + parent::setUp('node'); $this->admin_user = $this->drupalCreateUser(array('administer taxonomy')); $this->drupalLogin($this->admin_user); $this->vocabulary = $this->createVocabulary(); @@ -314,6 +314,10 @@ class TaxonomyTermUnitTest extends Taxon ); } + function setUp() { + parent::setUp('node'); + } + /** * Tests for taxonomy_term_count_nodes(). * @@ -388,7 +392,7 @@ class TaxonomyTermTestCase extends Taxon } function setUp() { - parent::setUp('taxonomy'); + parent::setUp('node', 'taxonomy'); $this->admin_user = $this->drupalCreateUser(array('administer taxonomy', 'bypass node access')); $this->drupalLogin($this->admin_user); $this->vocabulary = $this->createVocabulary(); Index: modules/translation/translation.info =================================================================== RCS file: /cvs/drupal/drupal/modules/translation/translation.info,v retrieving revision 1.5 diff -u -p -r1.5 translation.info --- modules/translation/translation.info 8 Jun 2009 09:23:54 -0000 1.5 +++ modules/translation/translation.info 4 Aug 2009 22:39:13 -0000 @@ -1,6 +1,7 @@ ; $Id: translation.info,v 1.5 2009/06/08 09:23:54 dries Exp $ name = Content translation description = Allows content to be translated into different languages. +dependencies[] = node dependencies[] = locale package = Core version = VERSION Index: profiles/default/default.info =================================================================== RCS file: /cvs/drupal/drupal/profiles/default/default.info,v retrieving revision 1.1 diff -u -p -r1.1 default.info --- profiles/default/default.info 15 Jul 2009 02:08:41 -0000 1.1 +++ profiles/default/default.info 4 Aug 2009 22:39:13 -0000 @@ -3,6 +3,7 @@ name = Drupal description = Create a Drupal site with the most commonly used features pre-installed. version = VERSION core = 7.x +dependencies[] = node dependencies[] = block dependencies[] = color dependencies[] = comment Index: profiles/expert/expert.info =================================================================== RCS file: /cvs/drupal/drupal/profiles/expert/expert.info,v retrieving revision 1.1 diff -u -p -r1.1 expert.info --- profiles/expert/expert.info 15 Jul 2009 02:08:41 -0000 1.1 +++ profiles/expert/expert.info 4 Aug 2009 22:39:13 -0000 @@ -3,5 +3,6 @@ name = Drupal (minimal) description = Create a Drupal site with only required modules enabled. version = VERSION core = 7.x +dependencies[] = node dependencies[] = block dependencies[] = dblog