Я новичок в drupal, так что потерпите меня, если я использую неправильные термины. Я пытаюсь дать глупому базовому приложению доступ к URL-адресу drupal - это приложение не может выполнять сложную аутентификацию.
В противном случае этой системе drupal требуется аутентификация, а все остальные хуки меню используют 'access arguments' => array('access content')
Еще до того, как искать решение для простого метода аутентификации с помощью drupal, такого как http://user:[email protected]/awesome/member/12345
, я попытался просто предоставить анонимный доступ с помощью следующего блока кода в файле .module
drupal.
function awesome_module_menu() {
$items['awesome/member/%'] = array(
'title' => 'Awesome member',
'type' => MENU_NORMAL_ITEM,
'page callback' => 'aw_memberdata_fetch',
'delivery callback' => 'aw_memberdata_deliver',
'access arguments' => TRUE // this supposedly should allow anonymous access - from the web
);
return $items;
}
У меня есть две функции: одна для получения данных, другая для их отображения:
function aw_memberdata_fetch(memberId)
{
//fetch array of objects from DB
...
return $items;
}
function aw_memberdata_deliver($items)
{
switch(arg(3)) //format, comes after items
{
case 'json':
drupal_json_output($items);
break;
default:
$output = makeHtml($items); //makes HTML
drupal_deliver_html_page($output);
}
}
С аутентифицированным браузером это работает так, как задумано. Из браузера без файла cookie авторизации мне разрешено видеть HTML, но результатов там нет, как будто функция page callback
не работает для анонимных пользователей, а delivery callback
работает.
Как заставить это работать для анонимных пользователей?