我们都使用Drupal遇到错误 - 其中大部分都很容易修复。然而,有些东西不太容易修复,并且需要花费很多时间来挖掘,即使网站在错误中工作正常。
我的问题:要解决这个问题,是否可以让Drupal为每个错误分配一个特定的CSS类,以便您可以轻松地显示它:none?
如果没有办法做到这一点,是否可以分配一个display:none;如果 - 例如 - 使用jQuery / Javascript的错误字符串= "Warning: Invalid argument supplied for foreach() in element_children() (line 6282 of /var/www/html/includes/common.inc)."
,则为父元素(在本例中为错误“div”)?
<div class="messages error">
<h2 class="element-invisible">Error message</h2>
<em class="placeholder">Warning</em>
: Invalid argument supplied for foreach() in
<em class="placeholder">element_children()</em>
(line
<em class="placeholder">6282</em>
of
<em class="placeholder">/var/www/html/includes/common.inc</em>
).
</div>
感谢您的帮助
答案 0 :(得分:5)
使用CSS隐藏错误消息是一个非常非常糟糕的主意。相反,您应该通过转到管理»配置»开发»记录和错误并将错误消息显示转到无。
关闭后,没有人会看到这些错误,但作为管理员,您可以通过转到管理»报告»最近的日志消息来自行查看。
答案 1 :(得分:0)
如果您需要更改这些消息的呈现方式,则需要覆盖theme_status_messages()
主题功能,其中包含以下代码。
function theme_status_messages($variables) {
$display = $variables['display'];
$output = '';
$status_heading = array(
'status' => t('Status message'),
'error' => t('Error message'),
'warning' => t('Warning message'),
);
foreach (drupal_get_messages($display) as $type => $messages) {
$output .= "<div class=\"messages $type\">\n";
if (!empty($status_heading[$type])) {
$output .= '<h2 class="element-invisible">' . $status_heading[$type] . "</h2>\n";
}
if (count($messages) > 1) {
$output .= " <ul>\n";
foreach ($messages as $message) {
$output .= ' <li>' . $message . "</li>\n";
}
$output .= " </ul>\n";
}
else {
$output .= $messages[0];
}
$output .= "</div>\n";
}
return $output;
}
如果您需要过滤掉特定的消息,我宁愿从显示的消息列表中删除消息,而不是使用CSS样式隐藏消息。