судя по всему баг Drupal 6.4 - как лучше его исправить?

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

Аватар пользователя deex deex 26 ноября 2008 в 14:45

разрабатываю систему на друпал 6.4
может конечно баг появился в ходе разработки.
он заключается в следующем:

включаю модуль upload
создаю новую ноду
внизу добавляю к ней аттач
жму "добавить файл"
форма добавления заменяется json-текстом.

стал копать.
нашёл функцию Drupal.parseJson в misc/drupal.js

Drupal.parseJson = function (data) {
  if ((data.substring(0, 1) != '{') && (data.substring(0, 1) != '[')) {
    return { status: 0, data: data.length ? data : Drupal.t('Unspecified error') };
  }
  return eval('(' + data + ');');
};

дело в том, что в моём проекте data.substring(0, 1) возвращает символ с кодом 65279, который выглядит как пустая строка.
data.substring(0, 2) -- уже возвращает нужную {

и вот поэтому я получаю кашу, вместо нормального эвалуированного джейсона.

что сделать? исправить 1 на 2?

Комментарии

Аватар пользователя deex deex 26 ноября 2008 в 15:16

для себя пофиксил так:

Drupal.parseJson = function (data) {

 charIndx = ((data.substring(0, 1)+'').charCodeAt(0) == 65279)? 2 : 1;
 firstSymbolCode = data.substring(0, charIndx).charCodeAt(1);

 // 123 - {
 // 91 - [
 if ((firstSymbolCode != 123) && (firstSymbolCode != 91)) {
      return { status: 0, data: data.length ? data : Drupal.t('Unspecified error') };
  }
  return eval('(' + data + ');');
};

Аватар пользователя deex deex 26 ноября 2008 в 19:58

для себя - не вижу смысла.
меня просто удивил факт полной неработоспособности модуля.
подозреваю что что-то в кодировках