1

Drupal を使用していると誰もがエラーに遭遇しますが、そのほとんどは簡単に修正できます。ただし、ウェブサイトがエラーで正常に動作していても、修正がそれほど簡単ではなく、何時間も掘り下げる必要があるものもあります.

私の質問: この掘り下げを回避するために、Drupal に特定の CSS クラスを各エラーに割り当てさせて、簡単に display:none にできるようにすることは可能ですか?

これを行う方法がない場合、display:none; を割り当てることは可能ですか? たとえば、エラー文字列 = "Warning: Invalid argument supplied for foreach() in element_children() (line 6282 of /var/www/html/includes/common.inc)."using jQuery / Javascript?

<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>

助けてくれてありがとう

4

2 に答える 2

5

CSS を使用してエラー メッセージを非表示にすることは、非常に悪い考えです。代わりに、 Administration » Configuration » Development » Logging and errorsに移動し、Error messages to displaynoneに設定して、画面へのエラー報告をオフにする必要があります。

これをオフにすると、これらのエラーは誰にも表示されませんが、管理者として、[管理] » [レポート] » [最近のログ メッセージ] に移動して自分で表示できます。

于 2012-06-21T07:57:51.370 に答える
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スタイルでメッセージを非表示にするのではなく、表示するメッセージのリストからメッセージを削除したいと思います。

于 2012-06-21T08:07:01.537 に答える