Как убрать всплывающие сообщения обязательных полей

Главные вкладки

Аватар пользователя dante dante 1 декабря 2013 в 9:51

Здравствуйте! Вообщем проблема такая - при не заполнении обязательных полей сверху всплывают сообщения о том что это обязательные поля , это совсем не удобно , ибо у меня сайт опросник и таких полей может быть очень много . Как убрать эти сообщения ?

Комментарии

Аватар пользователя dante dante 10 ноября 2015 в 11:49

как я понял из той статьи там предлагается в строчке
$display = $variables['display'];

'display' заменить либо на 'status' либо на 'error'

вобщем и так и так пытался но ошибки все равно вылазят

Аватар пользователя sg85 sg85 1 декабря 2013 в 13:10

это не статья, а всего лишь кусок кода, который в данный момент у Вас используется для вывода подобных сообщений, его то и нужно изменить. Например так:

function mytheme_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) {
    //Начало разницы
    if($type == 'error' && $_GET['q'] == 'node/1'){ //node/1 тут для примера, замените на МАШИННЫЙ адрес(не синоним) того места, где эти изменения нужны
      $hve = FALSE;
      foreach ($messages as $key => $message){
        if(mb_substr($message,-22) == 'является обязательным.'){
          $hve = TRUE;
          unset($messages[$key]);
        }
      }
      if($hve) $messages = array_merge($messages,array('Не все обязательные поля заполненны.'));
    }
    //Конец разницы
    $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;
}

mytheme - заменить на название Вашей темы и засунуть всю эту хрень в файл template.php Вашей темы.

Аватар пользователя dante dante 1 декабря 2013 в 13:51

Сделал все как вы и посоветовали , но ни чего не изменилось. Все равно выдает эти треклятые сообщения сверху.

Аватар пользователя dante dante 1 декабря 2013 в 17:59

хмм... кеш почистил. а вот кеш темизации как то по особенному чистится ? ну а после простой чистки кеша изменений не произошло

Аватар пользователя sg85 sg85 1 декабря 2013 в 23:51

значит смотрите что не сходится, либо название функции, либо адрес, где этот кусок кода должен выполняться, либо текст и его длина