Index: domain_session_default/domain_session_default.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/domain_user_default/domain_session_default/domain_session_default.module,v retrieving revision 1.2.2.3 diff -u -r1.2.2.3 domain_session_default.module --- domain_session_default/domain_session_default.module 17 Jul 2008 17:57:35 -0000 1.2.2.3 +++ domain_session_default/domain_session_default.module 23 Sep 2009 00:40:16 -0000 @@ -52,7 +52,7 @@ /** * Implementation of hook_domainupdate(). */ -function domain_session_default_domainupdate($op, $domain, &$form_state) { +function domain_session_default_domainupdate($op, $domain, $form_state = array()) { switch ($op) { case 'delete': // reset any users using this domain back to the primary domain Index: domain_user_default.admin.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/domain_user_default/domain_user_default.admin.inc,v retrieving revision 1.1.2.3 diff -u -r1.1.2.3 domain_user_default.admin.inc --- domain_user_default.admin.inc 19 Sep 2008 17:48:29 -0000 1.1.2.3 +++ domain_user_default.admin.inc 23 Sep 2009 00:41:33 -0000 @@ -12,7 +12,7 @@ */ function _domain_user_default_user_form($op, &$edit, &$account) { $options = domain_domain_options(); - if($account) { + if ($account) { $default = $account->default_domain; } else { Index: domain_user_default.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/domain_user_default/domain_user_default.inc,v retrieving revision 1.2.2.8 diff -u -r1.2.2.8 domain_user_default.inc --- domain_user_default.inc 12 Jun 2009 00:51:05 -0000 1.2.2.8 +++ domain_user_default.inc 23 Sep 2009 01:12:32 -0000 @@ -12,13 +12,18 @@ * Callback handler to set default domain * @param $domain_id - The id of the domain to set */ -function domain_user_default_set($domain_id) { +function domain_user_default_set($domain_id, $node_id) { $domain = _domain_user_default_set($domain_id); - if ($domain) { - global $language; - // Redirect to language specific front page. - $page_url = substr(url('', array('language' => $language)), 1); + // If request originated from a node page redirect user back to the node page on the new domain + if (is_numeric($node_id) && $node_id > 0) { + $page_url = substr(url('node/'. $node_id), 1); + } + else { + global $language; + // Redirect to language specific front page. + $page_url = substr(url('', array('language' => $language)), 1); + } drupal_goto(domain_get_path($domain) . $page_url); } } @@ -34,7 +39,6 @@ global $user, $_domain; $account = user_load($user->uid); - if ($domain_id != $account->default_domain) { $edit['default_domain'] = $domain_id; @@ -53,13 +57,13 @@ unset($_SESSION['domain_user_default_location_set']); } // set user's location to this domain if it hasn't already been done - if(variable_get('domain_user_default_display_domain_set_message', 0)) { + if (variable_get('domain_user_default_display_domain_set_message', 0)) { drupal_set_message(t('Default domain has been changed to @domain', array('@domain' => $domain['sitename']))); } } elseif ($domain_id == $_domain['domain_id']) { $domain = domain_lookup($domain_id); - if(variable_get('domain_user_default_display_domain_set_message', 0)) { + if (variable_get('domain_user_default_display_domain_set_message', 0)) { drupal_set_message(t('Default domain is already set to @domain', array('@domain' => $domain['sitename']))); } } @@ -81,7 +85,7 @@ if ($account->uid) { // user default if (db_result(db_query("SELECT uid FROM {domain_user_default} WHERE uid = %d", $account->uid))) { - $update = array('uid'); + $update = array('uid'); } $record = new stdClass(); $record->uid = $account->uid; Index: domain_user_default.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/domain_user_default/domain_user_default.module,v retrieving revision 1.1.2.12 diff -u -r1.1.2.12 domain_user_default.module --- domain_user_default.module 12 Jun 2009 00:45:16 -0000 1.1.2.12 +++ domain_user_default.module 23 Sep 2009 01:10:10 -0000 @@ -57,7 +57,7 @@ $menu['domain-user-default/set/%'] = array( 'title' => 'Set default domain', 'page callback' => 'domain_user_default_set', - 'page arguments' => array(2), + 'page arguments' => array(2, 3), 'access arguments' => array('set own domain default'), 'type' => MENU_CALLBACK, 'file' => 'domain_user_default.inc', @@ -99,7 +99,10 @@ 'default_domain' => $user->default_domain, ); unset($_SESSION['domain_user_default_location_set']); - _domain_geolocalization_update_user($edit, $user); + if (module_exists('domain_geolocalization')) { + module_load_include('inc', 'domain_geolocalization'); + _domain_geolocalization_update_user($edit, $user); + } module_load_include('inc', 'domain_user_default'); _domain_user_default_set($user->default_domain); } @@ -122,15 +125,20 @@ if (isset($user->default_domain)) { if ($user->default_domain != $_domain['domain_id']) { $domain = domain_lookup($user->default_domain); - + $current_path = ''; + // If viewing a node redirect to the same node on default domain + if (arg(0) == 'node' && is_numeric(arg(1))) { + $current_node_id = arg(1); + $current_path = drupal_get_path_alias('node/'. $current_node_id); + } if (is_array($domain) && $redirect) { // @todo: check if page exists on other domain, then use // domain_get_uri($domain) instead - drupal_goto(domain_get_path($domain)); + drupal_goto(domain_get_path($domain) . $current_path); } elseif ($domain && variable_get('domain_user_default_display_redirect_message', TRUE)) { // if no redirect, display message - drupal_set_message(t('Your default domain is @link', array('!url' => domain_get_uri($domain), '@link' => $domain['sitename']))); + drupal_set_message(t('Your default domain is @link', array('!url' => domain_get_uri($domain) . $current_path, '@link' => $domain['sitename']))); } } } @@ -328,7 +336,7 @@ /** * Implementation of hook_domainupdate(). */ -function domain_user_default_domainupdate($op, $domain, &$form_state) { +function domain_user_default_domainupdate($op, $domain, $form_state = array()) { switch ($op) { case 'delete': // reset any users using this domain back to the primary domain Index: domain_user_default.theme.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/domain_user_default/domain_user_default.theme.inc,v retrieving revision 1.1.2.2 diff -u -r1.1.2.2 domain_user_default.theme.inc --- domain_user_default.theme.inc 11 Jul 2008 17:33:26 -0000 1.1.2.2 +++ domain_user_default.theme.inc 23 Sep 2009 00:44:42 -0000 @@ -12,9 +12,13 @@ * behavior as well. */ function theme_domain_user_default_default_domain($domain) { + $current_node_id = 0; + if (arg(0) == 'node' && is_numeric(arg(1))) { + $current_node_id = arg(1); + } // define ahah behavior $ahah_binding = array( - 'url' => url('domain-geolocalization/search/form/js'), // the json callback + 'url' => url('domain-geolocalization/search/form/js/'. $current_node_id), // the json callback 'event' => 'click', 'wrapper' => 'domain-search', // define the id of the container into // which to dump the form @@ -28,7 +32,6 @@ drupal_add_js('misc/jquery.form.js'); drupal_add_js('misc/ahah.js'); drupal_add_js(array('ahah' => array('domain-user-default-change' => $ahah_binding)), 'setting'); - // @todo this could also be done via thickbox or lightbox by adding the // appropriate class to the anchor tag. @@ -39,7 +42,7 @@ . l(t('Change'), 'search/domain', array('attributes' => array('title' => t('Change Domain'), 'id' => 'domain-user-default-change'))) . '
- + ' // This is the container the search form is dumped into . '