Index: content_profile.module =================================================================== --- content_profile.module (.../contrib-stable/content_profile/content_profile.module) (revision 494) +++ content_profile.module (.../contrib-patch/content_profile/content_profile.module) (working copy) @@ -6,6 +6,8 @@ * Marks content types as profiles. */ +define("CONTENT_PROFILE_TO_USER_PROFILE", 1); +define("USER_PROFILE_TO_CONTENT_PROFILE", 2); /** * Implementation of hook_init(). @@ -159,6 +161,27 @@ 'sub' => t("Show a secondary tab below the user's edit tab"), ), ); + $form['display']['page_redirect'] = array( + '#type' => 'radios', + '#title' => t('Redirecting profile content'), + '#default_value' => content_profile_get_settings($type, 'page_redirect'), + '#description' => t('Optionally redirect all full page node views or default user profile views'), + '#options' => array( + 0 => t('Do not redirect'), + CONTENT_PROFILE_TO_USER_PROFILE => t('Redirect content profile node to user profile'), + USER_PROFILE_TO_CONTENT_PROFILE => t('Redirect user profile to content profile node, except when the user is logged in and looking at their own page.'), + ), + ); + $form['display']['edit_page_redirect'] = array( + '#type' => 'radios', + '#title' => t('Redirecting profile edit'), + '#default_value' => content_profile_get_settings($type, 'edit_page_redirect'), + '#options' => array( + 0 => t('Do not redirect'), + CONTENT_PROFILE_TO_USER_PROFILE => t('Redirect content profile node edit to content profile user edit'), + USER_PROFILE_TO_CONTENT_PROFILE => t('Redirect content profile user edit to content profile node edit'), + ), + ); $form['submit'] = array( '#type' => 'submit', '#value' => t('Submit'), @@ -290,6 +313,14 @@ return $data; case 'view': + global $user; + foreach (content_profile_get_types('names') as $type => $type_name) { + if ((content_profile_get_settings($type, 'page_redirect') == USER_PROFILE_TO_CONTENT_PROFILE) && ($user->uid != $account->uid)) { + if ($node = content_profile_load($type, arg(1))) { + drupal_goto("node/". $node->nid); + } + } + } $account->content['content_profile'] = content_profile_show_profiles($account->uid); break; @@ -445,6 +476,8 @@ 'edit_link' => 0, 'edit_tab' => 'sub', 'add_link' => 1, + 'page_redirect' => 0, + 'edit_page_redirect' => 0, ); }