2010-08-13 4 views
1

개인 프로필 (/ 사용자/내 이름)에 탭을 추가하려면 어떻게합니까? 나는이 기능을 사용하지만, nothuing가 나타납니다 :프로필에 탭 추가

function tpzclassified_menu() { 
    $items['user/%user/kleinanzeigen'] = array(
    'title' => t('Meine Kleinanzeigen'), 
    'page arguments' => array(1), 
    'access callback' => TRUE, 
    'type' => MENU_LOCAL_TASK, 
); 

    return $items; 
} 

답변

2

당신은 page callback 속성을 놓치고 :

function tpzclassified_menu() { 
    $items['user/%user/kleinanzeigen'] = array(
    'title' => t('Meine Kleinanzeigen'), 
    'page callback' => 'tpzclassified_kleinanzeigen', 
    'page arguments' => array(1), 
    'access callback' => 'user_view_access', 
    'access arguments' => array(1), 
    'type' => MENU_LOCAL_TASK, 
); 

    return $items; 
} 

function tpzclassified_kleinanzeigen($account) { 
    return 'This is the Meine Kleinanzeigen page'; 
} 

페이지를 생성하는 기능 이름으로 tpzclassified_kleinanzeigen를 교체합니다.

또한 'access callback' => TRUE을 사용하지 마십시오. 거대한 보안 구멍입니다. 사용자가 %user 님의 프로필을 볼 수 있는지 확인하는 user_view_access()을 사용하도록 변경했습니다. 사용자가 %user 님의 프로필을 편집 할 수 있는지 확인하고 싶다면 user_edit_access()을 사용할 수 있습니다.

+0

액세스하려면''access arguments '=> array ('사용자 프로파일 액세스 ')'를 사용하고''access callback' '을 정의하지 않아도됩니다. 이 경우'user_access()'가 액세스 콜백으로 사용됩니다. 페이지 콜백에 대해 [documentation]()는 "사용자가 경로를 방문 할 때 웹 페이지를 표시하기 위해 호출하는 함수입니다. 생략하면 부모 메뉴 항목의 콜백이 대신 사용됩니다."; 부모 메뉴 ('user/% user')는 페이지 콜백으로'user_page()'를 사용합니다. 이것이 바로 새 메뉴가 아무것도 보이지 않는 이유입니다. – kiamlaluno

관련 문제