액세스 인수와 액세스 콜백의 차이점은 무엇입니까?
나는에 대한 액세스 콜백을 설정한다고 가정 'user_access'
하고, array('custom permission')
액세스 인수의 값입니다.
그게 무슨 뜻이야? 그들은 서로에게 어떤 영향을 미칩니 까?
답변
“액세스 콜백”은 사용자가 페이지에 액세스 할 수 있는지 확인하기 위해 호출되는 기능입니다. 특별한 경우에는 값이 될 수 있으며, TRUE
이 경우 모든 사용자가 액세스 할 수 있습니다. 즉, 액세스 권한이 무시됩니다.
“access callback”값에 함수 이름을 사용하는 경우 (기본적으로 “user_access”) “access arguments”를 사용할 수도 있습니다.이 액세스 인수는 액세스 콜백 함수에 전달 된 인수를 포함하는 배열입니다.
다른 메뉴 콜백과 마찬가지로 인수는 문자열 또는 숫자 여야합니다. 숫자 인 경우 값은 메뉴 경로에서 가져온 값으로 대체됩니다. 이 대체를 피하려면 숫자 대신 문자열을 사용해야합니다. 예를 들어, "1"
액세스 콜백에 전달 된 인수에 대해 하나를 사용 하면 자동 교체를 피할 수 있습니다.
Drupal 코어 모듈에서 사용되는 메뉴 콜백 선언의 예입니다. (이 예제는 Drupal 7 코드에서 가져온 것이지만, 제가 지적하고자하는 것은 아무런 차이가 없습니다.)
액세스 콜백이 user_access () 인 예제 입니다.
$items['file/progress'] = array(
'page callback' => 'file_ajax_progress',
'delivery callback' => 'ajax_deliver',
'access arguments' => array('access content'),
'theme callback' => 'ajax_base_page_theme',
'type' => MENU_CALLBACK,
);
액세스 콜백이 함수 이름이 아닌 예입니다.
$items['user'] = array(
'title' => 'User account',
'title callback' => 'user_menu_title',
'page callback' => 'user_page',
'access callback' => TRUE,
'file' => 'user.pages.inc',
'weight' => -10,
'menu_name' => 'user-menu',
);
이 경우 액세스 콜백은 user_view_access () 로 전달 되며 user_view_access () 는 번호 1이 아니라 메뉴 경로에서 가져온 값 (이 경우 “user / % user”)입니다. 함수가에 의해 반환 된 값을 가져 오기 때문에 이것은 특별한 경우 user_load()
입니다.
$items['user/%user'] = array(
'title' => 'My account',
'title callback' => 'user_page_title',
'title arguments' => array(1),
'page callback' => 'user_view_page',
'page arguments' => array(1),
'access callback' => 'user_view_access',
'access arguments' => array(1),
// By assigning a different menu name, this item (and all registered child
// paths) are no longer considered as children of 'user'. When accessing the
// user account pages, the preferred menu link that is used to build the
// active trail (breadcrumb) will be found in this menu (unless there is
// more specific link), so the link to 'user' will not be in the breadcrumb.
'menu_name' => 'navigation',
);
이전 메뉴가 다음과 같이 정의되고 “user / hello”와 같은 경로로 호출되었다고 가정하십시오.
$items['user/%'] = array(
'title' => 'My account',
'title callback' => 'user_page_title',
'title arguments' => array(1),
'page callback' => 'user_view_page',
'page arguments' => array(1),
'access callback' => 'user_view_access',
'access arguments' => array(1),
// By assigning a different menu name, this item (and all registered child
// paths) are no longer considered as children of 'user'. When accessing the
// user account pages, the preferred menu link that is used to build the
// active trail (breadcrumb) will be found in this menu (unless there is
// more specific link), so the link to 'user' will not be in the breadcrumb.
'menu_name' => 'navigation',
);
이 경우 액세스 콜백은 경로에서 가져온 값을 인수로 수신했을 것입니다 (0은 “사용자”를 의미하고 1은 “사용자”와 슬래시 뒤의 부분을 의미 함). 이 경우 해당 값은 “hello”입니다.
이러한 와일드 카드 인수를 더 잘 이해하려면 와일드 카드 로더 인수를 참조하십시오 . 설명서 페이지에 Drupal 6 태그가 붙어 있지만보고 된 내용은 여전히 Drupal 7에 유효합니다.
답변
액세스 콜백은 일부 사용자에게 권한이 있는지 확인하는 기능입니다. 기본 액세스 콜백은 user_access ()입니다.
액세스 인수는 액세스 콜백으로 검사되는 권한을 나열합니다. 예 : “액세스 내용”