--- role_weights.module.ORIGINAL	2009-05-21 09:08:27.000000000 +0200
+++ role_weights.module			2009-05-21 14:49:29.000000000 +0200
@@ -7,6 +7,51 @@
  */
 
 /**
+ * Implementation of hook_help().
+ * @return
+ * Help text for section.
+ */
+function role_weights_help($path, $arg) {
+  if ($path == 'admin/help#role_weights') {
+    $txt = 'A small utility module to allow site admins to specify certain weights for user roles. Its not much use on its own, more of a helper module for other modules which require this functionality.<br><br>
+Installation<br>
+========================================<br>
+1. Upload the role_weights directory to your modules directory.<br>
+2. Enable the module under Administer -> Site building -> Modules.<br>
+3. Visit Administer -> User management -> Roles and choose the \'edit\' link next to a role to change a role\'s weight.<br><br>
+Advanced settings<br>
+========================================<br>
+Once installed, site admins can enable sorting roles by weight on the Roles configuration
+(/admin/user/roles) and Access Control (/admin/user/pages/access) pages selecting a checkbox on Administer -> User management -> Role Weights.<br><br>
+Caveat: currently this setting will override Drupal\'s default sorting (alphabetical). So,
+if this variable is set and a roles all have equal weight then the sorting will be less
+than satisfactory. There is an issue for this published <a href="http://drupal.org/node/368088">here</a>.<br><br>
+Notes<br>
+========================================<br>
+CAUTION! Do NOT allow lower-level roles to edit role weights if another module is relying
+on it to control any higher-level stuff like access permissions, site settings and development modules. I wouldn\'t really advise this in the first place - this module is intended for simple selection of roles based on weights for use in, for example, theming usernames & profiles or choosing the \'highest\' from multiple roles.<br><br>
+For more information, visit: <a href="http://drupal.org/project/role_weights">Role Weights module page on Drupal site</a>.<br>';
+    return '<p>'. t($txt) .'</p>';
+  }
+}
+
+/**
+ * Implementation of hook_menu().
+ */
+function role_weights_menu() {
+  $items['admin/user/role_weights'] = array(
+    'title' => 'Role Weights',
+    'description' => "Enable sorting roles by weight on the Roles configuration
+(/admin/user/roles) and Access Control (/admin/user/pages/access) pages.",
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('role_weights_settings_form'),
+    'access arguments' => array('administer users'),
+    'type' => MENU_NORMAL_ITEM, 
+  );
+  return $items;
+}
+
+/**
  * Implementation of hook_theme().
  */
 function role_weights_theme($existing, $type, $theme, $path) {
@@ -320,3 +365,21 @@ function role_weights_token_list($type =
     return $tokens;
   }
 }
+
+/**
+ * Form callback for the admin settings form.
+ */
+function role_weights_settings_form() {
+  $form = array();
+
+  $form['role_weights_reorder_forms'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Enable sort by role weights'),
+    '#default_value' => variable_get('role_weights_reorder_forms', FALSE),
+    '#description'   => t('Enable sorting roles by weight on the Roles configuration
+(/admin/user/roles) and Access Control (/admin/user/pages/access) pages.')
+  );
+
+//  return $form;
+  return system_settings_form($form);
+}
