我正在使用 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']
没有被通过。
所以,我的问题是:
- 以前有没有人遇到过这个问题,你是如何解决的?
- 如果没有,您对我如何弄清楚为什么它不能正常工作有什么建议吗?