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つの機会のうちの 1 つだけで$variables、 の値がありません$variables['cid']
  • その 1 つの機会は、スコアを読み込んで投稿自体の下に表示するときです。また、現在の投稿のスコアを特定する代わりに、最初に投票された投稿のスコアを特定します。(これは、1 つの投稿のスコアを返す代わりに、すべての投稿のスコアを返し、リストの最初のスコアを使用するためです)。

私はそれ$variablesがシステム全体の定数であると仮定しています(使用してその内容を見るとそれをprint_r確認しているようです)、おそらくこれは常に同じであるべきであるため、コアバグです。内容を確認した$variablesところ、約 50 の中で動作しない部分と異なるのは、cid - 空白、tag - 空白の 4 つだけです (ただし、これは関数によって検出され、正しく 'vote' として置換されます)。 zebra - even & id - 2. 最後の 2 つはこれにはそれほど重要ではないと思うので、キー$variables['cid']が渡されない理由にあるはずです。

だから、私の質問は次のとおりです。

  • 誰かが以前にこの問題を抱えていましたか?どのように修正しましたか?
  • そうでない場合、これが正しく機能しない理由を理解する方法についてのヒントはありますか?
4

2 に答える 2

1

答えを教えることはできませんが、これをモジュールの問題キューに投稿した方が運が良いでしょう。

于 2009-05-20T01:58:29.117 に答える
0

以前にこれを試していなかったなんて信じられませんが、vote_up_down の最新の開発スナップショットにアップグレードしたところ、問題はなくなりました。問題を解決するのに約 6 時間かかるのに対し、最終的には 2 分の修正です。

教訓!

于 2009-05-20T13:14:06.190 に答える