Index: profiles/default/default.profile =================================================================== RCS file: /cvs/drupal/drupal/profiles/default/default.profile,v retrieving revision 1.2 diff -u -r1.2 default.profile --- profiles/default/default.profile 29 Oct 2006 13:17:38 -0000 1.2 +++ profiles/default/default.profile 27 Dec 2006 02:47:49 -0000 @@ -12,7 +12,10 @@ } /** - * Return a description of the profile. + * Return a description of the profile for the initial installation screen. + * + * @return + * An array with keys 'name' and 'description' describing this profile. */ function default_profile_details() { return array( @@ -20,3 +23,39 @@ 'description' => 'Select this profile to enable some basic Drupal functionality and the default theme.' ); } + +/** + * Perform any final installation tasks for this profile. + * + * @return + * An optional HTML string to display to the user on the final installation + * screen. + */ +function default_profile_final() { + // Insert default user-defined node types into the database. + $types = array( + array( + 'type' => 'page', + 'name' => t('Page'), + 'module' => 'node', + 'description' => t('If you want to add a static page, like a contact page or an about page, use a page.'), + 'custom' => TRUE, + 'modified' => TRUE, + 'locked' => FALSE, + ), + array( + 'type' => 'story', + 'name' => t('Story'), + 'module' => 'node', + 'description' => t('Stories are articles in their simplest form: they have a title, a teaser and a body, but can be extended by other modules. The teaser is part of the body too. Stories may be used as a personal blog or for news articles.'), + 'custom' => TRUE, + 'modified' => TRUE, + 'locked' => FALSE, + ), + ); + + foreach ($types as $type) { + $type = (object) _node_type_set_defaults($type); + node_type_save($type); + } +} \ No newline at end of file Index: install.php =================================================================== RCS file: /cvs/drupal/drupal/install.php,v retrieving revision 1.30 diff -u -r1.30 install.php --- install.php 17 Dec 2006 06:51:47 -0000 1.30 +++ install.php 27 Dec 2006 02:47:47 -0000 @@ -538,7 +538,10 @@ $function = $profile .'_profile_final'; if (function_exists($function)) { // More steps required - $output .= $function(); + $profile_message = $function(); + } + if (isset($profile_message)) { + $output .= $profile_message; } else { // No more steps Index: modules/system/system.install =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.install,v retrieving revision 1.61 diff -u -r1.61 system.install --- modules/system/system.install 18 Dec 2006 21:32:10 -0000 1.61 +++ modules/system/system.install 27 Dec 2006 02:47:49 -0000 @@ -1088,8 +1088,6 @@ db_query("INSERT INTO {node_access} VALUES (0, 0, 'all', 1, 0, 0)"); - db_query("INSERT INTO {node_type} (type, name, module, description, help, has_title, title_label, has_body, body_label, min_word_count, custom, modified, locked, orig_type) VALUES ('page', 'Page', 'node', 'If you want to add a static page, like a contact page or an about page, use a page.', '', 1, 'Title', 1, 'Body', 0, 1, 1, 0, 'page')"); - db_query("INSERT INTO {node_type} (type, name, module, description, help, has_title, title_label, has_body, body_label, min_word_count, custom, modified, locked, orig_type) VALUES ('story', 'Story', 'node', 'Stories are articles in their simplest form: they have a title, a teaser and a body, but can be extended by other modules. The teaser is part of the body too. Stories may be used as a personal blog or for news articles.', '', 1, 'Title', 1, 'Body', 0, 1, 1, 0, 'story')"); db_query("INSERT INTO {filter_formats} (name, roles, cache) VALUES ('Filtered HTML',',1,2,',1)"); db_query("INSERT INTO {filter_formats} (name, roles, cache) VALUES ('PHP code','',0)"); db_query("INSERT INTO {filter_formats} (name, roles, cache) VALUES ('Full HTML','',1)");