--- W:/ClearlyByDesign/Drupal/modules/6.x/alterprofilepage/6.x-2.6/alterprofilepage/alterprofilepage.module	Sun Apr 04 04:43:54 2010
+++ W:/ClearlyByDesign/Drupal/modules/6.x/alterprofilepage/6.x-2.6 patched/alterprofilepage/alterprofilepage.module	Fri Aug 27 09:34:27 2010
@@ -46,10 +46,113 @@
     $lastlogintime = strftime('%x', $account->access);
   }
   $account->content['summary']['last_access'] = array(
-  '#type' => 'user_profile_item',
-  '#title' => t('Last login'),
-  '#value' => $lastlogintime,
-  '#weight' => -18,
+    '#type' => 'user_profile_item',
+    '#title' => t('Last login'),
+    '#value' => $lastlogintime,
+    '#weight' => -18,
   );
-  drupal_set_title(t('@user\'s profile', array('@user' => $account->name)));
+  
+  $title_pattern = t( variable_get( 'alterprofilepage_title', t( '@user\'s profile' ) ),
+                  array( '@user' => $account->name, ) );
+  
+  if ( module_exists ( 'token' ) ) {
+
+    $types = array(
+      'global' => NULL,
+      'user' => user_load( $account->uid ),
+    );
+
+    // Apply token patterns by resetting the token cache first and then using token_replace_multiple to insert token values
+    token_get_values( 'global', NULL, TRUE );
+    $title = token_replace_multiple( $title_pattern, $types );
+
+    // Extra fields
+    $extra = variable_get( 'alterprofilepage_extras', '' );
+    if ( !empty( $extra ) ) {
+      $extras_lines = preg_split( '[\n]', str_replace( array( '\r\n', '\r' ), '\n', $extra ) );
+      foreach ( $extras_lines as $extra_item => $line ) {
+        $extra_field = explode( '|', $line, 3 );  // label|class|value, where type is either 'item' or 'markup'
+        $extra_field[1] = trim( $extra_field[1] );
+        $account->content['summary']['alterprofilepage_extra_' . $extra_item] = array(
+          '#type' => 'user_profile_item',
+          '#title' => filter_xss( token_replace_multiple( t( $extra_field[0] ), $types ) ),
+          '#attributes' => ( !empty( $extra_field[1] ) ? array( 'class' => filter_xss( token_replace_multiple( $extra_field[1], $types ) ), ) : array() ),
+          '#value' => filter_xss( token_replace_multiple( $extra_field[2], $types ) ),
+          '#weight' => -17 + $extra_item,
+        );
+      }
+    }
+
+  }
+  else {
+    $title = $title_pattern;
+  }
+  
+  drupal_set_title( filter_xss( $title ) );
+
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter().
+ */
+function alterprofilepage_form_user_admin_settings_alter(&$form, $form_state) {
+
+  $form['alterprofilepage_title_fldset'] = array(
+    '#type' => 'fieldset',
+    '#title' => t( 'Profile Page Title' ),
+    '#collapsible' => TRUE,
+    '#collapsed' => FALSE,
+  );
+
+  $form['alterprofilepage_title_fldset']['alterprofilepage_title'] = array(
+    '#type' => 'textarea',
+    '#title' => t( 'Title pattern' ),
+    '#description' => t( 'You can specify a pattern to be used for the user
+                          profile page title instead of the default pattern.
+                          Use <em>@user</em> as a token for the user name.' ),
+    '#default_value' => variable_get( 'alterprofilepage_title', t( '@user\'s profile' ) ),
+    '#rows' => 2,
+  );
+  
+  if ( module_exists( 'token' ) ) {
+    // Add the token help to a collapsed fieldset at the end of the configuration page.
+    
+    $form['alterprofilepage_title_fldset']['alterprofilepage_title']['#description'] .= 
+                  '  ' . t( 'You can also use other tokens in the pattern (see Available Token List below).' );
+                  
+    $form['alterprofilepage_title_fldset']['token_help'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Available Tokens List'),
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+    );
+    $form['alterprofilepage_title_fldset']['token_help']['content'] = array(
+      '#type' => 'markup',
+      '#value' => theme('token_help'),
+    );
+
+    $form['alterprofilepage_extras'] = array(
+      '#type' => 'textarea',
+      '#title' => t( 'Extras' ),
+      '#description' => t( 'You can specify extra fields to be displayed in the summary area of
+                            the profile here.  Use a separate line for each field with each
+                            line inthe format<br/><br/>&nbsp;&nbsp;&nbsp;
+                            <em>title</em>|<em>classes</em>|<em>value</em><br/><br/>
+                            where <ul>
+                            <li><em>title</em> is the heading your want to appear
+                            for the item, which can include tokens;</li>
+                            <li><em>classes</em> is one or more class separated by
+                            spaces that you want applied to both the title and value,
+                            which can also include tokens (leave as a space if you
+                            do not want to have any classes applied in the
+                            &lt;dt&gt; and &lt;dd&gt; tags); and</li>
+                            <li><em>value</em> is the value under the heading, made
+                            up of text and one or more tokens.</li></ul>
+                            Extra fields will appear in the order you specify them here.' ),
+      '#default_value' => variable_get( 'alterprofilepage_extras', '' ),
+      '#rows' => 5,
+    );
+
+  }
+  
 }
