Модуль Drupal voice_up_down сообщает о неверных точках - PullRequest
2 голосов
/ 18 мая 2009

Я работаю над проектом, использующим Drupal 6 (на данный момент 6.11, еще не обновлен до 6.12), и часть основной функциональности - это возможность голосовать на узлах. У меня довольно странное поведение, и мне потребовалась целая эпоха, чтобы выследить его, и теперь я все еще не могу это исправить.

Это то, что мне удалось выяснить до сих пор:

  • Файл шаблона sites/default/modules/vote_up_down/theme/vote_up_down_points.tpl.php автоматически вызывает функцию template_preprocess_vote_up_down_points() из vote_up_down.module.
  • vote_up_down.module затем запрашивает базу данных, используя значения, хранящиеся в массиве $variables, который передается ей
  • Только в одном из 3 случаев это вызывается на типичном узле (в данном случае сообщениях на форуме) $variables не имеет значения для $variables['cid'].
  • Это один случай, когда он читает счет, чтобы отобразить его под самим постом. И вместо того, чтобы найти оценку текущего поста, он находит первый в истории проголосовавший пост. (Это потому, что вместо того, чтобы возвращать счет одного сообщения, он возвращает счет всех сообщений, а затем использует первое из списка).

Я предполагаю, что $variables является общесистемной константой (кажется, что это подтверждается просмотром содержимого с использованием print_r), и, возможно, это основная ошибка, поскольку она всегда должна быть одинаковой. Я проверил содержимое $variables и единственные 4 части из 50, которые отличаются тем, что не работает: cid - пусто, tag - пусто (хотя это обнаруживается функцией и правильно подставляется как 'голосование' '), зебра - даже & id - 2. Я думаю, что последние 2 не очень важны для этого, поэтому ключ должен быть в том, почему $variables['cid'] не передается.

Итак, мои вопросы:

  • У кого-нибудь была эта проблема раньше и как вы ее исправили?
  • Если нет, есть ли у вас какие-либо советы, как я могу выяснить, почему это не работает правильно?

Ответы [ 2 ]

1 голос
/ 20 мая 2009

Я не могу сказать вам ответ, но вам, вероятно, повезет, если вы разместите его в очереди проблем модуля, поскольку тогда сопровождающий и другие, использующие его, увидят его.

0 голосов
/ 20 мая 2009

Не могу поверить, что я не пробовал это раньше, но я просто обновился до последнего снимка разработки, как voice_up_down, и проблема прошла. В итоге 2-минутное исправление против 6 часов попыток решить проблему.

Урок усвоен!

...