Пожалуйста, будьте терпеливы с этим новичком в Drupal API, пока я объясню некоторые базовые вещи!
Я экспериментировал с приведенным ниже кодом, чтобы создать 2 отдельных ответа, когда мои пользователи нажимают на ссылку создания пользовательского узла. По умолчанию открывается страница, которая позволяет пользователям выполнять обычные шаги по созданию узла.
Мой модуль проверяет, есть ли у пользователя определенные разрешения, и либо позволяет ему продолжить создание узла, либо выдает страницу с отказом в доступе.
function mymodule_menu_alter(&$items) {
$items["node/add/page/%"]['access callback'] = 'mymodule_access_callback';
}
function mymodule_access_callback(){
if( user_access('open sesame') ){
drupal_set_message("successfully intecepting new node creation");
return true;
}
return false;
}
Узел / добавить / страницу успешно заблокирован, но это происходит в обоих случаях. Оператор if определяет, имеет ли пользователь определенное разрешение, и в него я добавил возвращаемое значение true, что привело к следующей ошибке:
Неустранимая ошибка: require_once () [function.require]: сбой открытия
требуется /node.pages.inc '(include_path =' .: ') в
/var/www/vhosts/mysite.co.uk/httpdocs/includes/menu.inc в строке 347
Как новичок, я не уверен, что мне нужно делать, чтобы избежать отказа в доступе для нужных пользователей.