2010-07-14 2 views

ответ

3

Это возможно. Следующий код может добавить файл 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(); 
    } 
} 

Этот же код можно использовать для функции препроцессора, реализуемой темой.

+0

Спасибо, я дам этот снимок. – Kevin

+0

Код, аналогичный тому, который я написал здесь, используется в существующем стороннем модуле; разница в том, что модуль (Nodeewords) добавляет метатеги, но код, чтобы определить, выводит ли Drupal страницу отказа в доступе, является тем же самым, и было предложено от члена группы безопасности Drupal разрешить проблему безопасности, указанную для этот модуль. – kiamlaluno

+0

Работал. Кроме того, я должен был сделать themename_preprocess_page. – Kevin

Смежные вопросы