私は非常によく似た問題に取り組んでおり、Fivestar、Rate、Flagなどを使用してレンガの壁にぶつけました。私はファイブスターの「投票ターゲット」機能を探していましたが、ノードとコメントがレビューとして追加されたYelpスタイルのインターフェースの投票アップ/ダウンウィジェットのシンプルさを探していたので、数ヶ月後にグーグルを通じてここに行きました。
私は投票アップ/ダウンウィジェットを使用し、Drupal.orgのモジュールメンテナーmarvil07からのアドバイスに従って、ウィジェットをノードフォーム内ではなくコメントフォームにレンダリングしました。
- 必要なノードタイプのコメントを有効にします。
- 必要なノードタイプに1つのvud_fieldフィールドを追加します。
- vud_fieldフィールドフォーマッタを非表示に設定します。
- コメントフォーム(通常)とノードタイプ(読み取り専用オプションを使用)に投票ウィジェットを手動でレンダリングします。
フィールドはAJAXウィジェットとしてレンダリングされ、正しいノードに対する投票を記録するために必要なすべての情報が含まれているため、これはうまく機能します。これの私の正確な実装は、私の投票アップ/ダウンフィールド「field_rating」でこのように機能しました:
function MYTHEME_form_comment_form_alter(&$form, &$form_state) {
if ($form["#form_id"] == "comment_node_MY_YELP_KNOCKOFF_form") {
$node = node_load($form["#entity"]->nid);
$field = field_view_value('node', $node, 'field_rating', $node->field_rating[$node->language][0]);
$vud_render = render($field);
$form["voteupdown"] = array(
'#markup' => $vud_render,
'#weight' => 0,
);
}
}