Это возможно.Следующий код может добавить файл CSS, когда Drupal возвращает страницу с отказом в доступе.
Помните, что когда Drupal возвращает такую ошибку, URL-адрес, отображаемый в браузере, не изменяется;например, если я пытаюсь получить доступ к /admin/content
, и мне не разрешен доступ к этой странице, показанный URL-адрес не изменяется.Вам нужно проверить выходные данные заголовков из Drupal, чтобы проверить, выводит ли он заголовок запрещенного доступа.
function custom_module_preprocess_page(&$variables) {
if (preg_match('@HTTP/1\.[01]\x20+403[^a-zA-Z0-9]@', drupal_get_headers())) {
$variables['css'] = drupal_add_css($css_file_to_add);
$variables['styles'] = drupal_get_css();
}
}
Эквивалент для Drupal 7 следующий:
function custom_module_preprocess_page(&$variables) {
if (drupal_get_http_header('Status') == '403 Forbidden') {
$variables['css'] = drupal_add_css($css_file_to_add);
$variables['styles'] = drupal_get_css();
}
}
Тот же кодможет использоваться для функции предварительной обработки, реализуемой темой.