"Acessar retorno de chamada" é a função chamada para verificar se o usuário tem acesso à página. Como caso especial, poderia ser o valor TRUE
e, nesse caso, todos os usuários teriam acesso a ele; em outras palavras, a permissão de acesso seria ignorada.
No caso de você estar usando um nome de função para o valor "acessar retorno de chamada" (por padrão, é "acesso_usuário"), também poderá usar "argumentos de acesso", que é uma matriz que contém os argumentos passados para a função de retorno de chamada de acesso.
Como em outros retornos de chamada do menu, os argumentos devem ser uma sequência ou um número; caso seja um número, o valor será substituído por um valor retirado do caminho do menu. Se você deseja evitar essa substituição, em vez de um número, você precisa usar uma string; por exemplo, usar "1"
como um para os argumentos passados para o retorno de chamada de acesso evitaria a substituição automática.
Estes são alguns exemplos de declarações de retorno de chamada de menu usadas nos módulos principais do Drupal. (Os exemplos são do código Drupal 7, mas para o que quero salientar, isso não faz nenhuma diferença.)
Este é um exemplo em que o retorno de chamada de acesso é 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,
);
Este é um exemplo em que o retorno de chamada de acesso não é um nome de função.
$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',
);
Nesse caso, o retorno de chamada de acesso é user_view_access () ao qual é passado, não o número 1, mas um valor obtido no caminho do menu (que nesse caso é "user /% user"); este é um caso específico, pois a função obterá o valor retornado por 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',
);
Suponha que o menu anterior tenha sido definido da seguinte maneira e chamado com um caminho como "usuário / olá".
$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',
);
Nesse caso, o retorno de chamada de acesso teria recebido como argumento o valor obtido do caminho (0 significa "usuário" e 1 significa a parte após "usuário" e a barra); nesse caso, esse valor é "olá".
Para entender melhor esses argumentos curinga, consulte Argumentos do carregador curinga . A página de documentação está identificada como Drupal 6, mas o que foi relatado ainda é válido para o Drupal 7.
O retorno de chamada de acesso é uma função que examina se algum usuário tem algumas permissões. O retorno de chamada de acesso padrão é user_access ()
Os argumentos de acesso lista a permissão que são examinados pelo retorno de chamada de acesso. por exemplo, "acessar conteúdo"
fonte
access callback
? Se fosse algo diferenteuser_access()
, isso evitaria a necessidadeaccess arguments
?access arguments
?