Index: pageroute.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute.module,v
retrieving revision 1.71.2.7
diff -u -r1.71.2.7 pageroute.module
--- pageroute.module	26 Mar 2009 13:53:36 -0000	1.71.2.7
+++ pageroute.module	5 Aug 2009 08:18:57 -0000
@@ -24,7 +24,7 @@
 include_once(drupal_get_path('module', 'pageroute') .'/pageroute.page.inc');
 
 /**
- * Implementation of hook_menu()
+ * Implementation of hook_menu().
  * Create path targets: route-path/ and route-path/page-name/
  */
 function pageroute_menu() {
@@ -34,13 +34,13 @@
 
   while ($route_data = db_fetch_object($result)) {
     $route_data->options = unserialize($route_data->options);
-        
+
     if ($route_data->options['tabs'] == PAGEROUTE_MENU_TABS) {
       $page_result = db_query("SELECT * FROM {pageroute_pages} WHERE prid = %d", $route_data->prid);
-    
+
       while ($page = db_fetch_object($page_result)) {
         $page->options = unserialize($page->options);
-              
+
         if (isset($page->options['no_tab']) && $page->options['no_tab']) {
           continue;
         }
@@ -70,7 +70,7 @@
       'type' => MENU_NORMAL_ITEM
     );
   }
-  
+
   return $items;
 }
 
@@ -80,19 +80,19 @@
  */
 function pageroute_init_route($prid, $page_name = NULL, $uid = NULL, $nid = NULL) {
   $args = array();
-  
+
   if (is_numeric($uid)) {
     $args['uid'] = $uid;
   }
-  
+
   if (is_numeric($nid)) {
     $args['nid'] = $nid;
   }
 
-  $route = &pageroute_route::load($prid); 
+  $route = &PagerouteRoute::load($prid);
   $route->start($page_name);
   $route->args = &$args;
-  
+
   return $route;
 }
 
@@ -106,7 +106,7 @@
     $form_state['storage']['create'] = TRUE;
     return;
   }
- 
+
   if (!isset($form_state['storage']['route'])) {   // first call
     $func_args = func_get_args();
 
@@ -119,24 +119,24 @@
   }
   else {
     $route = &$form_state['storage']['route'];
-  }  
+  }
 
   unset($form_state['values']);
 
   $args = &$route->args;
 
-  if (!$route->page_data_current) {
+  if (!$route->pageDataCurrent) {
     return;
   }
 
-  $page_data = &$route->page_data_current;
+  $page_data = &$route->pageDataCurrent;
   $page_name = $page_data->name;
-  
+
   $path = drupal_get_path('module', 'pageroute') .'/pageroute.css';
   drupal_add_css($path, 'module', 'all', FALSE);
-    
+
   if (isset($form_state['target'])) {
-    $route->set_suggested_page($form_state['target']);
+    $route->setSuggestedPage($form_state['target']);
 
     $uid = isset($args['uid']) ? $args['uid'] : NULL;
     $nid = isset($args['nid']) ? $args['nid'] : NULL;
@@ -144,16 +144,16 @@
     if (module_exists('rules')) {
       $args = &$form_state['args'];
       rules_invoke_event('pageroute_used', $route, $user, $uid, $nid);
-    }      
+    }
     module_invoke_all('pageroute_used',  $route, $user, $uid, $nid);
-   
-    $page_data = &$route->page_data_current;
-    $page_name = $page_data->name;      
-         
+
+    $page_data = &$route->pageDataCurrent;
+    $page_name = $page_data->name;
+
     if ($route->options['tabs'] == PAGEROUTE_MENU_TABS) {
-     
+
       $url = '';
-      
+
       if ($args) {
         if (isset($args['uid'])) {
           $url = $url . $args['uid'];
@@ -162,7 +162,7 @@
           $url = $url .'/'. $args['nid'];
         }
       }
-        
+
       if (isset($page_data->options['no_tab']) && $page_data->options['no_tab']) {
         menu_set_active_item($route->path .'//'. $url);
       }
@@ -170,14 +170,14 @@
         menu_set_active_item($route->path .'/'. $page_data->name .'/'. $url);
       }
     }
-  }  
-  
+  }
+
   $form = array();
-    
+
   drupal_set_title(check_plain($page_data->title));
 
   // loads the page variable with a page object
-  $route->set_form($form, $page_data, $page, $form_state, $args);
+  $route->getForm($form, $page_data, $page, $form_state, $args);
 
   if (!isset($args['hide_pageroute_buttons'])) {
     $args['hide_pageroute_buttons'] = FALSE;
@@ -204,22 +204,21 @@
   if (!$form_state['submitted']) {
     return $form;
   }
-   
+
   if (isset($form_state['page'])) {
     $page = &$form_state['page'];
   }
   else {
-    
-    $page = &pageroute_page::get_object($form_state['storage']['route']->page_data_current);
+    $page = &PageroutePage::getObject($form_state['storage']['route']->pageDataCurrent);
     $form_state['page'] = &$page;
   }
-    
+
   $options = $page->options;
   $button = $form_state['clicked_button'];
-  
+
   if (!isset($button['#tab-button'])) {  // not a tab-like submit button
     switch ($button['#value']) {
-      case $options['cancel']:  
+      case $options['cancel']:
         $form['#validated'] = TRUE;
         $form['#post'] = array();
         pageroute_cancel($form, $form_state);
@@ -228,10 +227,10 @@
       case $options['back']:
         $class = get_class($page);
         // add default submit handler
-        $function = 'get_default_submit_handler';
+        $function = 'getDefaultSubmitHandler';
         pageroute_insert_handlers($form_state['submit_handlers'], call_user_func(array($class, $function), $form));
         // add default validate handler
-        $function = 'get_default_validate_handler';
+        $function = 'getDefaultValidateHandler';
         pageroute_insert_handlers($form_state['validate_handlers'], call_user_func(array($class, $function), $form));
       default:
         $form_state['submit_handlers'][] = 'pageroute_page_form_submit_prepare_target';
@@ -241,16 +240,16 @@
   else {  // tab-like submit button
     $class = get_class($page);
     // add default submit handler
-    $function = 'get_default_submit_handler';
+    $function = 'getDefaultSubmitHandler';
     pageroute_insert_handlers($form_state['submit_handlers'], call_user_func(array($class, $function), $form));
     // add default validate handler
-    $function = 'get_default_validate_handler';
+    $function = 'getDefaultValidateHandler';
     pageroute_insert_handlers($form_state['validate_handlers'], call_user_func(array($class, $function), $form));
   }
 
   // in case validate fails
   $form_state['target'] = PAGEROUTE_CURRENT;
-  
+
   return $form;
 }
 
@@ -271,13 +270,13 @@
  * Prepare for the submit function. This is also a #submit callback
  * It will determine the redirect target.
  */
-function pageroute_page_form_submit_prepare_target($form, &$form_state) {    
+function pageroute_page_form_submit_prepare_target($form, &$form_state) {
   global $user;
 
   $page = &$form_state['page'];
   $args = &$page->route->args;
 
-  $function = 'form_submitted';
+  $function = 'formSubmitted';
   $page->$function($form_state);
 
   if (!isset($form_state['values']['page_op'])) {
@@ -308,18 +307,18 @@
   $route = &$form_state['storage']['route'];
 
   // no page access -> try redirect
-  if (!$route->check_page_access($page->name, $form_state['target'])) {
+  if (!$route->checkPageAccess($page->name, $form_state['target'])) {
     unset($form_state['storage']);
     $form_state['rebuild'] = FALSE;
-    
+
     if ($route->options['redirect_path']) {
       drupal_redirect_form($form, pageroute_get_redirect_path($page));
       return;
     }
-    
+
     drupal_not_found();
     pageroute_exit_now();
-    return;  
+    return;
   }
 
   $form_state['rebuild'] = TRUE;
@@ -332,22 +331,21 @@
 function pageroute_page_tab_submit($form, &$form_state) {
   $page = &$form_state['page'];
   $route = &$page->route;
-  
+
   $form_state['target'] = PAGEROUTE_CURRENT;
-  $route->set_suggested_page($form_state['clicked_button']['#tab-button']);
+  $route->setSuggestedPage($form_state['clicked_button']['#tab-button']);
 
   $form_state['rebuild'] = TRUE;
 }
 
-
 /**
  * Check if the user has access to a page
  */
 function pageroute_access($prid) {
   global $user;
-    
-  $route = pageroute_route::load($prid);
-  
+
+  $route = PagerouteRoute::load($prid);
+
   return isset($route->options['access']['allowed_roles']) && array_intersect(array_keys($user->roles), $route->options['access']['allowed_roles']) ? TRUE : FALSE;
 }
 
@@ -355,20 +353,20 @@
  * Submit function for cancel button
  */
 function pageroute_cancel($form, &$form_state) {
-  $page = &$form_state['page']; 
+  $page = &$form_state['page'];
   $route = &$page->route;
 
   $form_state['target'] = $page->get_cancel_target();
-  
-  if (!$route->check_page_access($page->name, $form_state['target'])) {
+
+  if (!$route->checkPageAccess($page->name, $form_state['target'])) {
     if ($route->options['redirect_path']) {
       unset($form_state['storage']);
       $form_state['rebuild'] = FALSE;
       drupal_redirect_form($form, pageroute_get_redirect_path($page));
       return;
-    }  
+    }
   }
-      
+
   $form_state['rebuild'] = TRUE;
 }
 
@@ -399,9 +397,9 @@
       $module_path = drupal_get_path('module', $module);
       foreach ($type_ids as $type_id => $file) {
         pageroute_include_page_file(NULL, $module_path, $file);
-        $page_class = $module .'_page_'. $type_id;
+        $page_class = $module . 'Page' . $type_id;
         $type = call_user_func(array($page_class, 'info'));
-        
+
         $module_types[$module][$type_id]['name'] = $type['name'];
         $module_types[$module][$type_id]['file'] = $file;
       }
@@ -433,30 +431,29 @@
       'view' => 'pageroute.page_view',
       'add' => 'pageroute.page_add',
       'edit' => 'pageroute.page_edit',
-      'user_edit' => 'pageroute.page_user_edit',
+      'useredit' => 'pageroute.page_useredit',
       'manage' => 'pageroute.page_manage',
     ),
   );
 }
 
-/** 
+/**
  * Invokes a page type specific implementation, if it exists
- * @param $page 
+ * @param $page
  *   The page object or the page type
  * @param $op
  *  The operation that should be invoked
  */
 function pageroute_invoke($page_data, $op, $arg1 = NULL) {
-
   // Include needed type!
   pageroute_include_page_type($page_data->module, $page_data->type);
-  
+
   // try to call a static class function
   $class = $page_data->module .'_page_'. $page_data->type;
   $function = $op;
-             
+
   if (method_exists($class, $function)) {
-        
+
     if (is_object($page_data)) {
       return $page_data->$function($page_data->route, $page_data, $arg1);
     }
@@ -471,7 +468,7 @@
  */
 function pageroute_get_redirect_path(&$page) {
   $route = &$page->route;
-  
+
   if (!empty($route->options['redirect_path'])) {
     return strtr($route->options['redirect_path'], array(
       '!nid' => intval($page->options['nid']),
@@ -494,17 +491,17 @@
 
 function pageroute_get_page_path(&$page, $args = NULL) {
   $path = $page->route->path .'/'. $page->name .'/';
-  
+
   if ($args['uid']) {
     $path = $path . $args['uid'];
   }
-  
+
   $path = $path .'/';
 
   if ($args['nid']) {
     $path = $path . $args['nid'];
   }
-  
+
   return $path;
 }
 
@@ -524,7 +521,7 @@
     if ($uid != $user->uid && $permission && user_access($permission)) {
       return $uid;
     }
-    else if (!$permission) {
+    elseif (!$permission) {
       return $uid;
     }
   }
@@ -535,10 +532,7 @@
  * Add tabs, buttons and other necessary properties to the form.
  */
 function pageroute_decorate(&$form, &$page, $no_pageroute_buttons = NULL, $button_name = 'page_op') {
-
-dprint_r($no_pageroute_buttons);
-
-  pageroute_add_tabs($form, $page->route);  
+  pageroute_add_tabs($form, $page->route);
   if (!$no_pageroute_buttons || $no_pageroute_buttons == FALSE) {
     pageroute_add_buttons($form, $page, $button_name);
   }
@@ -548,7 +542,6 @@
  * Add the pageroute buttons to a given form.
  */
 function pageroute_add_buttons(&$form, &$page, $button_name = 'page_op') {
-
   //get the right options first
   $options = pageroute_invoke($page, 'options');
   $options = (isset($options)) ? $options : $page->options;
@@ -570,17 +563,17 @@
         }
       }
     }
-    else if (!$options['show_route_buttons']) {
+    elseif (!$options['show_route_buttons']) {
         continue;
     }
-        
+
     $form_buttons[$name]['#attributes']['class'] = 'pageroute-'. $name;
     $form_buttons[$name]['#type'] = 'submit';
     $form_buttons[$name]['#value'] = t($options[$name]);
     $form_buttons[$name]['#name'] = $button_name;
     $form_buttons[$name]['#weight'] = 10 + $key;
   }
-  
+
   if (isset($options['cancel']) && $options['cancel']) {
     //also add an cancel link that links to the default redirect target
     $form_buttons['cancel']['#attributes']['class'] = 'pageroute-cancel';
@@ -594,7 +587,7 @@
     $form_buttons['#suffix'] = '</span>';
     $form_buttons['#weight'] = 50;
   }
-  
+
   $form['bottom']['buttons'] = $form_buttons;
 
   if ($access = user_access('administer pageroutes')) {
@@ -606,11 +599,10 @@
  * Add the pageroute tabs to a given form.
  */
 function pageroute_add_tabs(&$form, &$route)  {
-
   if ($route->options['tabs'] != PAGEROUTE_BUTTON_TABS) {
     return;
   }
-  
+
   $form_tabs = array();
 
   foreach ($route->pages as $index => $tabpage) {
@@ -621,18 +613,18 @@
         '#tab-button' => $tabpage->name,
         '#submit' => array('pageroute_page_tab_submit')
       );
-      if (!$route->check_page_access($tabpage->name)) {
+      if (!$route->checkPageAccess($tabpage->name)) {
         $form_tabs[$tabpage->name]['#attributes'] = array('class' => 'distant');
-        $form_tabs[$tabpage->name]['#disabled']   = TRUE;        
+        $form_tabs[$tabpage->name]['#disabled']   = TRUE;
       }
-      else if ($tabpage->name == $page->name) {
+      elseif ($tabpage->name == $page->name) {
         $form_tabs[$tabpage->name]['#attributes'] = array('class' => 'active');
       }
     }
   }
   $form_tabs['#weight'] = -100;
   $form_tabs['#theme'] = 'pageroute_route_tabs';
-  
+
   $form['top']['tabs'] = $form_tabs;
 }
 
@@ -689,11 +681,11 @@
 }
 
 function theme_pageroute_admin_bottom($route) {
-  $page = &$route->page_data_current;
-  
+  $page = &$route->pageDataCurrent;
+
   return array(
     'admin' => array(
-      '#value' => t('Pageroute admin: '),
+      '#value' => t('Pageroute admin:'),
       '#weight' => 2000
     ),
     'edit' => array(
@@ -711,13 +703,13 @@
     'route' => array(
       '#value' => l(t('Route'), 'admin/build/pageroute/'. $route->prid .'/edit', array( 'query' => drupal_get_destination())),
       '#weight' => 2004, '#suffix' => ' '
-    ),      
+    ),
     'overview' => array(
       '#value' => l(t('Overview'), 'admin/build/pageroute/'. $route->prid),
       '#weight' => 2005, '#suffix' => ' '
     )
   );
-  
+
   return drupal_render($elements);
 }
 
@@ -732,9 +724,7 @@
 
 function pageroute_include_page_type($module, $type) {
   $types = pageroute_get_types();
-
   $file = $types[$module][$type]['file'];
-
   module_load_include('inc', $module, $file);
 }
 
@@ -745,3 +735,11 @@
   module_invoke_all('exit');
   exit;
 }
+
+/**
+ * Helper function to retrieve a page class
+ */
+function pageroute_get_page_class($module, $type) {
+  $page_class = $module . 'Page' . $type;
+  return $page_class;
+}
Index: pageroute.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute.install,v
retrieving revision 1.10.2.5
diff -u -r1.10.2.5 pageroute.install
--- pageroute.install	26 Mar 2009 13:53:36 -0000	1.10.2.5
+++ pageroute.install	5 Aug 2009 08:18:55 -0000
@@ -5,11 +5,11 @@
  * @file
  * Install
  */
- 
+
 function pageroute_schema() {
 
   $schema = array();
-  
+
   $schema['pageroute_routes'] = array(
     'fields' => array(
       'prid' =>     array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
@@ -18,7 +18,7 @@
     ),
     'primary key' => array('prid')
   );
-   
+
   $schema['pageroute_pages'] = array(
     'fields' => array(
       'prid' =>      array('type' => 'int', 'length' => 10, 'unsigned' => TRUE, 'not null' => TRUE),
@@ -31,7 +31,7 @@
     ),
     'primary key' => array('prid', 'name')
   );
-   
+
   return $schema;
 }
 
@@ -75,7 +75,7 @@
   while ($page = db_fetch_object($result)) {
     $page->options = unserialize($page->options);
     if (in_array($page->options['content-type'], array_keys($lonely_node_types))) {
-      db_query("UPDATE {pageroute_pages} SET type = %d WHERE prid = %d AND name = '%s'",
+      update_sql("UPDATE {pageroute_pages} SET type = %d WHERE prid = %d AND name = '%s'",
         NODE_MANAGE_LONELY, $page->prid, $page->name);
     }
   }
@@ -156,7 +156,7 @@
 
     foreach ($page_types as $module => $type_ids) {
       foreach ($type_ids as $type_id => $file) {
-        db_query("UPDATE {pageroute_pages} SET module = '%s' WHERE type = '%s'", $module, $type_id);
+        update_sql("UPDATE {pageroute_pages} SET module = '%s' WHERE type = '%s'", $module, $type_id);
       }
     }
   }
Index: pageroute_ui.admin_export.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/Attic/pageroute_ui.admin_export.inc,v
retrieving revision 1.1.2.3
diff -u -r1.1.2.3 pageroute_ui.admin_export.inc
--- pageroute_ui.admin_export.inc	16 Jul 2009 14:06:14 -0000	1.1.2.3
+++ pageroute_ui.admin_export.inc	5 Aug 2009 08:18:58 -0000
@@ -2,7 +2,8 @@
 // $Id: pageroute_ui.admin_export.inc,v 1.1.2.3 2009/07/16 14:06:14 fago Exp $
 
 /**
- * @file Pageroute UI Import/Export
+ * @file
+ * Pageroute UI Import/Export
  */
 
 
@@ -19,7 +20,7 @@
     '#required' => TRUE,
   );
   $form['button'] = array('#type' => 'submit', '#weight' => 10, '#value' => t('Import'));
-  
+
   return $form;
 }
 
@@ -29,7 +30,7 @@
     $route->options = serialize($route->options);
     drupal_write_record('pageroute_routes', $route);
     $route->prid = db_last_insert_id('pageroute_routes', 'prid');
-    
+
     foreach ($route->pages as $page) {
       $page->options = serialize($page->options);
       drupal_write_record('pageroute_pages', $page);
Index: pageroute_ui.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute_ui.module,v
retrieving revision 1.36.2.6
diff -u -r1.36.2.6 pageroute_ui.module
--- pageroute_ui.module	26 Mar 2009 14:18:58 -0000	1.36.2.6
+++ pageroute_ui.module	5 Aug 2009 08:18:59 -0000
@@ -29,7 +29,7 @@
  * Implementation of hook_menu().
  */
 function pageroute_ui_menu() {
-  
+
   $items = array();
 
   $access = array('administer pageroutes');
@@ -51,7 +51,7 @@
     'type' => MENU_DEFAULT_LOCAL_TASK,
     'weight' => 0
   );
-    
+
   $items['admin/build/pageroute/add'] = array(
     'title' => 'Add route',
     'description' => 'Add a route.',
@@ -63,7 +63,7 @@
     'weight' => 1,
     'file' => 'pageroute_ui.forms.inc',
   );
-  
+
   $items['admin/build/pageroute/import'] = array(
     'title' => 'Import',
     'description' => 'Import the pageroute',
@@ -75,7 +75,7 @@
     'type' => MENU_LOCAL_TASK,
     'weight' => 2,
   );
-   
+
   $items['admin/build/pageroute/%'] = array(
     'title' => 'Route',
     'description' => 'Route',
@@ -107,7 +107,7 @@
     'type' => MENU_LOCAL_TASK,
     'weight' => 1,
   );
-    
+
   $items['admin/build/pageroute/%/delete'] = array(
     'title' => 'Delete route',
     'description' => 'Delete the route',
@@ -131,7 +131,7 @@
     'type' => MENU_LOCAL_TASK,
     'weight' => 3,
   );
-  
+
   $items['admin/build/pageroute/%/export'] = array(
     'title' => 'Export',
     'description' => 'Export the pageroute',
@@ -153,7 +153,7 @@
     'file' => 'pageroute_ui.forms.inc',
     'type' => MENU_CALLBACK,
   );
-    
+
   $items['admin/build/pageroute/%/page-edit/%'] = array(
     'title' => 'Page',
     'description' => 'Page',
@@ -197,7 +197,7 @@
     $row[] = l($route->path, $route->path);
     $row[] = l(t('Edit route'), "admin/build/pageroute/$route->prid/edit");
     $row[] = l(t('Delete route'), "admin/build/pageroute/$route->prid/delete");
-    $row[] = l(t('Export route'), "admin/build/pageroute/$route->prid/export");        
+    $row[] = l(t('Export route'), "admin/build/pageroute/$route->prid/export");
     $row[] = l(t('List pages'), "admin/build/pageroute/$route->prid");
     $row[] = l(t('Add page'), "admin/build/pageroute/$route->prid/add");
     $rows[] = $row;
@@ -211,12 +211,12 @@
 }
 
 
-function pageroute_ui_route_overview(&$route) {  
+function pageroute_ui_route_overview(&$route) {
   drupal_set_title(check_plain($route->path));
   $result = db_query("SELECT * FROM {pageroute_pages} WHERE prid = %d ORDER BY weight, name", $route->prid);
-  
+
   $header = array(t('Name'), t('Title'), t('Type'), t('Weight'), array('data' => t('Operations'), 'colspan' => '2'));
-  
+
   $module_types = pageroute_get_types();
 
   $rows = array();
@@ -237,7 +237,7 @@
     $row[] = l(t('Delete'), "admin/build/pageroute/$route->prid/page-delete/$name");
     $rows[] = $row;
   }
-  
+
   $rows[] = array(array('data' => l(t('Add page'), "admin/build/pageroute/$route->prid/add"), 'colspan' => '6', 'class' => 'message'));
 
   return theme('table', $header, $rows, array('id' => 'pageroute_ui_pages'));
@@ -247,14 +247,14 @@
  * Determines the neighbours for all pages and writes their names
  * into $page->options['neighbours'] with the keys 'back' and 'forward'
  * so that they can be accessed easily on runtime.
- * 
+ *
  * All changfes are stored in the database.
- * 
+ *
  * @param $route The route, for which the page neighbours should be updated
  */
 function pageroute_ui_update_neighbours(&$route) {
   $result = db_query("SELECT * FROM {pageroute_pages} WHERE prid = %d ORDER BY weight, name", $route->prid);
-  
+
   $pages = array();
   $updated = array();
   $back = (object)array('name' => '');
@@ -285,7 +285,7 @@
     $back->options['neighbours']['forward'] = '';
     $updated[$back->name] = $back;
   }
-  
+
   //now store all updates in the db
   foreach ($updated as $the_page) {
     pageroute_ui_update_page($route, $the_page, $the_page->name);
Index: pageroute_ui.forms.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute_ui.forms.inc,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 pageroute_ui.forms.inc
--- pageroute_ui.forms.inc	26 Mar 2009 13:53:36 -0000	1.1.2.6
+++ pageroute_ui.forms.inc	5 Aug 2009 08:18:59 -0000
@@ -6,20 +6,20 @@
  * Adminstration forms, included from pageroute_ui.module
  */
 
-function pageroute_ui_route_edit(&$form_state, $op = 'add', $prid = NULL) { 
+function pageroute_ui_route_edit(&$form_state, $op = 'add', $prid = NULL) {
   if ($op != 'add' && isset($prid) && is_numeric($prid)) {
     $route = db_fetch_object(db_query("SELECT * FROM {pageroute_routes} WHERE prid = %d", $prid));
     $route->options = unserialize($route->options);
     drupal_set_title(t('Edit route'));
   }
 
-  $form['path'] = array('#type' => 'textfield', 
-                        '#title' => t('Path'), 
+  $form['path'] = array('#type' => 'textfield',
+                        '#title' => t('Path'),
                         '#maxlength' => 127,
                         '#default_value' => isset($route) ? $route->path : '',
                         '#required' => TRUE,
                         '#weight' => -5,
-                  );                 
+                  );
   $form['options']['#tree'] = TRUE;
   $form['options']['tabs'] = array(
     '#type' => 'radios',
@@ -28,7 +28,6 @@
       0 => t('Don\'t show any tabs'),
       PAGEROUTE_MENU_TABS => t('Use the common drupal menu tabs'),
       PAGEROUTE_BUTTON_TABS => t('Show submit-like tab buttons above the page content'),
-//      PAGEROUTE_HINT_TABS => t('Show tabs that cannot be clicked')
     ),
     '#default_value' => isset($route->options['tabs']) ? $route->options['tabs'] : 0,
     '#description' => t('Note that the commom drupal menu tabs won\'t save the actual form, if they are used. Also any arguments appended to the URL will be lost. They are in particular useful for pageroutes, which focus on displaying content.'),
@@ -57,7 +56,7 @@
   );
   $form['advanced']['options']['#tree'] = TRUE;
   $form['advanced']['options']['redirect_path'] = array(
-    '#type' => 'textfield', 
+    '#type' => 'textfield',
     '#title' => t('Customized redirect path'),
     '#default_value' => isset($route) ? $route->options['redirect_path'] : '',
     '#maxlength' => 64,
@@ -67,7 +66,7 @@
     '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q=')
   );
   $form['advanced']['options']['no_messages'] = array(
-    '#type' => 'checkbox', 
+    '#type' => 'checkbox',
     '#title' => t('Don\'t show drupal messages during this route.'),
     '#default_value' => isset($route->options['no_messages']) ? $route->options['no_messages'] : 1,
   );
@@ -113,15 +112,14 @@
   $form_state['redirect'] = 'admin/build/pageroute/'. $form_state['values']['route']->prid .'/delete';
 }
 
-function pageroute_ui_route_edit_submit($form, &$form_state) {  
+function pageroute_ui_route_edit_submit($form, &$form_state) {
   $record->path = $form_state['values']['path'];
   $record->options = serialize($form_state['values']['options']);
 
   if (!isset($form_state['values']['route']->new)) {
-    
-  // notice!
+    // notice!
     $_REQUEST['destination'] = str_replace($form_state['values']['route']->path, $record->path, $_REQUEST['destination']);
-    
+
     $record->prid = $form_state['values']['route']->prid;
     drupal_write_record('pageroute_routes', $record, array('prid'));
   }
@@ -135,7 +133,6 @@
 }
 
 function pageroute_ui_route_delete_confirm(&$form_state, $prid) {
-
   if (is_numeric($prid)) {
     $route = db_fetch_object(db_query("SELECT * FROM {pageroute_routes} WHERE prid = %d", $prid));
     $route->options = unserialize($route->options);
@@ -160,7 +157,7 @@
   db_query("DELETE FROM {pageroute_routes} WHERE prid = %d", $form_state['values']['route']->prid);
   _pageroute_clear_cache();
   menu_rebuild();
-  drupal_set_message('Your route has been deleted.');
+  drupal_set_message(t('Your route has been deleted.'));
   $form_state['redirect'] = 'admin/build/pageroute';
 }
 
@@ -169,9 +166,9 @@
   $page_data = NULL;
 
   if (is_numeric($prid)) {
-    $route = pageroute_route::load($prid);
+    $route = PagerouteRoute::load($prid);
   }
-   
+
   if (!isset($route)) {
     drupal_not_found();
     exit;
@@ -187,13 +184,13 @@
       return drupal_get_form('pageroute_ui_page_add_type', $prid);
     }
   }
-  else if ($op != 'edit') {
+  elseif ($op != 'edit') {
     return pageroute_ui_route_overview($route);
   }
-  else if ($page_name) {
+  elseif ($page_name) {
     $route->start($page_name);
-    $page_data = &$route->page_data_current;
-    
+    $page_data = &$route->pageDataCurrent;
+
     if (!isset($page_data)) {
       drupal_not_found();
       exit;
@@ -215,15 +212,15 @@
     $page->options['no_tab'] = 0;
     $page->options['forward'] = t('Forward');
     $page->options['back'] = t('Back');
-    $page->options['content-type'] = '';  
-    $page->weight = '';    
+    $page->options['content-type'] = '';
+    $page->weight = '';
     $new = TRUE;
   }
-  
+
   $page->route = $route;
-  $page_class = $module .'_page_'. $type;
   pageroute_include_page_type($module, $type);
-  $help = call_user_func(array($page_class, 'help'));  
+  $page_class = pageroute_get_page_class($module, $type);
+  $help = call_user_func(array($page_class, 'help'));
 
   $form['module'] = array(
     '#type' => 'hidden',
@@ -310,11 +307,11 @@
     '#value' => t('Save'),
     '#weight' => 8,
   );
-  
+
   $form['cancel'] = array(
     '#type' => 'submit',
     '#value' => t('Cancel'),
-    '#submit' => array('pageroute_ui_page_cancel_submit'),    
+    '#submit' => array('pageroute_ui_page_cancel_submit'),
     '#weight' => 9,
   );
 
@@ -325,18 +322,18 @@
       '#value' => t('Delete'),
       '#submit' => array('pageroute_ui_page_delete_submit'),
       '#weight' => 10,
-      );    
+      );
     $form['page'] = array('#type' => 'value', '#value' => $page);
   }
 
   $form['page_type'] = array('#type' => 'value', '#value' => $type);
   $form['route'] = array('#type' => 'value', '#value' => $route);
-  
+
   $form['#validate'][] = 'pageroute_ui_page_edit_validate';
   $form['#submit'][] = 'pageroute_ui_page_edit_submit';
 
-  //let the page type add further form items  
-  call_user_func_array(array($page_class, 'ui'), array($page, &$form));
+  //let the page type add further form items
+  call_user_func_array(array($page_class, 'getAdminForm'), array($page, &$form));
 
   return $form;
 }
@@ -354,25 +351,25 @@
   $name = rtrim(ltrim($form_state['values']['name'], '/'), '/');
 
   $form_state['values']['name'] = $name;
-  
+
   if (strpos($name, '/') !== FALSE) {
     form_set_error('name', t('The page name must not contain a slash "/".'));
   }
   if (!valid_url($name)) {
     form_set_error('name', t('The page name has to be a valid URL.'));
-  } 
-   
-  if ((!isset($form_state['values']['page']) || $form_state['values']['page']->name != $name) && 
+  }
+
+  if ((!isset($form_state['values']['page']) || $form_state['values']['page']->name != $name) &&
       db_result(db_query("SELECT * FROM {pageroute_pages} WHERE prid = %d AND name = '%s'",
       $form_state['values']['route']->prid, $name))) {
-      
+
     form_set_error('name', t('A page with this name already exists. Choose another name.'));
   }
 }
 
 function pageroute_ui_page_edit_submit($form, &$form_state) {
-  
-  if (isset($form_state['values']['page'])) {   
+
+  if (isset($form_state['values']['page'])) {
     $edit_page = (object)$form_state['values'];
     pageroute_ui_update_page($form_state['values']['route'], $edit_page, $form_state['values']['page']->name);
     pageroute_ui_update_neighbours($form_state['values']['route']);
@@ -380,7 +377,7 @@
   else {
     //add a new page
     $edit_page = (object)$form_state['values'];
-    db_query("INSERT INTO {pageroute_pages} (prid, name, title, weight, module, type, options) VALUES(%d, '%s', '%s', %d, '%s', '%s', '%s')", 
+    db_query("INSERT INTO {pageroute_pages} (prid, name, title, weight, module, type, options) VALUES(%d, '%s', '%s', %d, '%s', '%s', '%s')",
       $form_state['values']['route']->prid, $form_state['values']['name'], $form_state['values']['title'], $form_state['values']['weight'], $form_state['values']['module'], $form_state['values']['page_type'], serialize($edit_page->options));
     pageroute_ui_update_neighbours($form_state['values']['route']);
   }
@@ -401,19 +398,19 @@
     '#options' => $options,
     '#required' => TRUE
     );
-  
+
   $form['prid'] = array(
     '#type' => 'hidden',
     '#value' => $prid
     );
-  
+
   $form['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Forward')
     );
- 
+
   $form['#submit'][] = 'pageroute_ui_page_add_type_submit';
-    
+
   return $form;
 }
 
@@ -423,10 +420,10 @@
 
 
 function pageroute_ui_page_delete_confirm(&$form_state, $prid, $page_name) {
-  $route = pageroute_route::load($prid);
-  
-  $page = $route->pages[$route->page_index[$page_name]];
-  
+  $route = PagerouteRoute::load($prid);
+
+  $page = $route->pages[$route->pageIndex[$page_name]];
+
   if (!$page) {
     drupal_not_found();
     exit;
@@ -434,7 +431,7 @@
 
   $form['page'] = array('#type' => 'value', '#value' => $page);
   $form['route'] = array('#type' => 'value', '#value' => $route);
-  
+
   return confirm_form($form,
     t('Are you sure you want to delete the page %name?', array('%name' => $page->name)),
     'admin/build/pageroute/'. $page->route->prid,
@@ -448,7 +445,7 @@
   pageroute_ui_update_neighbours($route = (object)array('prid' => $form_state['values']['page']->prid));
   _pageroute_clear_cache();
   menu_rebuild();
-  drupal_set_message('Your page has been deleted.');
+  drupal_set_message(t('Your page has been deleted.'));
   $form_state['redirect'] = array('admin/build/pageroute/'. $form_state['values']['page']->prid, drupal_get_destination());
 }
 
@@ -465,7 +462,7 @@
     '#required' => TRUE,
   );
   $form['button'] = array('#type' => 'submit', '#weight' => 10, '#value' => t('Import'));
-  
+
   return $form;
 }
 
@@ -494,7 +491,7 @@
   $route->options = serialize($route->options);
   drupal_write_record('pageroute_routes', $route);
   $route_prid = db_last_insert_id('pageroute_routes', 'prid');
-    
+
   foreach ($route->pages as &$page) {
     $page = (object)$page;
     $page->prid = $route_prid;
@@ -515,7 +512,7 @@
   $form = array();
 
   include_once(drupal_get_path('module', 'pageroute') .'/pageroute.route.inc');
-  $route = pageroute_route::load($prid);
+  $route = PagerouteRoute::load($prid);
   unset($route->prid);
 
   foreach ($route->pages as &$page) {
Index: pageroute.page_view.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute.page_view.inc,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 pageroute.page_view.inc
--- pageroute.page_view.inc	26 Mar 2009 13:53:36 -0000	1.1.2.6
+++ pageroute.page_view.inc	5 Aug 2009 08:18:58 -0000
@@ -1,4 +1,4 @@
-<?php 
+<?php
 // $Id: pageroute.page_view.inc,v 1.1.2.6 2009/03/26 13:53:36 tauran Exp $
 
 /**
@@ -9,17 +9,20 @@
 
 include_once(drupal_get_path('module', 'pageroute') .'/pageroute.page.inc');
 
-class pageroute_page_view extends pageroute_page {  
+/**
+ * PageroutePageView display a simple node.
+ */
+class PageroutePageView extends PageroutePage {
   /**
    * Returns the page display for the configured node
    */
-  public function set_form(&$form, &$form_state, &$args) {
-    
+  public function getForm(&$form, &$form_state, &$args) {
+
     if ($this->options['nid'] == 0) {
       $this->options['nid'] = $args['nid'];
     }
-   
-    if ($this->options['nid']) {      
+
+    if ($this->options['nid']) {
       $node = node_load($this->options['nid']);
 
       if ($node->nid && node_access('view', $node)) {
@@ -31,7 +34,7 @@
 
         return;
       }
-      else if (db_result(db_query('SELECT nid FROM {node} WHERE nid = %d', $this->options['nid']))) {
+      elseif (db_result(db_query('SELECT nid FROM {node} WHERE nid = %d', $this->options['nid']))) {
         drupal_access_denied();
         pageroute_exit_now();
       }
@@ -39,8 +42,8 @@
     drupal_not_found();
     pageroute_exit_now();
   }
-  
-  public static function ui($page, &$form) {
+
+  public function getAdminForm($page, &$form) {
     $form['options']['nid'] = array(
       '#type' => 'textfield',
       '#title' => t('Node ID'),
@@ -50,7 +53,7 @@
       '#weight' => 2,
     );
   }
-  
+
   public static function help() {
     return t('This page type just displays a configurable node. It can also be configured to display the node with the id taken from the first argument. Combined with a node adding or editing form, this enables you to build a page that shows the added or updated node.');
   }
@@ -58,12 +61,12 @@
   public static function info() {
     return array('name' => t('Node display'));
   }
-  
-  public function get_cancel_target() {
+
+  public function getCancelTarget() {
     return PAGEROUTE_FORWARD;
   }
-  
-  public function set_up() {
+
+  public function setUp() {
     include_once(drupal_get_path('module', 'node') .'/node.pages.inc');
   }
 }
Index: pageroute.page_manage.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute.page_manage.inc,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 pageroute.page_manage.inc
--- pageroute.page_manage.inc	26 Mar 2009 13:53:36 -0000	1.1.2.6
+++ pageroute.page_manage.inc	5 Aug 2009 08:18:58 -0000
@@ -10,35 +10,38 @@
 include_once(drupal_get_path('module', 'pageroute') .'/pageroute.page_add.inc');
 include_once(drupal_get_path('module', 'pageroute') .'/pageroute.page_edit.inc');
 
-class pageroute_page_manage extends pageroute_page {  
+/**
+ * PageroutePageManage displays a node management page
+ */
+class PageroutePageManage extends PageroutePage {
   /**
    * Shows a node management page for the given content type
    * It determines itself what has to be displayed (overview, add/edit/delete form).
    */
-  public function set_form(&$form, &$form_state, &$args) {
+  public function getForm(&$form, &$form_state, &$args) {
 
     if (!isset($args['todo']['action'])) {
         $args['todo']['action'] = 'default';
     }
 
-    switch ($args['todo']['action']) { 
+    switch ($args['todo']['action']) {
       case t('Add'):
-        $args['hide_pageroute_buttons'] = TRUE;      
-        $args['default_target'] = PAGEROUTE_CURRENT;        
-        pageroute_page_add::set_node_add_form($form, $form_state, $this);
+        $args['hide_pageroute_buttons'] = TRUE;
+        $args['default_target'] = PAGEROUTE_CURRENT;
+        PageroutePageAdd::setNodeAddForm($form, $form_state, $this);
         break;
 
       case t('Edit'):
-        $args['hide_pageroute_buttons'] = TRUE;      
-        $args['default_target'] = PAGEROUTE_CURRENT;        
+        $args['hide_pageroute_buttons'] = TRUE;
+        $args['default_target'] = PAGEROUTE_CURRENT;
         $args['nid'] = $args['todo']['target'];
         $node = isset($form_state['node']) ? $form_state['node'] : NULL;
 
-        pageroute_page_edit::set_node_edit_form($form, $form_state, $this, $args, $node);
+        PageroutePageEdit::setNodeEditForm($form, $form_state, $this, $args, $node);
         break;
 
       case t('Delete'):
-        $args['hide_pageroute_buttons'] = TRUE;      
+        $args['hide_pageroute_buttons'] = TRUE;
         $args['default_target'] = PAGEROUTE_CURRENT;
         if (!is_numeric($args['todo']['target']) || !($node = node_load($args['todo']['target']))) {
           drupal_not_found();
@@ -52,14 +55,32 @@
       default:
         $args['default_target'] = PAGEROUTE_CURRENT;
         $args['hide_pageroute_buttons'] = FALSE;
-        $form += array('pageroute-manage' => pageroute_page_manage::pageroute_page_manage_overview($form_state, $this, $this->options['content-type']));
+        $form += array('pageroute-manage' => PageroutePageManage::pageroutePageManageOverview($form_state, $this, $this->options['content-type']));
+    }
+    parent::unsetForm($form);
+  }
+
+  /**
+   * Clear unnecessary buttons
+   */
+  public function unsetForm(&$form) {
+    if (isset($this->options['preview']) && !$this->options['preview']) {
+      unset($form['buttons']['preview']);
+    }
+
+    if (isset($this->options['submit']) && !$this->options['submit']) {
+      unset($form['buttons']['submit']);
+    }
+
+    if (isset($this->options['nodelete']) && $this->options['nodelete']) {
+      unset($form['buttons']['delete']);
     }
   }
 
   /**
    * Shows the overview of node management page
    */
-  public static function pageroute_page_manage_overview($form_state, $page, $content_type) {    
+  public static function pageroutePageManageOverview($form_state, $page, $content_type) {
     $result = db_query(db_rewrite_sql("
       SELECT n.nid FROM {node} n
       WHERE n.type = '%s' AND n.uid = %d AND n.status > 0
@@ -71,7 +92,7 @@
       $node = node_load($row->nid);
 
       $buttons = array();
-      
+
       if (node_access('update', $node)) {
         $buttons[] = t('Edit');
       }
@@ -85,7 +106,7 @@
       }
       $form['node_list'][$node->nid] = array('#value' => theme('pageroute_page_manage_node', $node, $i++, $buttons));
     }
-    
+
     //there are no nodes yet
     if ($i == 1) {
       if ($page->options['empty']['force_add']) {
@@ -107,7 +128,7 @@
       //remember all possible node ids for the target hook
       $form['node_ids'] = array('#type' => 'value', '#value' => array_keys($form['node_list']));
     }
-    
+
     //add buttons
     if ($add_button) {
       $form['add_button'] = theme('pageroute_page_manage_add_button', $content_type, t($add_button));
@@ -116,7 +137,7 @@
     return $form;
   }
 
-  public static function ui($page, &$form) {
+  public function getAdminForm($page, &$form) {
     $form['options']['cancel']['#access'] = FALSE;
     $form['options']['content-type'] = array(
       '#type' => 'select',
@@ -135,10 +156,10 @@
       '#weight' => 5,
     );
     $form['options']['empty'] = array(
-      '#type' => 'fieldset', 
+      '#type' => 'fieldset',
       '#title' => t('Overview with no nodes'),
       '#collapsed' => TRUE,
-      '#collapsible' => TRUE,          
+      '#collapsible' => TRUE,
       '#weight' => 6,
       '#description' => t('Configure how the page looks like, if there is no node available to list.'),
     );
@@ -174,14 +195,14 @@
     );
     foreach ($groups as $name => $title) {
       $form['options'][$name] = array(
-        '#type' => 'fieldset', 
+        '#type' => 'fieldset',
         '#title' => $title,
         '#collapsed' => TRUE,
-        '#collapsible' => TRUE,          
+        '#collapsible' => TRUE,
         '#weight' => 8,
       );
       $form['options'][$name]['forward'] = array(
-        '#type' => 'textfield', 
+        '#type' => 'textfield',
         '#title' => t('Forward button label'),
         '#maxlength' => 32,
         '#default_value' => isset($page->options[$name]['forward']) ? $page->options[$name]['forward'] : t('Forward'),
@@ -189,7 +210,7 @@
         '#weight' => 3,
       );
       $form['options'][$name]['back'] = array(
-        '#type' => 'textfield', 
+        '#type' => 'textfield',
         '#title' => t('Back button label'),
         '#maxlength' => 32,
         '#default_value' => isset($page->options[$name]['back']) ? $page->options[$name]['back'] : 'Back',
@@ -208,20 +229,20 @@
         '#type' => 'checkbox',
         '#title' => t('Display preview button'),
         '#default_value' => isset($page->options[$name]['preview']) ? $page->options[$name]['preview'] : 0,
-        '#weight' => 5,        
+        '#weight' => 5,
       );
       $form['options'][$name]['submit'] = array(
         '#type' => 'checkbox',
         '#title' => t('Display submit button'),
         '#default_value' => isset($page->options[$name]['submit']) ? $page->options[$name]['submit'] : 1,
-        '#weight' => 5,        
+        '#weight' => 5,
       );
       if ($name != 'add') {
         $form['options'][$name]['nodelete'] = array(
           '#type' => 'checkbox',
           '#title' => t('Never display the delete button'),
           '#default_value' => isset($page->options[$name]['nodelete']) ? $page->options[$name]['nodelete'] : 1,
-          '#weight' => 5,        
+          '#weight' => 5,
         );
         $form['options'][$name]['#weight'] = 9;
       }
@@ -231,16 +252,16 @@
   public static function help() {
     return t('The node management page allows one to add, edit or delete nodes from a configurable content type from inside one page! It shows a themeable list of already created nodes of the configured type and allows editing and deleting if the user has the appropriate access rights.');
   }
-  
+
   public static function info() {
     return array('name' => t('Node managment'));
   }
-  
-  public function get_cancel_target() {
+
+  public function getCancelTarget() {
     return PAGEROUTE_CURRENT;
   }
-  
-  public static function form_submitted(&$form_state) {
+
+  public function formSubmitted(&$form_state) {
 
     $todo = NULL;
     $args = &$form_state['storage']['route']->args;
@@ -259,7 +280,7 @@
         $todo = array('action' => $form_state['clicked_button']['#value'], 'target' => $target);
         break;
       case t('Save'):
-         $args['default_target'] = PAGEROUTE_CURRENT;
+        $args['default_target'] = PAGEROUTE_CURRENT;
         break;
       default:
         $todo = array('action' => $form_state['clicked_button']['#value'], 'target' => $form_state['clicked_button']['#name']);
@@ -267,17 +288,17 @@
 
     $args['todo'] = $todo;
   }
-  
-  public function set_up() {
+
+  public function setUp() {
     include_once(drupal_get_path('module', 'node') .'/node.pages.inc');
-  }  
+  }
 }
 
 /*
  * Theme the display of the edit/delete buttons of an existing node
  */
 function theme_pageroute_page_manage_buttons($node, $number, $buttons) {
-  
+
   foreach ($buttons as $key => $name) {
     $form[$name]['#attributes']['class'] = 'pageroute-'. $name;
     $form[$name]['#type'] = 'submit';
@@ -286,7 +307,7 @@
     $form[$name]['#weight'] = $key;
   }
   $form['#prefix'] = '<span class="pageroute_manage_buttons">';
-  $form['#suffix'] = '</span>';        
+  $form['#suffix'] = '</span>';
 
   return $form;
 }
@@ -316,7 +337,7 @@
  * Theme the add node button
  */
 function theme_pageroute_page_manage_add_button($content_type, $label) {
-  
+
   $form_element['#attributes']['class'] = 'pageroute-add';
   $form_element['#type'] = 'submit';
   $form_element['#name'] = $content_type;
Index: pageroute.route.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute.route.inc,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 pageroute.route.inc
--- pageroute.route.inc	26 Mar 2009 13:53:36 -0000	1.1.2.6
+++ pageroute.route.inc	5 Aug 2009 08:18:58 -0000
@@ -1,77 +1,80 @@
 <?php
 // $Id: pageroute.route.inc,v 1.1.2.6 2009/03/26 13:53:36 tauran Exp $
-
 /**
  * @file
  * Route
  */
- 
-class pageroute_route {
 
-  var $prid;
-  var $options;
-  var $pages;
-  var $page_index;
-  var $page_access;
-  var $path;
+/**
+ * PagerouteRoute that implements a who Pageroute
+ */
+class PagerouteRoute {
 
-  public function pageroute_route($route_data) {  
+  public $prid;
+  public $options;
+  public $pages;
+  public $pageIndex;
+  public $pageAccess;
+  public $path;
+  public $pageDataCurrent;
+
+  public function PagerouteRoute($route_data) {
     $this->prid = $route_data->prid;
     $this->path = $route_data->path;
     $this->options = $route_data->options;
     $this->pages = $route_data->pages;
-    
+
     foreach ($this->pages as $page) {
       $page->route = &$this;
     }
-    
-    $this->page_index = $route_data->page_index;
-    $this->page_access = $route_data->page_access;
 
-    $this->page_data_current = NULL;
+    $this->pageIndex = $route_data->pageIndex;
+    $this->pageAccess = $route_data->pageAccess;
+
+    $this->pageDataCurrent = NULL;
     $this->page_data_previous = NULL;
   }
 
-  /*
+  /**
    * Load a route from the pageroute cache
-   */   
+   */
   public static function load($prid, $reset = FALSE) {
     static $allroutes;
-    
+
     if (!isset($allroutes) || $reset) {
-      $allroutes = (array)cache_get('pageroute');  
+      $allroutes = (array)cache_get('pageroute');
     }
 
     $allroutes_data = isset($allroutes['data']) ? (array)$allroutes['data'] : array();
-      
+
     if (isset($allroutes_data[$prid])) {
       $route_data = $allroutes_data[$prid];
     }
     else {
-      $route_data = pageroute_route::load_from_database($prid);
+      $route_data = PagerouteRoute::loadFromDatabase($prid);
 
       if (!$route_data) {
         return FALSE;
       }
-       
+
       $allroutes_data[$prid] = $route_data;
       $allroutes['data'] = $allroutes_data;
-        
+
       cache_set('pageroute', $allroutes);
-    }      
-    
-    $route = new pageroute_route($route_data);
-    
+    }
+
+    $route = new PagerouteRoute($route_data);
+
     drupal_alter('pageroute', $route);
 
     return $route;
   }
 
-  /*
+  /**
    * Load a route from the database
    */
-  private static function load_from_database($prid) {
-    
+  private static function loadFromDatabase($prid) {
+
     $result = db_query("SELECT * FROM {pageroute_routes} WHERE prid = %d", $prid);
 
     $route_data = db_fetch_object($result);
@@ -86,129 +89,128 @@
 
     $index = 0;
     $route_data->pages = array();
-    $route_data->page_index = array();
-    $route_data->page_access = array();
-    
+    $route_data->pageIndex = array();
+    $route_data->pageAccess = array();
+
     while ($page = db_fetch_object($result)) {
       $page->options = unserialize($page->options);
-    
+
       if (isset($page->options['activated']) && !$page->options['activated']) {
-        //add deactivated pages to the page_index, but don't give them an index
+        //add deactivated pages to the pageIndex, but don't give them an index
         //so this pages are reachable, but we won't route to them
-        $route_data->page_index[$page->name] = FALSE;
+        $route_data->pageIndex[$page->name] = FALSE;
         continue;
       }
- 
+
       $route_data->pages[$index] = $page;
       if ($route_data->options['tabs'] && isset($page->options['no_tab']) && $page->options['no_tab']) {
         $route_data->pages[$index]->no_tab = TRUE;
       }
-      $route_data->page_index[$page->name] = $index;
+      $route_data->pageIndex[$page->name] = $index;
       $index++;
     }
-    
+
     return $route_data;
   }
 
-  /*
+  /**
    * Set suggested page:
    * Default page if no page was specified or access denied to specified page
    * else specified page
    */
-  public function set_suggested_page($target = PAGEROUTE_CURRENT) {
-    $page = &$this->page_data_current;
-    
-    if ($page) {  
-      $page_next = &$this->get_page($page->name, $target);    
+  public function setSuggestedPage($target = PAGEROUTE_CURRENT) {
+    $page = &$this->pageDataCurrent;
+
+    if ($page) {
+      $page_next = &$this->getPage($page->name, $target);
 
       if ($page_next) {
-        if (empty($this->page_access) || $this->page_access[$page_next->name]) {
-          $this->page_data_previous = &$this->page_data_current;
-          $this->page_data_current = &$page_next;
+        if (empty($this->pageAccess) || $this->pageAccess[$page_next->name]) {
+          $this->page_data_previous = &$this->pageDataCurrent;
+          $this->pageDataCurrent = &$page_next;
         }
       }
     }
     else {
-      $this->page_data_previous = &$this->page_data_current;
-      $this->page_data_current = &$this->get_default_page();
+      $this->page_data_previous = &$this->pageDataCurrent;
+      $this->pageDataCurrent = &$this->getDefaultPage();
     }
-    
-    return $this->page_data_current;
+
+    return $this->pageDataCurrent;
   }
 
-  /*
+  /**
    * Get default page:
    * First page that is accessable
    */
-  private function get_default_page() {
+  private function getDefaultPage() {
     foreach ($this->pages as $page) {
-      if (empty($this->page_access) || $this->page_access[$page->name]) {
+      if (empty($this->pageAccess) || $this->pageAccess[$page->name]) {
         return $page;
       }
     }
   }
 
-  /*
-  * Checks if this is a valid page and if access to the page shall be granted
-  */
-  public function check_page_access($page_name, $target = PAGEROUTE_CURRENT) {
+  /**
+   * Checks if this is a valid page and if access to the page shall be granted
+   */
+  public function checkPageAccess($page_name, $target = PAGEROUTE_CURRENT) {
     if ($target == PAGEROUTE_CURRENT) {
-      return !isset($this->page_access[$page_name]) || $this->page_access[$page_name];
+      return !isset($this->pageAccess[$page_name]) || $this->pageAccess[$page_name];
     }
-    
+
     $access = FALSE;
-    
+
     do {
-      $page = $this->get_page($page_name, $target);
-         
+      $page = $this->getPage($page_name, $target);
+
       if (!$page) {
         break;
       }
-          
+
       $page_name = $page->name;
-      
-      $access = !isset($this->page_access[$page_name]) || $this->page_access[$page_name];
-      
+
+      $access = !isset($this->pageAccess[$page_name]) || $this->pageAccess[$page_name];
+
     } while ($access == FALSE);
-    
+
     if ($access) {
       return $page;
     }
-    
+
     return NULL;
-  }  
+  }
 
-  /*
+  /**
    * Build and return the form for the current page
    */
-  public function set_form(&$form, &$page_data, &$page, &$form_state, &$args) {       
+  public function getForm(&$form, &$page_data, &$page, &$form_state, &$args) {
     // Include needed type!
-    $page = pageroute_page::get_object($page_data);
+    $page = PageroutePage::getObject($page_data);
 
     if (!$page) {
       return FALSE;
-    }  
+    }
 
-    $page->set_form($form, $form_state, $args);
-    $page->configure_form($form);
+    $page->getForm($form, $form_state, $args);
   }
 
   public function start($page_name) {
     if ($page_name) {
-      $this->page_data_current = &$this->get_page($page_name);
+      $this->pageDataCurrent = &$this->getPage($page_name);
     }
     else {
-      $this->page_data_current = &$this->get_default_page();
+      $this->pageDataCurrent = &$this->getDefaultPage();
     }
   }
 
-  private function get_page($page_name, $target = PAGEROUTE_CURRENT) {
+  private function getPage($page_name, $target = PAGEROUTE_CURRENT) {
 
-    if (!isset($this->page_index[$page_name])) {
+    if (!isset($this->pageIndex[$page_name])) {
       return FALSE;
-    }   
+    }
 
-    $index = $this->page_index[$page_name];
+    $index = $this->pageIndex[$page_name];
 
     switch ($target) {
       case PAGEROUTE_BACK:
Index: pageroute.page.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute.page.inc,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 pageroute.page.inc
--- pageroute.page.inc	26 Mar 2009 13:53:36 -0000	1.1.2.6
+++ pageroute.page.inc	5 Aug 2009 08:18:57 -0000
@@ -5,30 +5,34 @@
  * @file
  * Page base type
  */
- 
-abstract class pageroute_page {
-  var $title;
-  var $options;
-  var $route;
-  var $name;
-  var $weight;
-  var $module;
-  
+
+/**
+ * PageroutePage class that defines, how a page class should look like
+ */
+abstract class PageroutePage {
+  public $title;
+  public $options;
+  public $route;
+  public $name;
+  public $weight;
+  public $module;
+  public $type;
+
   /**
    * Returns the form to display the page type.
    * @param $args
    *    Can be used to customize the form.
    * @return
    *    The form to display.
-   */  
-  abstract public function set_form(&$form, &$form_state, &$args);
-  
+   */
+  abstract public function getForm(&$form, &$form_state, &$args);
+
   /**
    *  Include stuff your page type needs.
-   */  
-  abstract public function set_up();
-  
-  public function pageroute_page($page) {
+   */
+  abstract public function setUp();
+
+  public function PageroutePage($page) {
     $this->load($page);
   }
 
@@ -42,75 +46,71 @@
     $this->type = $page->type;
     $this->weight = $page->weight;
     $this->module = $page->module;
-    
+
     $this->route = &$page->route;
   }
-  
+
   /**
    *  Return the default action, if a cancel button is clicked.
    *  @return
    *    PAGEROUTE_CURRENT: stay on current page
    *    PAGEROUTE_FORWARD: go to next page
    *    PAGEROUTE_BACK: go to previous page
-   */  
-  public function get_cancel_target() {
+   */
+  public function getCancelTarget() {
     return PAGEROUTE_CURRENT;
   }
-  
+
   /**
    * Create a page object from a page data array
    * @return
    *   New page object
    */
-  public static function get_object($page_data) {
+  public static function getObject($page_data) {
     $type = $page_data->type;
-    $bases = pageroute_get_types('base');   
-    
-    // Include needed type!
-    include_once(drupal_get_path('module', $page_data->module) .'/'. $page_data->module .'.page_'. $page_data->type .'.inc');
-  
-    $page_class = $page_data->module .'_page_'. $page_data->type;
-    
+    $bases = pageroute_get_types('base');
+
+    pageroute_include_page_type($module, $type);
+    $page_class = pageroute_get_page_class($page_data->module, $page_data->type);
     $page = new $page_class($page_data);
-    
-    $page->set_up();
-  
+    $page->setUp();
+
     return $page;
   }
-  
+
   /**
    * These form fields are quite common for node forms, so page
    * types, which are also displaying node forms can use it.
    * @param $delete
    *    Wheter the "delete checkbox" should be added.
    */
-  public static function node_ui($page, &$form, $delete = TRUE) {
+  public function nodeUI($page, &$form, $delete = TRUE) {
     $form['options']['preview'] = array(
       '#type' => 'checkbox',
       '#title' => t('Display preview button'),
       '#default_value' => isset($page->options['preview']) ? $page->options['preview'] : 0,
-      '#weight' => 5,        
+      '#weight' => 5,
     );
     $form['options']['submit'] = array(
       '#type' => 'checkbox',
       '#title' => t('Display submit button'),
       '#default_value' => isset($page->options['submit']) ? $page->options['submit'] : 1,
-      '#weight' => 5,        
+      '#weight' => 5,
     );
     if ($delete) {
       $form['options']['nodelete'] = array(
         '#type' => 'checkbox',
         '#title' => t('Never display the delete button'),
         '#default_value' => isset($page->options['nodelete']) ? $page->options['nodelete'] : 1,
-        '#weight' => 5,        
+        '#weight' => 5,
       );
     }
   }
 
   /**
-   * Configure the form
+   * Remove any unnecessary buttons.
    */
-  public function configure_form(&$form) {
+  public function unsetForm(&$form) {
     if (isset($this->options['preview']) && !$this->options['preview']) {
       unset($form['buttons']['preview']);
     }
@@ -123,7 +123,7 @@
       unset($form['buttons']['delete']);
     }
   }
-  
+
   /**
    * Handles all button clicks from your specific form.
    *  Set $args['target'] ( = $form_state['storage']['args']['target']) to specify the what to do:
@@ -131,23 +131,29 @@
    *    PAGEROUTE_FORWARD: go to next page
    *    PAGEROUTE_BACK: go to previous page
    *  To customize get_form(...) set $args['todo'] ( = $form_state['storage']['args']['todo']).
-   */  
-  public static function form_submitted(&$form_state) { }
-  
+   */
+  public function formSubmitted(&$form_state) { }
+
   /**
    * Describes the page type.
    *  @return
    *    array('name' => t('Human readable page type name'));
-   */  
+   */
   public abstract static function info();
-  
+
   /**
    * Provides a help text for the pageroute user interface.
    *  @return
    *    t('Help text.')
-   */  
+   */
   public abstract static function help();
 
-  public static function get_default_submit_handler($form) { }
-  public static function get_default_validate_handler($form) { }
+  /**
+   * Gets the default submit handler from drupal
+   */
+  public static function getDefaultSubmitHandler($form) { }
+  /**
+   * Gets the default submit handler from drupal
+   */
+  public static function getDefaultValidateHandler($form) { }
 }
Index: pageroute.page_edit.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute.page_edit.inc,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 pageroute.page_edit.inc
--- pageroute.page_edit.inc	26 Mar 2009 13:53:36 -0000	1.1.2.6
+++ pageroute.page_edit.inc	5 Aug 2009 08:18:58 -0000
@@ -9,40 +9,44 @@
 include_once(drupal_get_path('module', 'pageroute') .'/pageroute.page.inc');
 include_once(drupal_get_path('module', 'pageroute') .'/pageroute.page_add.inc');
 
-class pageroute_page_edit extends pageroute_page {
+/**
+ * PageroutePageEdit displays a node editing form.
+ */
+class PageroutePageEdit extends PageroutePage {
 
-  function set_form(&$form, &$form_state, &$args) {
+  function getForm(&$form, &$form_state, &$args) {
 
       $args['hide_pageroute_buttons'] = FALSE;
       $args['default_target'] = PAGEROUTE_CURRENT;
 
       $node = isset($form_state['node']) ? $form_state['node'] : NULL;
 
-      pageroute_page_edit::set_node_edit_form($form, $form_state, $this, $args, $node);
+      $this->setNodeEditForm($form, $form_state, $this, $args, $node);
+      parent::unsetForm($form);
   }
-      
-  /*
+
+  /**
    * Returns the node edit form for the configured node type or the give node id
-   * 
+   *
    * @param $argument_index Tells the function, which route argument shall be used for getting the node id.
    *   This allows reusing this function from other pages, e.g. the node management page. If nothing is
    *   given the function will use $nid page argument
    */
-  public static function set_node_edit_form(&$form, &$form_state, &$page, &$args, $node = NULL) {
+  public static function setNodeEditForm(&$form, &$form_state, &$page, &$args, $node = NULL) {
 
-    if (!$node) {    
+    if (!$node) {
       ($args && isset($args['nid'])) ? $nid = $args['nid'] : $nid = $page->options['nid'];
-        
+
       if (empty($nid) && $page->options['content-type']) {
-        pageroute_page_add::set_node_add_form($form, $form_state, $page);
+        PageroutePageAdd::setNodeAddForm($form, $form_state, $page);
         return;
       }
-      else if (!is_numeric($nid) || !($node = node_load($nid)) ) {        
+      elseif (!is_numeric($nid) || !($node = node_load($nid)) ) {
         drupal_not_found();
         pageroute_exit_now();
       }
     }
-    
+
     $type = isset($page->options['content-type']) ? $page->options['content-type'] : $node->type;
 
     if (isset($args['todo']['action']) &&  $args['todo']['action'] == t('Delete')) {
@@ -61,33 +65,33 @@
     }
   }
 
-  public static function ui($page, &$form) {
-    
+  public function getAdminForm($page, &$form) {
+
     $form['options']['content-type'] = array(
       '#type' => 'select',
       '#title' => t('Content type for new nodes'),
       '#options' => array('' => '') + node_get_types('names'),
       '#default_value' => $page->options['content-type'],
       '#weight' => 2,
-      '#description' => t('If there is no node id in the URL, a node add form 
-for this content-type will be displayed. Leave it empty to show the Page Not Found error instead.'),
+      '#description' => t('If there is no node id in the URL, a node add form
+			for this content-type will be displayed. Leave it empty to show the Page Not Found error instead.'),
     );
 
-    pageroute_page::node_ui($page, $form, TRUE);
+    parent::nodeUI($page, $form, TRUE);
   }
 
   public static function help() {
     return t('A page of this type will present a common node editing form of a configurable content-type. It will edit the node with the id taken from the first argument of the pageroute. Furthermore this type can be configured to show a node adding form of a specific content-type if the node id argument is missing. So you can build a pageroute that manages the creation and editing of nodes of the same type.');
   }
-  
+
   public static function info() {
     return array('name' => t('Node editing form'));
   }
-  
-  public static function form_submitted(&$form_state) {
+
+  public function formSubmitted(&$form_state) {
     $todo = NULL;
     $args = &$form_state['storage']['route']->args;
-  
+
     switch ($form_state['clicked_button']['#value']) {
       case t('Delete'):
         if (is_numeric($form_state['clicked_button']['#name'])) {
@@ -103,19 +107,19 @@
         $args['default_target'] = PAGEROUTE_FORWARD;
         break;
     }
-     
+
     $args['todo'] = $todo;
   }
-  
-  public function get_cancel_target() {
+
+  public function getCancelTarget() {
     return PAGEROUTE_FORWARD;
   }
-  
-  public function set_up() {
+
+  public function setUp() {
     include_once(drupal_get_path('module', 'node') .'/node.pages.inc');
   }
 
-  public static function get_default_submit_handler($form) {
+  public static function getDefaultSubmitHandler($form) {
     return $form['buttons']['submit']['#submit'];
   }
 }
@@ -131,10 +135,10 @@
 
     $form = confirm_form($form,
       t('Are you sure you want to delete %title?', array('%title' => $node->title)),
-      pageroute_get_page_path($page, $args),
+      pagerouteGetPagePath($page, $args),
       t('This action cannot be undone.'), t('Delete'), t('Cancel')
     );
-        
+
     $form['actions']['submit']['#submit'][] = 'pageroute_node_delete_confirm_submit';
 
     return $form;
Index: pageroute.page_add.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute.page_add.inc,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 pageroute.page_add.inc
--- pageroute.page_add.inc	26 Mar 2009 13:53:36 -0000	1.1.2.6
+++ pageroute.page_add.inc	5 Aug 2009 08:18:57 -0000
@@ -8,19 +8,21 @@
 
 include_once(drupal_get_path('module', 'pageroute') .'/pageroute.page.inc');
 
-class pageroute_page_add extends pageroute_page {  
-  /*
+/**
+ * PageroutePageAdd displays a node adding form.
+ */
+class PageroutePageAdd extends PageroutePage {
+  /**
    * Returns the node adding form for the configured node type
    */
-  function set_form(&$form, &$form_state, &$args) {
-  
+  function getForm(&$form, &$form_state, &$args) {
     $args['hide_pageroute_buttons'] = FALSE;
     $args['default_target'] = PAGEROUTE_FORWARD;
-    
-    pageroute_page_add::set_node_add_form($form, $form_state, $this);
+    PageroutePageAdd::setNodeAddForm($form, $form_state, $this);
+    parent::unsetForm($form);
   }
-  
-  public static function set_node_add_form(&$form, &$form_state, &$page) {
+
+  public static function setNodeAddForm(&$form, &$form_state, &$page) {
     $type = $page->options['content-type'];
 
     // If a node type has been specified, validate its existence.
@@ -29,9 +31,9 @@
 
       // Initialize settings:
       $node = array('uid' => $account->uid, 'name' => $account->name, 'type' => $type);
-      
+
       $form += drupal_retrieve_form($type .'_node_form', $form_state, $node);
-      drupal_prepare_form($type .'_node_form', $form, $form_state);      
+      drupal_prepare_form($type .'_node_form', $form, $form_state);
     }
     else {
       drupal_access_denied();
@@ -39,7 +41,7 @@
     }
   }
 
-  public static function ui($page, &$form) {
+  public function getAdminForm($page, &$form) {
     $form['options']['content-type'] = array(
       '#type' => 'select',
       '#title' => t('Content type'),
@@ -49,38 +51,39 @@
       '#weight' => 2,
     );
     if (!isset($page->options['cancel'])) {
-      //we default to show the cancel button on add node forms
+      // We default to show the cancel button on add node forms.
       $form['options']['cancel']['#default_value'] = t('Cancel');
     }
-    pageroute_page::node_ui($page, $form, FALSE);
+    parent::nodeUI($page, $form, FALSE);
   }
 
   public static function help() {
     return t('A page of this type will present a common node adding form of a configurable content-type. The id of the new node will be added as new argument to the current path, so that other pages like a node view page can make use of it.');
   }
-  
+
   public static function info() {
-    return array('name' => t('Node adding form'));
+    return array(
+      'name' => t('Node adding form'),
+    );
   }
-  
-  public function get_cancel_target() {
+
+  public function getCancelTarget() {
     return PAGEROUTE_FORWARD;
   }
-  
-  public static function form_submitted(&$form_state) {
-  
+
+  public function formSubmitted(&$form_state) {
     switch ($form_state['clicked_button']['#value']) {
       case t('Preview'):
         $form_state['storage']['args']['default_target'] = PAGEROUTE_CURRENT;
         break;
     }
   }
-  
-  public function set_up() {
+
+  public function setUp() {
     include_once(drupal_get_path('module', 'node') .'/node.pages.inc');
   }
 
-  public static function get_default_submit_handler($form) {
+  public static function getDefaultSubmitHandler($form) {
     return $form['buttons']['submit']['#submit'];
   }
 }
Index: pageroute.page_useredit.inc
===================================================================
RCS file: pageroute.page_useredit.inc
diff -N pageroute.page_useredit.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pageroute.page_useredit.inc	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,130 @@
+<?php
+// $Id: pageroute.page_user_edit.inc,v 1.1.2.6 2009/03/26 13:53:36 tauran Exp $
+
+/**
+ * @file
+ * Page user edit type
+ */
+
+include_once(drupal_get_path('module', 'pageroute') .'/pageroute.page.inc');
+
+/**
+ * PageroutePageUserEdit displays a page, where user can edit user accounts
+ */
+class PageroutePageUserEdit extends PageroutePage {
+
+  public function getForm(&$form, &$form_state, &$args) {
+
+    if ($args && isset($args['uid'])) {
+      $account = user_load(array('uid' => $args['uid']));
+    }
+    else {
+      $account = user_load(array('uid' => pageroute_page_get_uid($this, 'administer users')));
+    }
+
+    if (!$account->uid) {
+      drupal_not_found();
+      pageroute_exit_now();
+    }
+
+    if (isset($args['todo']['action']) && $args['todo']['action'] == t('Delete')) {
+      $args['hide_pageroute_buttons'] = TRUE;
+      $form += pageroute_node_delete_confirm($account, $form, $page, $args);
+      return;
+    }
+
+    $args['hide_pageroute_buttons'] = FALSE;
+    $args['default_target'] = PAGEROUTE_FORWARD;
+
+    $this->options += array(
+      'category' => 'account'
+    );
+
+    $form += drupal_retrieve_form('user_profile_form', $form_state, $account, $this->options['category']);
+    drupal_prepare_form('user_edit_form', $form, $form_state);
+  }
+
+  public function getAdminForm($page, &$form) {
+    $categories = array();
+    foreach (_user_categories(false) as $category) {
+      $categories[$category['name']] = $category['title'];
+    }
+    $form['options']['category'] = array(
+      '#type' => 'select',
+      '#title' => t('Category'),
+      '#description' => t('The form of the chosen category will be used for this page.'),
+      '#required' => TRUE,
+      '#default_value' => isset($page->options['category']) ? $page->options['category'] : '',
+      '#weight' => 2,
+      '#options' => $categories,
+    );
+  }
+
+  public static function help() {
+    return t('A page of this type will present users\' account editing page inside a pageroute. By giving a user id as second pageroute argument it\'s also possible for administrators to edit another users\' account. By choosing another category it could also be used to integrate a drupal user profile into a pageroute.<br />!warn This page type is still experimental. If you consider using it, make sure you \'ve read !link before!',
+      array('!warn' => '<strong>'. t('Warning!') .'</strong>', '!link' => l(t('this issue'), 'http://drupal.org/node/128045')));
+  }
+
+  public static function info() {
+    return array('name' => t('User editing form'));
+  }
+
+  public function formSubmitted(&$form_state) {
+    $todo = NULL;
+    $args = &$form_state['storage']['route']->args;
+
+    if ($form_state['clicked_button']['#value'] == t('Delete')) {
+        if (is_numeric($form_state['clicked_button']['#name'])) {
+          $target = $form_state['clicked_button']['#name'];
+        }
+        else {
+          $target = $args['todo']['target'];
+        }
+
+        $todo = array('action' => $form_state['clicked_button']['#value'], 'target' => $target);
+    }
+
+    return $todo;
+  }
+
+  public function setUp() {
+    include_once(drupal_get_path('module', 'user') .'/user.pages.inc');
+  }
+}
+
+/*
+ * Provide an extra delete page to keep control about the destination parameter.
+ */
+function pageroute_dode_delete_confirm($user, $form, &$page, $args = NULL) {
+  if (user_access('delete', $user)) {
+
+    $form = array();
+    $form['uid'] = array('#type' => 'value', '#value' => $user->uid);
+
+    $form = confirm_form($form,
+      t('Are you sure you want to delete %name?', array('%name' => $user->name)),
+      pageroute_get_page_path($page, $args),
+      t('This action cannot be undone.'), t('Delete'), t('Cancel')
+    );
+
+    $form['actions']['submit']['#submit'][] = 'pageroute_dode_delete_confirm_submit';
+
+    return $form;
+  }
+  drupal_access_denied();
+  pageroute_exit_now();
+}
+
+function pageroute_dode_delete_confirm_submit($form, &$form_state) {
+  $form_state['target'] = PAGEROUTE_CURRENT;
+
+  if ($form_state['values']['confirm']) {
+    user_delete($form_state['values']['uid']);
+  }
+
+  $form_state['rebuild'] = TRUE;
+  unset($form_state['values']['target']);
+  unset($form_state['button_clicked']);
+  unset($form_state['args']['todo']);
+  unset($form_state['todo']);
+}
