私は 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']
が渡されない理由にあるはずです。
だから、私の質問は次のとおりです。
- 誰かが以前にこの問題を抱えていましたか?どのように修正しましたか?
- そうでない場合、これが正しく機能しない理由を理解する方法についてのヒントはありますか?