我正在研究一个非常相似的问题,并且还使用Fivestar,Rate,Flag等打了砖墙。几个月后,我通过google到达了这里,因为我一直在寻找Fivestar的“投票目标”功能,但是对于带有节点的Yelp风格界面的投票/小部件的简单性,并添加了评论。
我使用了Vote Up / Down小部件,并遵循了 Drupal.org上模块维护者marvil07 的建议,以注释形式而不是节点形式呈现小部件:
- 为所需的节点类型启用注释。
- 将一个vud_field字段添加到所需的节点类型。
- 将vud_field字段格式化程序设置为隐藏。
- 手动在注释表单(通常)和节点类型上(使用readonly选项)手动呈现表决窗口小部件。
由于该字段被呈现为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,
);
}
}