web-dev-qa-db-ja.com

fivestar_get_votes()を使用してノードの投票を表示する

Drupal 7.のnode.tpl.phpでFivestarを使用して多軸レビューシステムを表示する必要があります。

このチュートリアル に従ってコンテンツタイプを作成しました。これはDrupal 6の場合であり、votingapi_select_results()およびfivestar_theme()をDrupal 7。

最初は、次のコードを試しました。

$design_rating = votingapi_select_results(array('entity_id' => $node->nid, 'tag' =>'design', 'function' => 'average'));
print_r($design_rating );

致命的なエラーが発生しました。

後で、次のコードのようにfivestar_get_votes()を使用しました。

$design = fivestar_get_votes('node', $node->nid, 'design', NULL);
print_r($design);

配列を取得しました。

配列(
 [平均] =>配列(
 [vote_cache_id] => 128 
 [entity_type] => node 
 [entity_id] = > 18 
 [値] => 80 
 [値のタイプ] =>パーセント
 [タグ] =>設計
 [関数] =>平均
 [timestamp] => 1332162918 
)
 [count] => Array(
 [vote_cache_id] => 127 
 [entity_type] => node 
 [entity_id] => 18 
 [value] => 1 
 [value_type] => percent 
 [tag] => design 
 [function] = > count 
 [timestamp] => 1332162918 
)
 [user] => Array(
 [vote_id] => 8 
 [entity_type] => node 
 [entity_id] => 18 
 [value] => 80 
 [value_type] =>パーセント
 [タグ] =>設計
 [uid] => 1 
 [timestamp] => 1332162918 
 [vote_source] => 122.164.241.37 
 [function] => user 
)
)

私はそれを使用して、Fivestarモジュールから表示される結果を表示する方法がわかりません。どうすればできますか?

node.tpl.phpで以下のコードを試してみましたが、結果はファイブスターウィジェットではなく「3」と表示されました。

$variables=array('rating'=>60,'stars'=>5,'tag'=>'design');
echo theme('fivestar_static',$variables); 

何か不足していますか?またはdrupal 7のnode.tpl.phpにテーマ関数を呼び出す他の手順がありますか?

3
Moorthy

Drupal 7のFivestarモジュールは、fivestarをフィールドとして実装します。フィールド名がfield_fivestar_awesomenessどこでも印刷できます:

$fivestar = field_view_field('node', $node, 'field_fivestar_awesomeness');
print render($fivestar);

いくつかの表示と言語のオプションがあります。詳細は api docs を参照してください。

4
Capi Etheriel

Fivestar モジュールからfivestar_custom_widget()を使用できます

  1. ノードからレートを作成

    $rating = votingapi_select_single_result_value(
     array(
        'entity_id' => $node->nid,
        'entity_type' => 'node',
        'tag' => 'vote',
        'function' => 'average',
    ));
    

2フォームを作成する

$vote = drupal_get_form('fivestar_custom_widget', array('average'=>$rating), $settings);

どこ

$settings = array( 'stars' => 5, 'tag' => 'staff_vote');

fivestar.moduleでもっと見る

0
Roman