? files
? generate-content.php
? t.patch
? modules/cck
? modules/devel
? modules/sifr
? modules/tinymce
? modules/views
? modules/views_bookmark
? themes/antwerp
? themes/argeebee
? themes/box_grey
? themes/civicspace
? themes/friendselectric
Index: update.php
===================================================================
RCS file: /cvs/drupal/drupal/update.php,v
retrieving revision 1.175
diff -u -r1.175 update.php
--- update.php	8 Feb 2006 00:32:18 -0000	1.175
+++ update.php	25 Feb 2006 02:29:05 -0000
@@ -323,8 +323,7 @@
     '#tree' => TRUE,
     '#type' => 'fieldset',
     '#title' => 'Select versions',
-    '#collapsible' => TRUE,
-    '#collapsed' => TRUE,
+    '#collapsed' => FALSE
   );
   foreach (module_list() as $module) {
     $updates = drupal_get_schema_versions($module);
Index: includes/locale.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/locale.inc,v
retrieving revision 1.66
diff -u -r1.66 locale.inc
--- includes/locale.inc	23 Feb 2006 10:30:03 -0000	1.66
+++ includes/locale.inc	25 Feb 2006 01:52:39 -0000
@@ -1131,11 +1131,35 @@
   // Present edit form preserving previous user settings
   $query = _locale_string_seek_query();
   $form = array();
-  $form['search'] = array('#type' => 'fieldset', '#title' => t('Search'));
-  $form['search']['string'] = array('#type' => 'textfield', '#title' => t('Strings to search for'), '#default_value' => $query->string, '#size' => 30, '#maxlength' => 30, '#description' => t('Leave blank to show all strings. The search is case sensitive.'));
-  $form['search']['language'] = array('#type' => 'radios', '#title' => t('Language'), '#default_value' => ($query->language ? $query->language : 'all'), '#options' => array_merge(array('all' => t('All languages'), 'en' => t('English (provided by Drupal)')), $languages['name']));
-  $form['search']['searchin'] = array('#type' => 'radios', '#title' => t('Search in'), '#default_value' => ($query->searchin ? $query->searchin : 'all'), '#options' => array('all' => t('All strings in that language'), 'translated' => t('Only translated strings'), 'untranslated' => t('Only untranslated strings')));
-  $form['search']['submit'] = array('#type' => 'submit', '#value' => t('Search'));
+  $form['search'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('Search'),
+    '#collapsible' => TRUE
+  );
+  $form['search']['string'] = array(
+    '#type' => 'textfield', 
+    '#title' => t('Strings to search for'), 
+    '#default_value' => $query->string, 
+    '#size' => 30, 
+    '#maxlength' => 30, 
+    '#description' => t('Leave blank to show all strings. The search is case sensitive.')
+  );
+  $form['search']['language'] = array(
+    '#type' => 'radios', 
+    '#title' => t('Language'), 
+    '#default_value' => ($query->language ? $query->language : 'all'), 
+    '#options' => array_merge(array('all' => t('All languages'), 'en' => t('English (provided by Drupal)')), $languages['name'])
+  );
+  $form['search']['searchin'] = array(
+    '#type' => 'radios', 
+    '#title' => t('Search in'), 
+    '#default_value' => ($query->searchin ? $query->searchin : 'all'), 
+    '#options' => array('all' => t('All strings in that language'), 'translated' => t('Only translated strings'), 'untranslated' => t('Only untranslated strings'))
+  );
+  $form['search']['submit'] = array(
+    '#type' => 'submit', 
+    '#value' => t('Search')
+  );
   $form['#redirect'] = FALSE;
 
   return drupal_get_form('_locale_string_seek', $form);
Index: modules/block.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/block.module,v
retrieving revision 1.202
diff -u -r1.202 block.module
--- modules/block.module	21 Feb 2006 18:46:54 -0000	1.202
+++ modules/block.module	25 Feb 2006 02:01:11 -0000
@@ -324,7 +324,6 @@
     $form['block_settings'] = array(
       '#type' => 'fieldset',
       '#title' => t('Block specific settings'),
-      '#collapsible' => true,
     );
 
     foreach ($settings as $k => $v) {
@@ -341,7 +340,6 @@
   $form['user_vis_settings'] = array(
     '#type' => 'fieldset',
     '#title' => t('User specific visibility settings'),
-    '#collapsible' => true,
   );
   $form['user_vis_settings']['custom'] = array(
     '#type' => 'radios',
@@ -353,7 +351,6 @@
   $form['page_vis_settings'] = array(
     '#type' => 'fieldset',
     '#title' => t('Page specific visibility settings'),
-    '#collapsible' => true,
   );
   $access = user_access('use PHP for block visibility');
 
@@ -529,7 +526,13 @@
     case 'form':
       if ($category == 'account') {
         $result = db_query('SELECT * FROM {blocks} WHERE status = 1 AND custom != 0 ORDER BY weight, module, delta');
-        $form['block'] = array('#type' => 'fieldset', '#title' => t('Block configuration'), '#weight' => 3, '#collapsible' => TRUE, '#tree' => TRUE);
+        $form['block'] = array(
+          '#type' => 'fieldset', 
+          '#title' => t('Block configuration'), 
+          '#weight' => 3, 
+          '#collapsed' => TRUE,
+          '#tree' => TRUE
+        );
         while ($block = db_fetch_object($result)) {
           $data = module_invoke($block->module, 'block', 'list');
           if ($data[$block->delta]['info']) {
Index: modules/comment.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment.module,v
retrieving revision 1.434
diff -u -r1.434 comment.module
--- modules/comment.module	22 Feb 2006 19:02:58 -0000	1.434
+++ modules/comment.module	25 Feb 2006 02:01:29 -0000
@@ -247,7 +247,6 @@
         $form['user_comments'] = array(
           '#type' => 'fieldset',
           '#title' => t('User comments'),
-          '#collapsible' => TRUE,
           '#collapsed' => TRUE,
           '#weight' => 30,
         );
@@ -324,7 +323,7 @@
     $form['comment_settings'] = array(
       '#type' => 'fieldset',
       '#title' => t('Comment settings'),
-      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
       '#weight' => 4);
     $form['comment_settings']['signature'] = array(
       '#type' => 'textarea',
@@ -343,7 +342,6 @@
   $form['viewing_options'] = array(
     '#type' => 'fieldset',
     '#title' => t('Viewing options'),
-    '#collapsible' => TRUE,
     '#collapsed' => TRUE,
   );
 
@@ -386,7 +384,6 @@
   $form['posting_settings'] = array(
     '#type' => 'fieldset',
     '#title' => t('Posting settings'),
-    '#collapsible' => TRUE,
     '#collapsed' => TRUE,
   );
 
@@ -1219,7 +1216,6 @@
       $form['admin'] = array(
         '#type' => 'fieldset',
         '#title' => t('Administration'),
-        '#collapsible' => TRUE,
         '#collapsed' => TRUE,
         '#weight' => -2,
       );
Index: modules/contact.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/contact.module,v
retrieving revision 1.42
diff -u -r1.42 contact.module
--- modules/contact.module	21 Feb 2006 18:46:54 -0000	1.42
+++ modules/contact.module	25 Feb 2006 02:01:33 -0000
@@ -89,7 +89,7 @@
     $form['contact'] = array('#type' => 'fieldset',
       '#title' => t('Contact settings'),
       '#weight' => 5,
-      '#collapsible' => TRUE,
+      '#collapsed' => TRUE
     );
     $form['contact']['contact'] = array('#type' => 'checkbox',
       '#title' => t('Personal contact form'),
Index: modules/drupal.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/drupal.module,v
retrieving revision 1.117
diff -u -r1.117 drupal.module
--- modules/drupal.module	21 Feb 2006 18:46:54 -0000	1.117
+++ modules/drupal.module	25 Feb 2006 02:01:39 -0000
@@ -79,6 +79,7 @@
   $form['drupal'] = array(
     '#type' => 'fieldset',
     '#title' => t('Post data to another site'),
+    '#collapsed' => TRUE,
     '#tree' => FALSE
   );
 
@@ -116,6 +117,7 @@
   $form['services'] = array(
     '#type' => 'fieldset',
     '#title' => t('Receive data from other sites'),
+    '#collapsed' => TRUE,
     '#tree' => FALSE
   );
 
Index: modules/filter.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/filter.module,v
retrieving revision 1.107
diff -u -r1.107 filter.module
--- modules/filter.module	23 Feb 2006 04:01:14 -0000	1.107
+++ modules/filter.module	25 Feb 2006 02:01:44 -0000
@@ -762,7 +762,6 @@
     $form = array(
       '#type' => 'fieldset',
       '#title' => t('Input format'),
-      '#collapsible' => TRUE,
       '#collapsed' => TRUE,
       '#weight' => $weight,
     );
@@ -957,7 +956,7 @@
  * Settings for the HTML filter.
  */
 function _filter_html_settings($format) {
-  $form['filter_html'] = array('#type' => 'fieldset', '#title' => t('HTML filter'), '#collapsible' => TRUE, '#collapsed' => TRUE);
+  $form['filter_html'] = array('#type' => 'fieldset', '#title' => t('HTML filter'),  '#collapsed' => TRUE);
   $form['filter_html']["filter_html_$format"] = array('#type' => 'radios', '#title' => t('Filter HTML tags'), '#default_value' => variable_get("filter_html_$format", FILTER_HTML_STRIP), '#options' => array(FILTER_HTML_STRIP => t('Strip disallowed tags'), FILTER_HTML_ESCAPE => t('Escape all tags')), '#description' => t('How to deal with HTML tags in user-contributed content. If set to "Strip disallowed tags", dangerous tags are removed (see below). If set to "Escape tags", all HTML is escaped and presented as it was typed.'));
   $form['filter_html']["allowed_html_$format"] = array('#type' => 'textfield', '#title' => t('Allowed HTML tags'), '#default_value' => variable_get("allowed_html_$format", '<a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>'), '#size' => 64, '#maxlength' => 255, '#description' => t('If "Strip disallowed tags" is selected, optionally specify tags which should not be stripped. JavaScript event attributes are always stripped.'));
   $form['filter_html']["filter_html_help_$format"] = array('#type' => 'checkbox', '#title' => t('Display HTML help'), '#default_value' => variable_get("filter_html_help_$format", 1), '#description' => t('If enabled, Drupal will display some basic HTML help in the long filter tips.'));
Index: modules/locale.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/locale.module,v
retrieving revision 1.133
diff -u -r1.133 locale.module
--- modules/locale.module	21 Feb 2006 18:46:54 -0000	1.133
+++ modules/locale.module	25 Feb 2006 02:01:56 -0000
@@ -115,8 +115,19 @@
       $user->language = key($languages['name']);
     }
     $languages['name'] = array_map('check_plain', $languages['name']);
-    $form['locale'] = array('#title' => t('Interface language settings'), '#type' => 'fieldset', '#weight' => 1);
-    $form['locale']['language'] = array('#type' => 'radios', '#title' => t('Language'), '#default_value' => $user->language, '#options' => $languages['name'], '#description' => t('Selecting a different locale will change the interface language of the site.'));
+    $form['locale'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Interface language settings'),
+      '#collapsed' => TRUE,
+      '#weight' => 1
+    );
+    $form['locale']['language'] = array(
+      '#type' => 'radios', 
+      '#title' => t('Language'), 
+      '#default_value' => $user->language, 
+      '#options' => $languages['name'], 
+      '#description' => t('Selecting a different locale will change the interface language of the site.')
+    );
     return $form;
   }
 }
Index: modules/menu.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/menu.module,v
retrieving revision 1.67
diff -u -r1.67 menu.module
--- modules/menu.module	21 Feb 2006 18:46:54 -0000	1.67
+++ modules/menu.module	25 Feb 2006 02:02:06 -0000
@@ -135,6 +135,7 @@
   $form['settings_authoring'] = array(
     '#type' => 'fieldset',
     '#title' => t('Post authoring form settings'),
+    '#collapsed' => TRUE,
   );
 
   $form['settings_authoring']['intro'] = array(
@@ -709,7 +710,6 @@
     $form['menu'] = array(
       '#type' => 'fieldset',
       '#title' => t('Menu settings'),
-      '#collapsible' => TRUE,
       '#collapsed' => empty($item['title']),
       '#tree' => TRUE,
       '#weight' => 30,
Index: modules/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node.module,v
retrieving revision 1.606
diff -u -r1.606 node.module
--- modules/node.module	21 Feb 2006 18:46:54 -0000	1.606
+++ modules/node.module	25 Feb 2006 02:02:10 -0000
@@ -611,9 +611,16 @@
     case 'admin':
       $form = array();
       // Output form for defining rank factor weights.
-      $form['content_ranking'] = array('#type' => 'fieldset', '#title' => t('Content ranking'));
+      $form['content_ranking'] = array(
+        '#type' => 'fieldset', 
+        '#title' => t('Content ranking'),
+        '#collapsed' => TRUE
+      );
       $form['content_ranking']['#theme'] = 'node_search_admin';
-      $form['content_ranking']['info'] = array('#type' => 'markup', '#value' => '<em>'. t('The following numbers control which properties the content search should favor when ordering the results. Higher numbers mean more influence, zero means the property is ignored. Changing these numbers does not require the search index to be rebuilt.  Changes take effect immediately.') .'</em>');
+      $form['content_ranking']['info'] = array(
+        '#type' => 'markup', 
+        '#value' => '<em>'. t('The following numbers control which properties the content search should favor when ordering the results. Higher numbers mean more influence, zero means the property is ignored. Changing these numbers does not require the search index to be rebuilt.  Changes take effect immediately.') .'</em>'
+      );
 
       $ranking = array('node_rank_relevance' => t('Keyword relevance'),
                        'node_rank_recent' => t('Recently posted'));
@@ -627,7 +634,12 @@
       // Note: reversed to reflect that higher number = higher ranking.
       $options = drupal_map_assoc(range(0, 10));
       foreach ($ranking as $var => $title) {
-        $form['content_ranking']['factors'][$var] = array('#title' => $title, '#type' => 'select', '#options' => $options, '#default_value' => variable_get($var, 5));
+        $form['content_ranking']['factors'][$var] = array(
+          '#title' => $title, 
+          '#type' => 'select', 
+          '#options' => $options, 
+          '#default_value' => variable_get($var, 5)
+        );
       }
       return $form;
 
@@ -736,7 +748,7 @@
       $form = array();
 
       // Keyword boxes
-      $form['advanced'] = array('#type' => 'fieldset', '#title' => t('Advanced search'), '#collapsible' => TRUE, '#collapsed' => TRUE, '#attributes' => array('class' => 'search-advanced'));
+      $form['advanced'] = array('#type' => 'fieldset', '#title' => t('Advanced search'),  '#collapsed' => TRUE, '#attributes' => array('class' => 'search-advanced'));
 
       $form['advanced']['keywords'] = array('#type' => 'markup', '#prefix' => '<div class="criterium">', '#suffix' => '</div>');
       $form['advanced']['keywords']['or'] = array('#type' => 'textfield', '#title' => t('Containing any of the words'), '#size' => 30, '#maxlength' => 255);
@@ -1677,12 +1689,12 @@
 
   if (user_access('administer nodes')) {
     // Node author information
-    $form['author'] = array('#type' => 'fieldset', '#title' => t('Authoring information'), '#collapsible' => TRUE, '#collapsed' => TRUE, '#weight' => 20);
+    $form['author'] = array('#type' => 'fieldset', '#title' => t('Authoring information'),  '#collapsed' => TRUE, '#weight' => 20);
     $form['author']['name'] = array('#type' => 'textfield', '#title' => t('Authored by'), '#maxlength' => 60, '#autocomplete_path' => 'user/autocomplete', '#required' => TRUE, '#default_value' => $node->name ? $node->name : variable_get('anonymous', 'Anonymous'), '#weight' => -1);
     $form['author']['date'] = array('#type' => 'textfield', '#title' => t('Authored on'), '#maxlength' => 25, '#required' => TRUE, '#default_value' => $node->date);
 
     // Node options for administrators
-    $form['options'] = array('#type' => 'fieldset', '#title' => t('Publishing options'), '#collapsible' => TRUE, '#collapsed' => TRUE, '#weight' => 25);
+    $form['options'] = array('#type' => 'fieldset', '#title' => t('Publishing options'),  '#collapsed' => TRUE, '#weight' => 25);
     $form['options']['status']   = array('#type' => 'checkbox', '#title' => t('Published'), '#default_value' => $node->status);
     $form['options']['moderate'] = array('#type' => 'checkbox', '#title' => t('In moderation queue'), '#default_value' => $node->moderate);
     $form['options']['promote']  = array('#type' => 'checkbox', '#title' => t('Promoted to front page'), '#default_value' => $node->promote);
Index: modules/path.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/path.module,v
retrieving revision 1.78
diff -u -r1.78 path.module
--- modules/path.module	21 Feb 2006 18:46:54 -0000	1.78
+++ modules/path.module	25 Feb 2006 02:02:20 -0000
@@ -251,7 +251,6 @@
     $form['path'] = array(
       '#type' => 'fieldset',
       '#title' => t('URL path settings'),
-      '#collapsible' => TRUE,
       '#collapsed' => empty($path),
       '#weight' => 30,
     );
@@ -259,7 +258,6 @@
       '#type' => 'textfield',
       '#default_value' => $path,
       '#maxlength' => 250,
-      '#collapsible' => TRUE,
       '#collapsed' => TRUE,
       '#description' => t('Optionally specify an alternative URL by which this node can be accessed.  For example, type "about" when writing an about page.  Use a relative path and don\'t add a trailing slash or the URL alias won\'t work.'),
     );
Index: modules/search.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/search.module,v
retrieving revision 1.164
diff -u -r1.164 search.module
--- modules/search.module	23 Feb 2006 10:30:03 -0000	1.164
+++ modules/search.module	25 Feb 2006 02:02:29 -0000
@@ -210,20 +210,59 @@
   $count = format_plural($remaining, 'There is 1 item left to index.', 'There are %count items left to index.');
   $percentage = ((int)min(100, 100 * ($total - $remaining) / max(1, $total))) . '%';
   $status = '<p><strong>'. t('%percentage of the site has been indexed.', array('%percentage' => $percentage)) .' '. $count .'</strong></p>';
-  $form['status'] = array('#type' => 'fieldset', '#title' => t('Indexing status'));
-  $form['status']['status'] = array('#type' => 'markup', '#value' => $status);
-  $form['status']['wipe'] = array('#type' => 'submit', '#value' => t('Re-index site'));
+  $form['status'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('Indexing status'),
+    '#collapsible' => TRUE
+  );
+  $form['status']['status'] = array(
+    '#type' => 'markup', 
+    '#value' => $status
+  );
+  $form['status']['wipe'] = array(
+    '#type' => 'submit', 
+    '#value' => t('Re-index site')
+  );
 
   $items = drupal_map_assoc(array(10, 20, 50, 100, 200, 500));
 
   // Indexing throttle:
-  $form['indexing_throttle'] = array('#type' => 'fieldset', '#title' => t('Indexing throttle'));
-  $form['indexing_throttle']['search_cron_limit'] = array('#type' => 'select', '#title' => t('Items to index per cron run'), '#default_value' => variable_get('search_cron_limit', 100), '#options' => $items, '#description' => t('The maximum amount of items that will be indexed in one cron run. Set this number lower if your cron is timing out or if PHP is running out of memory.'));
+  $form['indexing_throttle'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('Indexing throttle'),
+    '#collapsed' => TRUE
+  );
+  $form['indexing_throttle']['search_cron_limit'] = array(
+    '#type' => 'select', 
+    '#title' => t('Items to index per cron run'), 
+    '#default_value' => variable_get('search_cron_limit', 100), 
+    '#options' => $items, 
+    '#description' => t('The maximum amount of items that will be indexed in one cron run. Set this number lower if your cron is timing out or if PHP is running out of memory.')
+  );
   // Indexing settings:
-  $form['indexing_settings'] = array('#type' => 'fieldset', '#title' => t('Indexing settings'));
-  $form['indexing_settings']['info'] = array('#type' => 'markup', '#value' => '<em>'. t('<p>Changing the settings below will cause the site index to be rebuilt. The search index is not cleared but systematically updated to reflect the new settings. Searching will continue to work but new content won\'t be indexed until all existing content has been re-indexed.</p><p>The default settings should be appropriate for the majority of sites.</p>') .'</em>');
-  $form['indexing_settings']['minimum_word_size'] = array('#type' => 'textfield', '#title' => t('Minimum word length to index'), '#default_value' => variable_get('minimum_word_size', 3), '#size' => 5, '#maxlength' => 3, '#description' => t('The number of characters a word has to be to be indexed. A lower setting means better search result ranking, but also a larger database. Each search query must contain at least one keyword that is this size (or longer).'));
-  $form['indexing_settings']['overlap_cjk'] = array('#type' => 'checkbox', '#title' => t('Simple CJK handling'), '#default_value' => variable_get('overlap_cjk', true), '#description' => t('Whether to apply a simple Chinese/Japanese/Korean tokenizer based on overlapping sequences. Turn this off if you want to use an external preprocessor for this instead. Does not affect other languages.'));
+  $form['indexing_settings'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('Indexing settings'),
+    '#collapsed' => TRUE
+  );
+  $form['indexing_settings']['info'] = array(
+    '#type' => 'markup', 
+    '#value' => '<em>'. t('<p>Changing the settings below will cause the site index to be rebuilt. The search index is not cleared but systematically updated to reflect the new settings. Searching will continue to work but new content won\'t be indexed until all existing content has been re-indexed.</p><p>The default settings should be appropriate for the majority of sites.</p>') .'</em>'
+  );
+  $form['indexing_settings']['minimum_word_size'] = array(
+    '#type' => 'textfield', 
+    '#title' => t('Minimum word length to index'), 
+    '#default_value' => variable_get('minimum_word_size', 3), 
+    '#size' => 5, 
+    '#maxlength' => 3, 
+    '#description' => t('The number of characters a word has to be to be indexed. A lower setting means better search result ranking, but also a larger database. Each search query must contain at least one keyword that is this size (or longer).')
+  );
+  $form['indexing_settings']['overlap_cjk'] = array(
+    '#type' => 'checkbox', 
+    '#title' => t('Simple CJK handling'), 
+    '#default_value' => variable_get('overlap_cjk', true), 
+    '#description' => t('Whether to apply a simple Chinese/Japanese/Korean tokenizer based on overlapping sequences. Turn this off if you want to use an external preprocessor for this instead. Does not affect other languages.')
+  );
 
   // Per module settings
   $form = array_merge($form, module_invoke_all('search', 'admin'));
Index: modules/statistics.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/statistics.module,v
retrieving revision 1.219
diff -u -r1.219 statistics.module
--- modules/statistics.module	21 Feb 2006 18:46:54 -0000	1.219
+++ modules/statistics.module	25 Feb 2006 02:02:31 -0000
@@ -330,14 +330,39 @@
 function statistics_settings() {
   // access log settings:
   $options = array('1' => t('Enabled'), '0' => t('Disabled'));
-  $form['access'] = array('#type' => 'fieldset', '#title' => t('Access log settings'));
-  $form['access']['statistics_enable_access_log'] = array('#type' => 'radios', '#title' => t('Enable access log'), '#default_value' =>  variable_get('statistics_enable_access_log', 0), '#options' => $options, '#description' => t('Log each page access.  Required for referrer statistics.'));
+  $form['access'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('Access log settings'),
+    '#collapsible' => TRUE
+  );
+  $form['access']['statistics_enable_access_log'] = array(
+    '#type' => 'radios', 
+    '#title' => t('Enable access log'), 
+    '#default_value' =>  variable_get('statistics_enable_access_log', 0), 
+    '#options' => $options, '#description' => t('Log each page access.  Required for referrer statistics.')
+  );
   $period = drupal_map_assoc(array(3600, 10800, 21600, 32400, 43200, 86400, 172800, 259200, 604800, 1209600, 2419200, 4838400, 9676800), 'format_interval');
-  $form['access']['statistics_flush_accesslog_timer'] = array('#type' => 'select', '#title' => t('Discard access logs older than'), '#default_value'   => variable_get('statistics_flush_accesslog_timer', 259200), '#options' => $period, '#description' => t('Older access log entries (including referrer statistics) will be automatically discarded.  Requires crontab.'));
+  $form['access']['statistics_flush_accesslog_timer'] = array(
+    '#type' => 'select', 
+    '#title' => t('Discard access logs older than'), 
+    '#default_value' => variable_get('statistics_flush_accesslog_timer', 259200), 
+    '#options' => $period, 
+    '#description' => t('Older access log entries (including referrer statistics) will be automatically discarded.  Requires crontab.')
+  );
 
   // count content views settings
-  $form['content'] = array('#type' => 'fieldset', '#title' => t('Content viewing counter settings'));
-  $form['content']['statistics_count_content_views'] = array('#type' => 'radios', '#title' => t('Count content views'), '#default_value' =>  variable_get('statistics_count_content_views', 0), '#options' => $options, '#description' => t('Increment a counter each time content is viewed.'));
+  $form['content'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('Content viewing counter settings'),
+    '#collapsed' => TRUE
+  );
+  $form['content']['statistics_count_content_views'] = array(
+    '#type' => 'radios', 
+    '#title' => t('Count content views'), 
+    '#default_value' => variable_get('statistics_count_content_views', 0), 
+    '#options' => $options, 
+    '#description' => t('Increment a counter each time content is viewed.')
+  );
 
   return $form;
 }
Index: modules/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system.module,v
retrieving revision 1.291
diff -u -r1.291 system.module
--- modules/system.module	21 Feb 2006 18:46:54 -0000	1.291
+++ modules/system.module	25 Feb 2006 02:09:33 -0000
@@ -83,7 +83,7 @@
   $type['hidden'] = array('#input' => TRUE);
   $type['value'] = array('#input' => TRUE);
   $type['markup'] = array('#prefix' => '', '#suffix' => '');
-  $type['fieldset'] = array('#collapsible' => FALSE, '#collapsed' => FALSE);
+  $type['fieldset'] = array('#collapsible' => TRUE, '#collapsed' => FALSE);
   return $type;
 }
 
@@ -182,27 +182,52 @@
         }
 
         $form['themes'] = array(
-          '#type' => 'fieldset', '#title' => t('Theme configuration'), '#description' => t('Selecting a different theme will change the look and feel of the site.'), '#weight' => 2, '#collapsible' => TRUE, '#theme' => 'system_user');
+          '#type' => 'fieldset', 
+          '#title' => t('Theme configuration'), 
+          '#description' => t('Selecting a different theme will change the look and feel of the site.'), 
+          '#weight' => 2, 
+          '#collapsed' => TRUE,
+          '#theme' => 'system_user'
+        );
 
         foreach ($themes as $info) {
           $info->screenshot = dirname($info->filename) . '/screenshot.png';
           $screenshot = file_exists($info->screenshot) ? theme('image', $info->screenshot, t('Screenshot for %theme theme', array('%theme' => $info->name)), '', array('class' => 'screenshot'), false) : t('no screenshot');
 
-         $form['themes'][$info->name]['screenshot'] = array('#type' => 'markup', '#value' => $screenshot);
-          $form['themes'][$info->name]['description'] = array('#type' => 'item', '#title' => $info->name,  '#value' => dirname($info->filename));
+          $form['themes'][$info->name]['screenshot'] = array(
+            '#type' => 'markup', 
+            '#value' => $screenshot
+          );
+          $form['themes'][$info->name]['description'] = array(
+            '#type' => 'item', 
+            '#title' => $info->name, 
+            '#value' => dirname($info->filename)
+          );
           $options[$info->name] = '';
         }
 
-        $form['themes']['theme'] = array('#type' => 'radios', '#options' => $options, '#default_value' => $edit['theme'] ? $edit['theme'] : variable_get('theme_default', 'bluemarine'));
+        $form['themes']['theme'] = array(
+          '#type' => 'radios', 
+          '#options' => $options, 
+          '#default_value' => $edit['theme'] ? $edit['theme'] : variable_get('theme_default', 'bluemarine')
+        );
       }
     }
 
     if (variable_get('configurable_timezones', 1)) {
       $zones = _system_zonelist();
-      $form['timezone'] = array('#type'=>'fieldset', '#title' => t('Locale settings'), '#weight' => 6);
+      $form['timezone'] = array(
+        '#type'=>'fieldset', 
+        '#title' => t('Locale settings'),
+        '#collapsed' => TRUE,
+        '#weight' => 6
+      );
       $form['timezone']['timezone'] = array(
-        '#type' => 'select', '#title' => t('Time zone'), '#default_value' => strlen($edit['timezone']) ? $edit['timezone'] : variable_get('date_default_timezone', 0),
-        '#options' => $zones, '#description' => t('Select your current local time. Dates and times throughout this site will be displayed using this time zone.')
+        '#type' => 'select', 
+        '#title' => t('Time zone'), 
+        '#default_value' => strlen($edit['timezone']) ? $edit['timezone'] : variable_get('date_default_timezone', 0),
+        '#options' => $zones, 
+        '#description' => t('Select your current local time. Dates and times throughout this site will be displayed using this time zone.')
       );
     }
     return $form;
@@ -240,7 +265,7 @@
   // General settings:
   $form['general'] = array(
     '#type' => 'fieldset', '#title' => t('General settings'),
-    '#collapsible' => TRUE, '#collapsed' => TRUE
+    '#collapsed' => TRUE
   );
   $form['general']['site_name'] = array(
     '#type' => 'textfield', '#title' => t('Name'), '#default_value' => variable_get('site_name', 'drupal'),
@@ -285,7 +310,7 @@
 
   // Error handling:
 
-  $form['errors'] = array( '#type' => 'fieldset', '#title' =>t('Error handling'), '#collapsible' => TRUE, '#collapsed' => TRUE );
+  $form['errors'] = array( '#type' => 'fieldset', '#title' =>t('Error handling'),  '#collapsed' => TRUE );
   $form['errors']['site_403'] = array(
     '#type' => 'textfield', '#title' => t('Default 403 (access denied) page'), '#default_value' => variable_get('site_403', ''),
     '#description' => t('This page is displayed when the requested document is denied to the current user.  If you are not using clean URLs, specify the part after "?q=". If unsure, specify nothing.')
@@ -311,7 +336,7 @@
 
 
   // Caching:
-  $form['cache'] = array('#type' => 'fieldset', '#title' => t('Cache settings'), '#collapsible' => TRUE, '#collapsed' => TRUE);
+  $form['cache'] = array('#type' => 'fieldset', '#title' => t('Cache settings'),  '#collapsed' => TRUE);
 
   $form['cache']['cache']  = array(
     '#type' => 'radios',  '#title' => t('Page cache'), '#default_value' => variable_get('cache', CACHE_DISABLED),
@@ -328,7 +353,7 @@
 
 
   // File system:
-  $form['files'] = array('#type' => 'fieldset', '#title' => t('File system settings'), '#collapsible' => TRUE, '#collapsed' => TRUE);
+  $form['files'] = array('#type' => 'fieldset', '#title' => t('File system settings'),  '#collapsed' => TRUE);
 
   $form['files']['file_directory_path'] = array(
     '#type' => 'textfield',
@@ -366,13 +391,13 @@
   }
   $group['toolkit'] = image_toolkit_invoke('settings');
   if (is_array($group)) {
-    $form['image'] = array('#type' => 'fieldset', '#title' => t('Image handling'), '#collapsible' => TRUE, '#collapsed' => true);
+    $form['image'] = array('#type' => 'fieldset', '#title' => t('Image handling'),  '#collapsed' => true);
     $form['image'] = array_merge($form['image'], $group);
   }
   */
 
   // Feed settings
-  $form['feed'] = array('#type' => 'fieldset', '#title' => t('RSS feed settings'), '#collapsible' => TRUE, '#collapsed' => TRUE);
+  $form['feed'] = array('#type' => 'fieldset', '#title' => t('RSS feed settings'),  '#collapsed' => TRUE);
   $form['feed']['feed_default_items'] = array(
     '#type' => 'select', '#title' => t('Number of items per feed'), '#default_value' => variable_get('feed_default_items', 10),
     '#options' => drupal_map_assoc(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30)),
@@ -410,7 +435,7 @@
     $datelongchoices[$f] = format_date(time(), 'custom', $f);
   }
 
-  $form['dates'] = array('#type' => 'fieldset', '#title' => t('Date settings'), '#collapsible' => TRUE, '#collapsed' => TRUE);
+  $form['dates'] = array('#type' => 'fieldset', '#title' => t('Date settings'),  '#collapsed' => TRUE);
   $form['dates']['date_default_timezone'] = array(
     '#type' => 'select', '#title' => t('Default time zone'), '#default_value' => variable_get('date_default_timezone', 0),
     '#options' => $zones, '#description' => t('Select the default site time zone.')
@@ -447,8 +472,8 @@
   $form['site_status'] = array(
     '#type' => 'fieldset',
     '#title' => t('Site maintenance'),
-    '#collapsible' => TRUE,
-    '#collapsed' => TRUE);
+    '#collapsed' => TRUE
+  );
 
   $form['site_status']['site_offline'] = array(
     '#type' => 'radios',
@@ -466,11 +491,11 @@
   );
 
   // String handling: report status and errors.
-  $form['strings'] = array('#type' => 'fieldset', '#title' => t('String handling'), '#collapsible' => TRUE, '#collapsed' => TRUE);
+  $form['strings'] = array('#type' => 'fieldset', '#title' => t('String handling'),  '#collapsed' => TRUE);
   $form['strings'] = array_merge($form['strings'], unicode_settings());
 
   // Cron: report status and errors.
-  $form['cron'] = array('#type' => 'fieldset', '#title' => t('Cron jobs'), '#collapsible' => TRUE, '#collapsed' => TRUE);
+  $form['cron'] = array('#type' => 'fieldset', '#title' => t('Cron jobs'),  '#collapsed' => TRUE);
   $form['cron'] = array_merge($form['cron'], system_cron_settings());
 
   // Check database setup if necessary
@@ -1090,7 +1115,12 @@
 
   // Logo settings
   if ((!$key) || in_array('logo', $features)) {
-    $form['logo'] = array('#type' => 'fieldset', '#title' => t('Logo image settings'));
+    $form['logo'] = array(
+      '#type' => 'fieldset', 
+      '#title' => t('Logo image settings'),
+      
+      '#collapsed' => TRUE
+    );
     $form['logo']["default_logo"] = array(
       '#type' => 'checkbox',
       '#title' => t('Use the default logo'),
@@ -1102,7 +1132,8 @@
       '#type' => 'textfield',
       '#title' => t('Path to custom logo'),
       '#default_value' => $settings['logo_path'],
-      '#description' => t('The path to the file you would like to use as your logo file instead of the default logo.'));
+      '#description' => t('The path to the file you would like to use as your logo file instead of the default logo.')
+    );
 
     $form['logo']['logo_upload'] = array(
       '#type' => 'file',
@@ -1114,8 +1145,15 @@
 
   // Icon settings
   if ((!$key) || in_array('toggle_favicon', $features)) {
-    $form['favicon'] = array('#type' => 'fieldset', '#title' => t('Shortcut icon settings'));
-    $form['favicon']['text'] = array('#value' => t('Your shortcut icon or \'favicon\' is displayed in the address bar and bookmarks of most browsers.'));
+    $form['favicon'] = array(
+      '#type' => 'fieldset', 
+      '#title' => t('Shortcut icon settings'),
+      
+      '#collapsed' => TRUE
+    );
+    $form['favicon']['text'] = array(
+      '#value' => '<p>'. t('Your shortcut icon or \'favicon\' is displayed in the address bar and bookmarks of most browsers.') .'</p>'
+    );
     $form['favicon']['default_favicon'] = array(
       '#type' => 'checkbox',
       '#title' => t('Use the default shortcut icon.'),
@@ -1142,7 +1180,12 @@
     $node_types = module_invoke('node', 'get_types');
     if ($node_types) {
       $group = '';
-      $form['node_info'] = array('#type' => 'fieldset', '#title' => t('Display post information on'), '#description' =>  t('Enable or disable the "submitted by Username on date" text when displaying posts of the above type'));
+      $form['node_info'] = array(
+        '#type' => 'fieldset', 
+        '#title' => t('Display post information on'), 
+        '#description' =>  t('Enable or disable the "submitted by Username on date" text when displaying posts of the above type'),
+        '#collapsed' => TRUE
+      );
       foreach ($node_types as $type => $name) {
         $form['node_info']["toggle_node_info_$type"] = array('#type' => 'checkbox', '#title' => $name, '#default_value' => $settings["toggle_node_info_$type"]);
       }
@@ -1172,7 +1215,12 @@
     $disabled['toggle_search'] = true;
   }
 
-  $form['theme_settings'] = array('#type' => 'fieldset', '#title' => t('Toggle display'), '#description' => t('Enable or disable the display of certain page elements.'));
+  $form['theme_settings'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('Toggle display'), 
+    '#description' => t('Enable or disable the display of certain page elements.'),
+    '#collapsed' => TRUE
+  );
   foreach ($toggles as $name => $title) {
     if ((!$key) || in_array($name, $features)) {
       // disable search box if search.module is disabled
Index: modules/taxonomy.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy.module,v
retrieving revision 1.261
diff -u -r1.261 taxonomy.module
--- modules/taxonomy.module	21 Feb 2006 18:46:54 -0000	1.261
+++ modules/taxonomy.module	25 Feb 2006 02:04:16 -0000
@@ -545,7 +545,7 @@
       }
     }
     if (isset($form['taxonomy'])) {
-      $form['taxonomy'] += array('#type' => 'fieldset', '#title' => t('Categories'), '#collapsible' => TRUE, '#collapsed' => FALSE, '#tree' => TRUE, '#weight' => -3);
+      $form['taxonomy'] += array('#type' => 'fieldset', '#title' => t('Categories'),  '#collapsed' => FALSE, '#tree' => TRUE, '#weight' => -3);
     }
   }
 }
Index: modules/upload.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/upload.module,v
retrieving revision 1.77
diff -u -r1.77 upload.module
--- modules/upload.module	22 Feb 2006 10:06:46 -0000	1.77
+++ modules/upload.module	25 Feb 2006 02:03:48 -0000
@@ -93,27 +93,49 @@
 }
 
 function upload_settings() {
-  $form['settings_general'] = array('#type' => 'fieldset', '#title' => t('General settings'));
+  $form['settings_general'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('General settings')
+  );
   $form['settings_general']['upload_max_resolution'] = array(
-    '#type' => 'textfield', '#title' => t('Maximum resolution for uploaded images'), '#default_value' => variable_get('upload_max_resolution', 0),
-    '#size' => 15, '#maxlength' => 10, '#description' => t('The maximum allowed image size expressed as WIDTHxHEIGHT (e.g. 640x480). Set to 0 for no restriction.')
+    '#type' => 'textfield', 
+    '#title' => t('Maximum resolution for uploaded images'), 
+    '#default_value' => variable_get('upload_max_resolution', 0),
+    '#size' => 15, 
+    '#maxlength' => 10, 
+    '#description' => t('The maximum allowed image size expressed as WIDTHxHEIGHT (e.g. 640x480). Set to 0 for no restriction.')
   );
 
   $roles = user_roles(0, 'upload files');
 
   foreach ($roles as $rid => $role) {
-    $form["settings_role_$rid"] = array('#type' => 'fieldset', '#title' => t('Settings for %role', array('%role' => theme('placeholder', $role))), '#collapsible' => TRUE, '#collapsed' => TRUE);
+    $form["settings_role_$rid"] = array(
+      '#type' => 'fieldset', 
+      '#title' => t('Settings for %role', array('%role' => theme('placeholder', $role))),
+      '#collapsed' => TRUE
+    );
     $form["settings_role_$rid"]["upload_extensions_$rid"] = array(
-      '#type' => 'textfield', '#title' => t('Permitted file extensions'), '#default_value' => variable_get("upload_extensions_$rid", "jpg jpeg gif png txt html doc xls pdf ppt pps"),
-      '#maxlength' => 255, '#description' => t('Extensions that users in this role can upload. Separate extensions with a space and do not include the leading dot.')
+      '#type' => 'textfield', 
+      '#title' => t('Permitted file extensions'), 
+      '#default_value' => variable_get("upload_extensions_$rid", "jpg jpeg gif png txt html doc xls pdf ppt pps"),
+      '#maxlength' => 255, 
+      '#description' => t('Extensions that users in this role can upload. Separate extensions with a space and do not include the leading dot.')
     );
     $form["settings_role_$rid"]["upload_uploadsize_$rid"] = array(
-      '#type' => 'textfield', '#title' => t('Maximum file size per upload'), '#default_value' => variable_get("upload_uploadsize_$rid", 1),
-      '#size' => 5, '#maxlength' => 5, '#description' => t('The maximum size of a file a user can upload (in megabytes).')
+      '#type' => 'textfield', 
+      '#title' => t('Maximum file size per upload'), 
+      '#default_value' => variable_get("upload_uploadsize_$rid", 1),
+      '#size' => 5, 
+      '#maxlength' => 5, 
+      '#description' => t('The maximum size of a file a user can upload (in megabytes).')
     );
     $form["settings_role_$rid"]["upload_usersize_$rid"] = array(
-      '#type' => 'textfield', '#title' => t('Total file size per user'), '#default_value' => variable_get("upload_usersize_$rid", 10),
-      '#size' => 5, '#maxlength' => 5, '#description' => t('The maximum size of all files a user can have on the site (in megabytes).')
+      '#type' => 'textfield', 
+      '#title' => t('Total file size per user'), 
+      '#default_value' => variable_get("upload_usersize_$rid", 10),
+      '#size' => 5, 
+      '#maxlength' => 5, 
+      '#description' => t('The maximum size of all files a user can have on the site (in megabytes).')
     );
   }
 
@@ -170,7 +192,6 @@
       $form['attachments'] = array(
         '#type' => 'fieldset',
         '#title' => t('File attachments'),
-        '#collapsible' => TRUE,
         '#collapsed' => empty($node->files),
         '#description' => t('Changes made to the attachments are not permanent until you save this post. The first "listed" file will be included in RSS feeds.'),
         '#prefix' => '<div class="attachments">',
Index: modules/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user.module,v
retrieving revision 1.588
diff -u -r1.588 user.module
--- modules/user.module	23 Feb 2006 12:52:02 -0000	1.588
+++ modules/user.module	25 Feb 2006 02:04:01 -0000
@@ -1160,7 +1160,11 @@
   // Only display form_group around default fields if there are other groups.
   if ($extra) {
 
-    $form['account'] = array('#type' => 'fieldset', '#title' => t('Account information'));
+    $form['account'] = array(
+      '#type' => 'fieldset', 
+      '#title' => t('Account information'),
+      '#collapsible' => TRUE
+      );
     $form['account']['name'] = $form['name'];
     $form['account']['mail'] = $form['mail'];
     $form['account']['pass'] = $form['pass'];
@@ -1237,7 +1241,8 @@
 
 function user_edit_form($uid, $edit) {
   // Account information:
-  $form['account'] = array('#type' => 'fieldset',
+  $form['account'] = array(
+    '#type' => 'fieldset', 
     '#title' => t('Account information'),
   );
   if (user_access('change own username') || user_access('administer users')) {
@@ -1450,31 +1455,75 @@
   }
 }
 
-function user_configure_settings() {
-}
-
 /**
  * Menu callback: check an access rule
  */
 function user_admin_access_check() {
-  $form['user'] = array('#type' => 'fieldset', '#title' => t('Username'));
-  $form['user']['test'] = array('#type' => 'textfield', '#title' => '', '#description' => t('Enter a username to check if it will be denied or allowed.'), '#size' => 30, '#maxlength' => 64);
-  $form['user']['type'] = array('#type' => 'hidden', '#value' => 'user');
-  $form['user']['submit'] = array('#type' => 'submit', '#value' => t('Check username'));
+  $form['user'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('Username'),
+    '#collapsible' => TRUE
+  );
+  $form['user']['test'] = array(
+    '#type' => 'textfield', 
+    '#title' => '', 
+    '#description' => t('Enter a username to check if it will be denied or allowed.'), 
+    '#size' => 30, 
+    '#maxlength' => 64
+  );
+  $form['user']['type'] = array(
+    '#type' => 'hidden', 
+    '#value' => 'user'
+  );
+  $form['user']['submit'] = array(
+    '#type' => 'submit', 
+    '#value' => t('Check username'),
+  );
   $output .= drupal_get_form('check_user', $form, 'user_admin_access_check');
   unset($form); // prevent endless loop?
 
-  $form['mail'] = array('#type' => 'fieldset', '#title' => t('E-mail'));
-  $form['mail']['test'] = array('#type' => 'textfield', '#title' => '', '#description' => t('Enter an e-mail address to check if it will be denied or allowed.'), '#size' => 30, '#maxlength' => 64);
-  $form['mail']['type'] = array('#type' => 'hidden', '#value' => 'mail');
-  $form['mail']['submit'] = array('#type' => 'submit', '#value' => t('Check e-mail'));
+  $form['mail'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('E-mail'),
+    '#collapsible' => TRUE
+  );
+  $form['mail']['test'] = array(
+    '#type' => 'textfield', 
+    '#title' => '', 
+    '#description' => t('Enter an e-mail address to check if it will be denied or allowed.'), 
+    '#size' => 30, 
+    '#maxlength' => 64
+  );
+  $form['mail']['type'] = array(
+    '#type' => 'hidden', 
+    '#value' => 'mail'
+  );
+  $form['mail']['submit'] = array(
+    '#type' => 'submit', 
+    '#value' => t('Check e-mail')
+  );
   $output .= drupal_get_form('check_mail', $form, 'user_admin_access_check');
   unset($form); // prevent endless loop?
 
-  $form['host'] = array('#type' => 'fieldset', '#title' => t('Hostname'));
-  $form['host']['test'] = array('#type' => 'textfield', '#title' => '', '#description' => t('Enter a hostname or IP address to check if it will be denied or allowed.'), '#size' => 30, '#maxlength' => 64);
-  $form['host']['type'] = array('#type' => 'hidden', '#value' => 'host');
-  $form['host']['submit'] = array('#type' => 'submit', '#value' => t('Check hostname'));
+  $form['host'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('Hostname'),
+  );
+  $form['host']['test'] = array(
+    '#type' => 'textfield', 
+    '#title' => '', 
+    '#description' => t('Enter a hostname or IP address to check if it will be denied or allowed.'), 
+    '#size' => 30, 
+    '#maxlength' => 64
+  );
+  $form['host']['type'] = array(
+    '#type' => 'hidden', 
+    '#value' => 'host'
+  );
+  $form['host']['submit'] = array(
+    '#type' => 'submit', 
+    '#value' => t('Check hostname')
+  );
   $output .= drupal_get_form('check_host', $form, 'user_admin_access_check');
   unset($form); // prevent endless loop?
 
@@ -1878,18 +1927,72 @@
 
 function user_configure() {
   // User registration settings.
-  $form['registration'] = array('#type' => 'fieldset', '#title' => t('User registration settings'));
-  $form['registration']['user_register'] = array('#type' => 'radios', '#title' => t('Public registrations'), '#default_value' => variable_get('user_register', 1), '#options' => array(t('Only site administrators can create new user accounts.'), t('Visitors can create accounts and no administrator approval is required.'), t('Visitors can create accounts but administrator approval is required.')));
-  $form['registration']['user_registration_help'] = array('#type' => 'textarea', '#title' => t('User registration guidelines'), '#default_value' => variable_get('user_registration_help', ''), '#description' => t('This text is displayed at the top of the user registration form.  It\'s useful for helping or instructing your users.'));
+  $form['registration'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('User registration settings'),
+    '#collapsible' => TRUE
+  );
+  $form['registration']['user_register'] = array(
+    '#type' => 'radios', 
+    '#title' => t('Public registrations'), 
+    '#default_value' => variable_get('user_register', 1), 
+    '#options' => array(t('Only site administrators can create new user accounts.'), t('Visitors can create accounts and no administrator approval is required.'), t('Visitors can create accounts but administrator approval is required.'))
+  );
+  $form['registration']['user_registration_help'] = array(
+    '#type' => 'textarea', 
+    '#title' => t('User registration guidelines'), 
+    '#default_value' => variable_get('user_registration_help', ''), 
+    '#description' => t('This text is displayed at the top of the user registration form.  It\'s useful for helping or instructing your users.')
+  );
 
   // User e-mail settings.
-  $form['email'] = array('#type' => 'fieldset', '#title' => t('User e-mail settings'));
-  $form['email']['user_mail_welcome_subject'] = array('#type' => 'textfield', '#title' => t('Subject of welcome e-mail'), '#default_value' => _user_mail_text('welcome_subject'), '#maxlength' => 180, '#description' => t('Customize the subject of your welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri, %login_url.');
-  $form['email']['user_mail_welcome_body'] = array('#type' => 'textarea', '#title' => t('Body of welcome e-mail'), '#default_value' => _user_mail_text('welcome_body'), '#rows' => 15, '#description' => t('Customize the body of the welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %login_uri, %edit_uri, %login_url.');
-  $form['email']['user_mail_approval_subject'] = array('#type' => 'textfield', '#title' => t('Subject of welcome e-mail (awaiting admin approval)'), '#default_value' => _user_mail_text('approval_subject'), '#maxlength' => 180, '#description' => t('Customize the subject of your awaiting approval welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri, %login_url.');
-  $form['email']['user_mail_approval_body'] = array('#type' => 'textarea', '#title' => t('Body of welcome e-mail (awaiting admin approval)'), '#default_value' => _user_mail_text('approval_body'), '#rows' => 15, '#description' => t('Customize the body of the awaiting approval welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %login_uri, %edit_uri, %login_url.');
-  $form['email']['user_mail_pass_subject'] = array('#type' => 'textfield', '#title' => t('Subject of password recovery e-mail'), '#default_value' => _user_mail_text('pass_subject'), '#maxlength' => 180, '#description' => t('Customize the Subject of your forgotten password e-mail.') .' '. t('Available variables are:') .' %username, %site, %login_url, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri.');
-  $form['email']['user_mail_pass_body'] = array('#type' => 'textarea', '#title' => t('Body of password recovery e-mail'), '#default_value' => _user_mail_text('pass_body'), '#rows' => 15, '#description' => t('Customize the body of the forgotten password e-mail.') .' '. t('Available variables are:') .' %username, %site, %login_url, %uri, %uri_brief, %mailto, %login_uri, %edit_uri.');
+  $form['email'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('User e-mail settings'),
+    '#collapsed' => TRUE
+  );
+  $form['email']['user_mail_welcome_subject'] = array(
+    '#type' => 'textfield', 
+    '#title' => t('Subject of welcome e-mail'), 
+    '#default_value' => _user_mail_text('welcome_subject'), 
+    '#maxlength' => 180, 
+    '#description' => t('Customize the subject of your welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri, %login_url.'
+    );
+  $form['email']['user_mail_welcome_body'] = array(
+    '#type' => 'textarea', 
+    '#title' => t('Body of welcome e-mail'), 
+    '#default_value' => _user_mail_text('welcome_body'), 
+    '#rows' => 15, 
+    '#description' => t('Customize the body of the welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %login_uri, %edit_uri, %login_url.'
+  );
+  $form['email']['user_mail_approval_subject'] = array(
+    '#type' => 'textfield', 
+    '#title' => t('Subject of welcome e-mail (awaiting admin approval)'), 
+    '#default_value' => _user_mail_text('approval_subject'), 
+    '#maxlength' => 180, 
+    '#description' => t('Customize the subject of your awaiting approval welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri, %login_url.'
+  );
+  $form['email']['user_mail_approval_body'] = array(
+    '#type' => 'textarea', 
+    '#title' => t('Body of welcome e-mail (awaiting admin approval)'), 
+    '#default_value' => _user_mail_text('approval_body'), 
+    '#rows' => 15, 
+    '#description' => t('Customize the body of the awaiting approval welcome e-mail, which is sent to new members upon registering.') .' '. t('Available variables are:') .' %username, %site, %password, %uri, %uri_brief, %mailto, %login_uri, %edit_uri, %login_url.'
+  );
+  $form['email']['user_mail_pass_subject'] = array(
+    '#type' => 'textfield', 
+    '#title' => t('Subject of password recovery e-mail'), 
+    '#default_value' => _user_mail_text('pass_subject'), 
+    '#maxlength' => 180, 
+    '#description' => t('Customize the Subject of your forgotten password e-mail.') .' '. t('Available variables are:') .' %username, %site, %login_url, %uri, %uri_brief, %mailto, %date, %login_uri, %edit_uri.'
+  );
+  $form['email']['user_mail_pass_body'] = array(
+    '#type' => 'textarea', 
+    '#title' => t('Body of password recovery e-mail'), 
+    '#default_value' => _user_mail_text('pass_body'), 
+    '#rows' => 15, 
+    '#description' => t('Customize the body of the forgotten password e-mail.') .' '. t('Available variables are:') .' %username, %site, %login_url, %uri, %uri_brief, %mailto, %login_uri, %edit_uri.'
+  );
 
   // If picture support is enabled, check whether the picture directory exists:
   if (variable_get('user_pictures', 0)) {
@@ -1897,13 +2000,56 @@
     file_check_directory($picture_path, 1, 'user_picture_path');
   }
 
-  $form['pictures'] = array('#type' => 'fieldset', '#title' => t('Pictures'));
-  $form['pictures']['user_pictures'] = array('#type' => 'radios', '#title' => t('Picture support'), '#default_value' => variable_get('user_pictures', 0), '#options' => array(t('Disabled'), t('Enabled')), '#description' => t('Enable picture support.'));
-  $form['pictures']['user_picture_path'] = array('#type' => 'textfield', '#title' => t('Picture image path'), '#default_value' => variable_get('user_picture_path', 'pictures'), '#size' => 30, '#maxlength' => 255, '#description' => t('Subdirectory in the directory "%dir" where pictures will be stored.', array('%dir' => file_directory_path() .'/')));
-  $form['pictures']['user_picture_default'] = array('#type' => 'textfield', '#title' => t('Default picture'), '#default_value' => variable_get('user_picture_default', ''), '#size' => 30, '#maxlength' => 255, '#description' => t('URL of picture to display for users with no custom picture selected. Leave blank for none.'));
-  $form['pictures']['user_picture_dimensions'] = array('#type' => 'textfield', '#title' => t('Picture maximum dimensions'), '#default_value' => variable_get('user_picture_dimensions', '85x85'), '#size' => 15, '#maxlength' => 10, '#description' => t('Maximum dimensions for pictures.'));
-  $form['pictures']['user_picture_file_size'] = array('#type' => 'textfield', '#title' => t('Picture maximum file size'), '#default_value' => variable_get('user_picture_file_size', '30'), '#size' => 15, '#maxlength' => 10, '#description' => t('Maximum file size for pictures, in kB.'));
-  $form['pictures']['user_picture_guidelines'] = array('#type' => 'textarea', '#title' => t('Picture guidelines'), '#default_value' => variable_get('user_picture_guidelines', ''), '#description' => t('This text is displayed at the picture upload form in addition to the default guidelines.  It\'s useful for helping or instructing your users.'));
+  $form['pictures'] = array(
+    '#type' => 'fieldset', 
+    '#title' => t('Pictures'),
+    '#collapsed' => TRUE
+  );
+  $form['pictures']['user_pictures'] = array(
+    '#type' => 'radios', 
+    '#title' => t('Picture support'), 
+    '#default_value' => variable_get('user_pictures', 0), 
+    '#options' => array(t('Disabled'), t('Enabled')), 
+    '#description' => t('Enable picture support.')
+  );
+  $form['pictures']['user_picture_path'] = array(
+    '#type' => 'textfield', 
+    '#title' => t('Picture image path'), 
+    '#default_value' => variable_get('user_picture_path', 'pictures'), 
+    '#size' => 30, 
+    '#maxlength' => 255, 
+    '#description' => t('Subdirectory in the directory "%dir" where pictures will be stored.', array('%dir' => file_directory_path() .'/'))
+  );
+  $form['pictures']['user_picture_default'] = array(
+    '#type' => 'textfield', 
+    '#title' => t('Default picture'), 
+    '#default_value' => variable_get('user_picture_default', ''), 
+    '#size' => 30, 
+    '#maxlength' => 255, 
+    '#description' => t('URL of picture to display for users with no custom picture selected. Leave blank for none.')
+  );
+  $form['pictures']['user_picture_dimensions'] = array(
+    '#type' => 'textfield', 
+    '#title' => t('Picture maximum dimensions'), 
+    '#default_value' => variable_get('user_picture_dimensions', '85x85'), 
+    '#size' => 15, 
+    '#maxlength' => 10, 
+    '#description' => t('Maximum dimensions for pictures.')
+  );
+  $form['pictures']['user_picture_file_size'] = array(
+    '#type' => 'textfield', 
+    '#title' => t('Picture maximum file size'), 
+    '#default_value' => variable_get('user_picture_file_size', '30'), 
+    '#size' => 15, 
+    '#maxlength' => 10, 
+    '#description' => t('Maximum file size for pictures, in kB.')
+  );
+  $form['pictures']['user_picture_guidelines'] = array(
+    '#type' => 'textarea', 
+    '#title' => t('Picture guidelines'), 
+    '#default_value' => variable_get('user_picture_guidelines', ''), 
+    '#description' => t('This text is displayed at the picture upload form in addition to the default guidelines.  It\'s useful for helping or instructing your users.')
+  );
 
   return system_settings_form('user_configure_settings', $form);
 }
