在Access Denied上加载特定样式表

时间:2010-07-14 20:45:55

标签: drupal drupal-6 drupal-modules

当用户获得“拒绝访问”页面时,如何使用drupal_add_css加载特定样式表?这可能吗?

1 个答案:

答案 0 :(得分:3)

有可能。当Drupal返回拒绝访问页面时,以下代码可以添加CSS文件 请记住,当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();
  }
}

相同的代码可用于主题实现的预处理功能。