2010-05-06 3 views
1

사용자가 액세스하는 경우 :사용자 계정 페이지의 Drupal 대상 매개 변수가 지속되지 않습니까?

user/register?destination=node/add/listing 

을 그리고 그들은 다음 "로그인"을 클릭하거나 탭 "새 암호를 요청"그것은 실 거예요 주소 표시 줄에 대상 매개 변수를 유지합니다. 나는. "로그인"을 클릭하고 로그인 한 후, 사용자는 실제로에서 결국하지 않습니다

node/add/listing 

내가 핵심 사용자 모듈을 편집하는 생각했지만,도 편집 할 수있는 적절한 장소를 찾을 수 있고, 나는 그것이 정말로 나쁜 해결책이라는 것을 안다.

내가 어떻게이 권리를 얻을 수 있는지 아는 사람 있습니까?

답변

0

당신이 말하는 링크는 내비게이션과 매우 흡사 한 정적 링크입니다. 그들은 캐시 된 등, 그래서 당신이 쉽게 변경할 수있는 뭔가가 아닙니다. 그 행동은 대부분의 시간에 주어진다. 일반적으로 쿼리 문자열을 다른 링크로 전송하고 싶지는 않습니다.

이렇게하려면 드루팔 (Drupal에서 직접하는 것이 아니라 JavaScript로 직접하는 것이 가장 좋습니다. js 변수를 설정하거나 document.URL을 검사 할 수 있습니다.

당신은 아마 드루팔 (Drupal)에서 이것을 할 수 있었지만 특별한 경우를 생각해 보면 그만한 가치가 없을 것입니다.

1

동일한 문제를 검색 할 때이 문제가 발생했습니다 (핵심 문제를 찾으려고했지만 실패했습니다). 어쨌든, 내가 자리 매김을 끝내는 해결책은 그것이 있어야하는 것보다 더 복잡하지만 일을합니다.

먼저 url_alter module을 다운로드하여 설치하십시오. 그런 다음 사용자 정의 모듈에서 hook_url_outbound_alter()를 구현하십시오. 아래는 내가 사용한 코드이지만 많은 변형이 가능합니다.

/** 
* Implementation of hook_url_outbound_alter(). 
* 
* If the url_alter module is enabled, and email verification is disabled, 
* this will pass the destination parameter to the registration and login tabs. 
*/ 
function os_custom_url_outbound_alter(&$path, &$options, $original) { 
    if (user_is_anonymous() && in_array($original, array('user', 'user/register', 'user/login')) && empty($options['query']) && !variable_get('user_email_verification', TRUE)) { 
    $options['query'] = drupal_get_destination(); 
    } 
} 
관련 문제