2010-08-18 2 views
2

저는 Drupal Commons 프로파일을 사용하는 what-i.com에 웹 사이트를 가지고 있습니다. 'whati'라는 사용자 지정 테마를 만들고/sites/all/themes 폴더에 배치했습니다. 내 페이지 -front.tpl.php가 제 1면을 구동해야합니다.익명 사용자에 대한 사용자 지정 첫 페이지 리디렉션을 만드는 방법은 무엇입니까?

두 가지 시나리오 (로그인 한 사용자와 로그인하지 않은 사용자)에 대한 if-else 문이 있습니다. 로그인 한 사용자는 모든 것이 잘 작동합니다. 로그인하면 사용자는 내 사용자 정의 프론트 페이지를 볼 수 있습니다. 로그되지 않은 (익명) 사용자의 경우 항상 http://what-i.com/user?destination=home으로 전달합니다. 리다이렉트를 오버라이드하는 법을 모르겠다. 그것은 내 page-front.tpl.php의 if 문을 선택하지 않고, frontpage 모듈을 사용하지 않고 성공했다. 또한 프론트 페이지 설정을 사이트 정보를 소용 없습니다.

아무도 내가이 문제를 해결하는 데 도움이 될 수 있습니까? 즉, 사용자에게 리디렉션되는 대신 destination = home으로, 익명 사용자에게 내가 만든 사용자 정의 프론트 페이지를 보도록하겠습니다.

답변

2

TPL 파일 또는 init() 모듈에서이 작업을 수행 할 수 있습니다.

if (drupal_is_frontpage()) { 
    global $user; 
    if ($user->uid == 0) { 
     drupal_goto('some page'); 
    } 
} 

모듈에서 :

mymodule_init() { 
    global $user; 
    if ($user->uid == 0 && drupal_is_frontpage()) { 
     drupal_goto('some page'); 
    } 
} 
+1

케빈, 당신의 솔루션을 시도하고 page.tpl.php 파일의 상단에있는 코드를 배치 x.tpl.php에서

내 페이지가 무한 리디렉션 루프로 이동합니다. 어떻게 고칠 수 있습니까? 감사. – user424370

+0

죄송합니다. 전체 문장을 if ($ is_front) {// code}로 마무리하십시오. 그걸 수정해야합니다. 내 대답이 업데이트되었습니다. – Kevin

+0

이 코드는 drupal_is_front_page() 함수를 사용하여 단순화 할 수 있습니다. http://api.drupal.org/api/function/drupal_is_front_page/6 – jhedstrom

관련 문제