2

我正在使用 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大约 50 个部分的内容,其中只有 4 个部分与不起作用的部分不同:cid - 空白,标签 - 空白(尽管这是由函数发现并正确替换为“投票”), zebra - even & id - 2. 我想最后 2 对此并不重要,所以关键必须是为什么$variables['cid']没有被通过。

所以,我的问题是:

  • 以前有没有人遇到过这个问题,你是如何解决的?
  • 如果没有,您对我如何弄清楚为什么它不能正常工作有什么建议吗?
4

2 回答 2

1

我不能告诉你答案,但你可能会更幸运地将它发布到模块的问题队列中,因为那时维护者和其他使用它的人会看到它。

于 2009-05-20T01:58:29.117 回答
0

我不敢相信我之前没有尝试过,但是我刚刚升级到 vote_up_down 的最新开发快照,问题就消失了。最终修复了 2 分钟,而试图解决问题则需要大约 6 小时。

学习到教训了!

于 2009-05-20T13:14:06.190 回答