Index: drupal_wiki.profile
===================================================================
RCS file: /cvs/drupal-contrib/contributions/profiles/drupal_wiki/drupal_wiki.profile,v
retrieving revision 1.3
diff -u -r1.3 drupal_wiki.profile
--- drupal_wiki.profile	5 Jan 2008 08:34:30 -0000	1.3
+++ drupal_wiki.profile	28 Jun 2010 20:58:13 -0000
@@ -23,9 +23,12 @@
     15 => 'system',
     16 => 'talk',
     17 => 'pathauto',
-    18 => 'user',
-    19 => 'watchdog',
+    18 => 'user',    
+    19 => 'dblog',
     20 => 'wikitools',
+    21 => 'flexifilter',
+    22 => 'admin_menu',
+    23 => 'extlink',
   );
 }
 
@@ -40,15 +43,108 @@
 }
 
 /**
- * Implementation of hook_profile_final().
+ * Perform any final installation tasks for this profile.
+ *
+ * The installer goes through the profile-select -> locale-select
+ * -> requirements -> database -> profile-install-batch
+ * -> locale-initial-batch -> configure -> locale-remaining-batch
+ * -> finished -> done tasks, in this order, if you don't implement
+ * this function in your profile.
+ *
+ * If this function is implemented, you can have any number of
+ * custom tasks to perform after 'configure', implementing a state
+ * machine here to walk the user through those tasks. First time,
+ * this function gets called with $task set to 'profile', and you
+ * can advance to further tasks by setting $task to your tasks'
+ * identifiers, used as array keys in the hook_profile_task_list()
+ * above. You must avoid the reserved tasks listed in
+ * install_reserved_tasks(). If you implement your custom tasks,
+ * this function will get called in every HTTP request (for form
+ * processing, printing your information screens and so on) until
+ * you advance to the 'profile-finished' task, with which you
+ * hand control back to the installer. Each custom page you
+ * return needs to provide a way to continue, such as a form
+ * submission or a link. You should also set custom page titles.
+ *
+ * You should define the list of custom tasks you implement by
+ * returning an array of them in hook_profile_task_list(), as these
+ * show up in the list of tasks on the installer user interface.
+ *
+ * Remember that the user will be able to reload the pages multiple
+ * times, so you might want to use variable_set() and variable_get()
+ * to remember your data and control further processing, if $task
+ * is insufficient. Should a profile want to display a form here,
+ * it can; the form should set '#redirect' to FALSE, and rely on
+ * an action in the submit handler, such as variable_set(), to
+ * detect submission and proceed to further tasks. See the configuration
+ * form handling code in install_tasks() for an example.
+ *
+ * Important: Any temporary variables should be removed using
+ * variable_del() before advancing to the 'profile-finished' phase.
+ *
+ * @param $task
+ *   The current $task of the install system. When hook_profile_tasks()
+ *   is first called, this is 'profile'.
+ * @param $url
+ *   Complete URL to be used for a link or form action on a custom page,
+ *   if providing any, to allow the user to proceed with the installation.
+ *
+ * @return
+ *   An optional HTML string to display to the user. Only used if you
+ *   modify the $task, otherwise discarded.
  */
-function drupal_wiki_profile_final() {
+ function drupal_wiki_profile_tasks(&$task, $url) {
+ 
+  // Insert default user-defined node types into the database. For a complete
+  // list of available node type attributes, refer to the node type API
+  // documentation at: http://api.drupal.org/api/HEAD/function/hook_node_info.
+  $types = array(
+    array(
+      'type' => 'page',
+      'name' => st('Page'),
+      'module' => 'node',
+      'description' => st("A <em>page</em>, similar in form to a <em>story</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' => '',
+    ),
+    array(
+      'type' => 'story',
+      'name' => st('Story'),
+      'module' => 'node',
+      'description' => st("A <em>story</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 a <em>story</em> entry. By default, a <em>story</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' => '',
+    ),
+	array(
+      'type' => 'wiki',
+      'name' => st('Wiki'),
+      'module' => 'node',
+      'description' => st("A <em>story</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 a <em>story</em> entry. By default, a <em>story</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' => '',
+    ),
+  );
+  
+  foreach ($types as $type) {
+    $type = (object) _node_type_set_defaults($type);
+    node_type_save($type);
+  }
+  
   // Set various variables.
   variable_set('anonymous', 'Anonymous');
   variable_set('clean_url', '1');
   variable_set('comment_book', '2');
   variable_set('comment_page', 0);
-  variable_set('comment_talk_book', 1);
+  variable_set('comment_talk_wiki', 1);
   variable_set('filter_html_1', 1);
   variable_set('freelinking_camelcase', 0);
   variable_set('freelinking_nodetype', 'book');
@@ -57,6 +153,11 @@
   variable_set('freelinking_restriction', 'none');
   variable_set('menu_primary_menu', 2);
   variable_set('menu_secondary_menu', 2);
+  variable_set('node_options_wiki', array (
+    0 => 'status',
+    1 => 'revision',
+  ));
+  
   variable_set('node_options_book', array (
     0 => 'status',
     1 => 'revision',
@@ -129,23 +230,15 @@
   variable_set('pathauto_user_supportsfeeds', NULL);
   variable_set('pathauto_verbose', 0);
   variable_set('show_preview_changes_book', 1);
-  variable_set('site_footer', '');
-  variable_set('site_frontpage', 'wiki');
-  variable_set('site_mail', 'admin@localhost');
-  variable_set('site_mission', '');
-  variable_set('site_name', 'Wiki');
-  variable_set('site_slogan', '');
+
   system_theme_data();
-  db_query("UPDATE {system} SET status = 1 WHERE type = 'theme' and name = '%s'", 'garland');
-  variable_set('theme_default', 'garland');
-  variable_set('theme_settings', array (
-    'toggle_node_info_page' => false,
-  ));
+  
   variable_set('wikitools_disallowed_characters', '[]{}|');
   variable_set('wikitools_hijack_freelinking', 1);
   variable_set('wikitools_main_page_title', 'Main Page');
   variable_set('wikitools_node_types', array (
     'book' => 'book',
+    'wiki' => 'wiki',
   ));
   variable_set('wikitools_options', array (
     'node creation' => 'node creation',
@@ -162,13 +255,15 @@
   // Add role "Moderator".
   db_query("INSERT INTO {role} (`rid`, `name`) VALUES (3, '%s')", 'moderator');
   // Set access permissions for different roles
-  db_query("UPDATE {permission} SET perm = 'create book pages, edit book pages, edit own book pages, outline posts in books, see printer-friendly version, access comments, post comments, post comments without approval, access content, revert revisions, view revisions, search content, use advanced search, access user profiles' WHERE rid = 1");
-  db_query("UPDATE {permission} SET perm = 'create book pages, edit book pages, edit own book pages, outline posts in books, see printer-friendly version, access comments, post comments, post comments without approval, access content, revert revisions, view revisions, search content, use advanced search, access user profiles, change own username' WHERE rid = 2");
-  db_query("INSERT INTO {permission} (`rid`, `perm`, `tid`) VALUES (3, 'create book pages, create new books, edit book pages, edit own book pages, outline posts in books, see printer-friendly version, access comments, administer comments, post comments, post comments without approval, access freelinking list, access content, revert revisions, view revisions, search content, use advanced search, access user profiles, administer users, change own username', 0)");
+  db_query("UPDATE {permission} SET perm = 'create wiki content, edit any wiki content, edit own wiki content, access comments, post comments, post comments without approval, access content, revert revisions, view revisions, search content, use advanced search, access user profiles' WHERE rid = 1");
+  db_query("UPDATE {permission} SET perm = 'create wiki content, edit any wiki content, edit own wiki content, access comments, post comments, post comments without approval, access content, revert revisions, view revisions, search content, use advanced search, access user profiles, change own username' WHERE rid = 2");
+  db_query("INSERT INTO {permission} (`rid`, `perm`, `tid`) VALUES (3, 'create wiki content, edit any wiki content, edit own wiki content, access comments, administer comments, post comments, post comments without approval, access freelinking list, access content, revert revisions, view revisions, search content, use advanced search, access user profiles, administer users, change own username', 0)");
   // Add admin user with password 'admin'
-  db_query("INSERT INTO {users} (`uid`, `name`, `pass`, `mail`, `mode`, `sort`, `threshold`, `theme`, `signature`, `created`, `access`, `login`, `status`, `timezone`, `language`, `picture`, `init`, `data`) VALUES (1, 'admin', MD5('admin'), '', 0, 0, 0, '', '', NOW(), NOW(), 0, 1, NULL, '', '', '', NULL)");
-  // Log in administrator after installation
-  user_authenticate('admin', 'admin');
+  db_query("INSERT INTO {users} (`uid`, `name`, `pass`, `mail`, `mode`, `sort`, `threshold`, `theme`, `signature`, `created`, `access`, `login`, `status`, `timezone`, `language`, `picture`, `init`, `data`) VALUES (2, 'moderator', MD5('moderator'), '', 0, 0, 0, '', '', NOW(), NOW(), 0, 1, NULL, '', '', '', NULL)");
+
+  // Update the menu router information.
+  menu_rebuild();
+  
   // Add freelinking filter
   db_query("INSERT INTO {filters} (`format`, `module`, `delta`, `weight`) VALUES (%d, 'freelinking', 0, 10)", 1);
   system_initialize_theme_blocks('garland');

