3

私は Drupal 7 サイトを持っており、1 つのコンテンツ タイプで Fivestar を使用しています。そのコンテンツ タイプの一部のノードは、Feed Importer と xpath パーサーを使用して作成されます (残りは、より伝統的な /node/add drupal の方法で作成されます)。これらのインポートされたフィードには、評価の数値 (0、20、40、60、80、100) を含む入力フィールドがあります。これをファイブスター フィールドに追加して、これらの評価を追跡し、 drupal で作成されたノードと一貫性のある方法。

私の問題は、Fivestar フィールド (field_rating) が xpath パーサー インポートのターゲットとして表示されないことです。この評価を取得する方法はありますか、またはこの Fivestar フィールド値をプログラムで設定する方法を教えてもらえますか?

更新: _fivestar_cast_vote を見つけましたが、使用しようとしているフィールド (「編集時に評価」されている) を取得するのに問題があります。同じノードの別の Fivestar フィールドに _fivestar_cast_vote を使用できます。これは「表示時に評価」されているため、正しい構文を持っているように感じます。「編集時の評価」フィールドについては、インポート時にコンテンツが割り当てられるユーザーの uid を使用しています...テストのために、node--*.tpl.php ファイルでこれを行っています。動作させることができれば、cronフックに移動する可能性があります...

4

1 に答える 1

0

これを見つけるのに少し時間がかかりましたが、プログラムでファイブスターの値を作成するには次のようにします

$node->field_name_of_your_field[$node->language][0]['rating'] = 20;

Devel をオンにして、ノードの [Devel] タブの下に表示される (オブジェクト) stdClass をナビゲートします。

リー

于 2012-11-10T23:23:46.050 に答える