Drupal: не показывать метки текстовых полей в формах при установке и после нее - PullRequest
1 голос
/ 31 июля 2011

У меня странная проблема при установке Drupal 6.22.Снимок экрана во вложении

Экран установки не отображает текстовые метки (значение #title) в формах, сгенерированных функцией st ().И не генерируется, только если #type = 'textfield'.Например: '#type' => 'fieldset' работают.

<?php    
    $form['basic_options']['db_path'] = array(
      '#type' => 'textfield',
      '#title' => st('Database name'),
      '#default_value' => $db_path,
      '#size' => 45,
      '#required' => TRUE,
      '#description' => $db_path_description
    );
?>

Сайт размещен на Linode VPS.Ubuntu, Apache2, PHP Версия 5.3.5-1

mbstring включена.

ОБНОВЛЕНИЕ 1:

Не правильно работает функция filter_xss.Без этого фильтра все работает нормально!

function filter_xss($string, $allowed_tags = array('a', 'em', 'strong', 'cite', 'code', 'ul', 'ol', 'li', 'dl', 'dt', 'dd')) {
  // Only operate on valid UTF-8 strings. This is necessary to prevent cross
  // site scripting issues on Internet Explorer 6.
  if (!drupal_validate_utf8($string)) {
    return '';
  }
  // Store the input format
  _filter_xss_split($allowed_tags, TRUE);
  // Remove NUL characters (ignored by some browsers)
  $string = str_replace(chr(0), '', $string);
  // Remove Netscape 4 JS entities
  $string = preg_replace('%&\s*\{[^}]*(\}\s*;?|$)%', '', $string);

  // Defuse all HTML entities
  $string = str_replace('&', '&amp;', $string);
  // Change back only well-formed entities in our whitelist
  // Decimal numeric entities
  $string = preg_replace('/&amp;#([0-9]+;)/', '&#\1', $string);
  // Hexadecimal numeric entities
  $string = preg_replace('/&amp;#[Xx]0*((?:[0-9A-Fa-f]{2})+;)/', '&#x\1', $string);
  // Named entities
  $string = preg_replace('/&amp;([A-Za-z][A-Za-z0-9]*;)/', '&\1', $string);

  return preg_replace_callback('%
    (
    <(?=[^a-zA-Z!/])  # a lone <
    |                 # or
    <!--.*?-->        # a comment
    |                 # or
    <[^>]*(>|$)       # a string that starts with a <, up until the > or the end of the string
    |                 # or
    >                 # just a >
    )%x', '_filter_xss_split', $string);
}

ОБНОВЛЕНИЕ 2:

Проблема в функции drupal_validate_utf8

function drupal_validate_utf8($text) {
  if (strlen($text) == 0) {
    return TRUE;
  }
  // For performance reasons this logic is duplicated in check_plain().
  return (preg_match('/^./us', $text) == 1);
}

Странно, потому что кодирование моегосервер - UTF-8.Где я могу это проверить?


Если вам нужна другая информация о хостинге, php_info - я сразу же отвечу на ваши вопросы.

Спасибо !!

...