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にテーマ関数を呼び出す他の手順がありますか?
Drupal 7のFivestarモジュールは、fivestarをフィールドとして実装します。フィールド名がfield_fivestar_awesomeness
どこでも印刷できます:
$fivestar = field_view_field('node', $node, 'field_fivestar_awesomeness');
print render($fivestar);
いくつかの表示と言語のオプションがあります。詳細は api docs を参照してください。
Fivestar モジュールからfivestar_custom_widget()
を使用できます
ノードからレートを作成
$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
でもっと見る