나는 매우 비슷한 문제를 겪고 있으며 Fivestar, Rate, Flag 등을 사용하여 벽돌 벽에 부딪쳤다. 몇 달 후 5 스타의 '투표 대상'기능을 찾고 있었지만 노드와 의견이 추가 된 Yelp 스타일 인터페이스에 대한 투표 / 다운 위젯의 단순함을 검토했기 때문에 Google을 통해 여기에 왔습니다.
Vote Up / Down 위젯을 사용하고 Drupal.org의 모듈 관리자 marvil07 의 조언 을 따라 노드 양식과 달리 주석 양식으로 위젯을 렌더링했습니다.
- 원하는 노드 유형에 주석을 사용하십시오.
- 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,
);
}
}