問題タブ [drupal-fivestar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
drupal - Drupal 7でファイブスターの数値をプログラムで設定
私は 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フックに移動する可能性があります...
php - 最初のコメントの後にFivestar評価フィールドをプログラムで非表示にする方法は?
ユーザーが既にコメントしたノードにコメントするときに、コメント フォームの Fivestar 評価フィールド (「field_stars」と呼ばれる) を非表示にしたいと考えています。私のサイトにはCommentedというフラグがあり、誰かがコメントしたときにコメンテーターに代わってノードにフラグを立てるルールがあります (これは完全に機能します)。ここで見つけた情報に基づいて、問題を解決しようとしました:
残念ながら、何も変わりません(エラーも発生しません)。私は何を間違えましたか?
@jerdiggity のコードでデバッグした後、次のようになります。
(もちろん、私も取得しDEBUG: final form structure:
ますが、ここに貼り付けるには時間がかかります)。データベースに保存されているため、フラグが認識されない理由がわかりません...
php - Fivestar を使用して、すべてのノードでユーザーの平均評価を計算するにはどうすればよいですか?
私のウェブサイトでは、ユーザーはコメント内の星と呼ばれる Fivestar フィールドを介して、お互いのノードを評価できます。ユーザーの全体的な平均スコアを計算したいと思います。つまり、ユーザーのすべてのノードの平均スコアを表示したいと思います。
例えば。ユーザーがNode 1とNode 2の 2 つのノードを作成したとします。一部の人々は彼のコンテンツを次のように評価しました。
- ノード 1のスコア: 4/5、5/5、3/5
- ノード 2のスコア: 4/5、4/5
全体の平均は (4+5+3+4+4)/5=4 になります。
できれば、この結果も星として表示する必要があります。
どうやってやるの?
編集:計算フィールドモジュールを使用することは、この問題を解決するための一般的なアイデアのようです。私には問題ないように見えます。簡単にアクセスできるようにするために、ユーザーの平均スコアをユーザー フィールドに保存するのが最善だと思います。(ビューでの操作もOKです。) プロフィールページに平均点を表示する予定ですが、今後サイトのどこかで使うこともあるかもしれません。
私が使用することになっているコードの (scetch) を手伝ってくれませんか?
php - 別のユーザーからのコメントを編集するときに Fivestar フィールドを非表示にする方法は?
記事に対する私のコメントには、「星」と呼ばれる必須の Fivestar 評価フィールドがあり、次のカスタム モジュールで非表示にしました ( https://drupal.stackexchange.com/questions/90629/how-to-hide-rating-field-を参照)。 when-adding-comment-to-own-node ):
管理者として、他のユーザーからのコメントを編集する権限があります。ユーザーが自分の記事にコメントしたとします。つまり、上記のコードにより、'Stars' フィールドを設定する必要はありませんでした。しかし、そのコメントを編集しようとすると、「スター」の値を選択する必要があります。
どうすればこれを防ぐことができますか? コメントを書いたユーザーの uid と、コメントを編集したユーザーの uid が異なることを確認するだけで十分です。最後に、自分で新しいコメントを残すときに星を選択する義務を守らなければならないことに注意してください!
編集:次のコードを試しました:
どうやら、$form_state['values']
次のエラーが発生するため、明確に定義されていません。
「通知: 未定義のインデックス: hiderating_form_alter() の値」.
正しいコードは何ですか?
drupal - Drupal FiveStar 制限投票
表示中に投票できるフィードバックフォームのようなものを用意する必要があり、ファイブスターを使用してそうしようとしています。このような何か
しかし、問題は、1 人のユーザーが 1 回しか投票できないことです。私はすでにいくつかのソリューションを検索し、何かを見つけました。カスタムモジュールを作成し、それを使用してfivestarフィールドを非表示にし、関数のフィールドを使用することでした。私の問題は、フィールドを非表示にできないことです。
これは、古いものを非表示にして新しいものを印刷するコードです。
だから私はやったが、それは動作しません。問題は、 $content[' field_fivestar_rating
'] を印刷しようとすると、存在しないことですhide($content['field_fivestar_rating'])
。hide($content['field_fivestar']);
だから私が求めているのは、誰かが私が何をすべきか知っているかどうかです。私の悪い英語でごめんなさい。