6

cron が実行されるたびに、このルールが作成したカスタム コンテンツ タイプの日付フィールドをチェックするように、( Rulesモジュールを使用して) カスタム ルールを作成しようとしています。activeその日付が過ぎている場合は、リスト ウィジェットを からに設定したいと思います ended

これは、このルールを作成しようとしたときに得られる距離です。

  1. React on eventに設定Cron maintenance tasks are performed
  2. Add ConditionSelect the condition to add>に設定Data comparison> 続行

問題は次のとおりです。フィールドデータへのアクセス権Data selectorsしかなく、アクセス権がありません。site

ここで私が間違っているアイデアはありますか?

4

3 に答える 3

0

最初にルール コンポーネントを作成する必要があります。

  1. ルール > コンポーネント(admin/config/workflow/rules/components)に移動します。
  2. 次に、新しいコンポーネントを作成し、選択リストから「ルール」を選択します
  3. このコンポーネントの名前を設定し、下の表で次を選択します。
    1. データ型:テキスト トークン
    2. ラベル:好きな名前
    3. マシン名:ラベルと同じ名前を使用しますが、ここでは小文字とアンダースコアのみを設定します
    4. 使用法:パラメータ
  4. コンポーネントで条件「データ比較」を追加し、node:typeを選択します。
  5. 必要なその他の条件を追加する
  6. 必要なアクションを設定して保存する
  7. 次に、ルール(admin/config/workflow/rules) に移動し、cron メンテナンスに対するアクションを含むルールを作成します (既に行ったように)。
  8. 条件セクションとアクションにジャンプします。
    1. 新しいアクション:変数を追加する
    2. 値:テキスト
    3. 次に、サイクルしたいコンテンツ タイプのマシン名と同じように、この変数の値を書き込みます (必要に応じて、以下のセクションでこの変数の名前とマシン名を変更できます)。
  9. 次に、別のアクション「エンティティをプロパティで取得」を追加します
    1. エンティティ タイプの値:ノード
    2. プロパティ値:タイプ
    3. データ セレクター:ポイント 8 で作成された変数
  10. パラメータリストにループを追加して、「プロパティごとにエンティティを取得」によって提供される変数を使用します
  11. ループにアクションを追加し (ループ行の右側にあるリンクをクリック)、ポイント 2 で作成されたコンポーネントを選択し、ループによって提供される変数を渡します。

私は次のように述べています:それが機能するかどうかはわかりませんが、少なくとも正しい道に導くはずです

私の英語でごめんなさい、あなたがすべてを理解してくれることを願っています:)

于 2013-05-28T09:00:51.463 に答える
0

はい、探しているものを実装するためにRulesモジュールを使用してこれを機能させることができるはずですが、それをViews Rulesモジュールと組み合わせることもお勧めします。このモジュールに関する詳細 (プロジェクト ページから):

ビューの結果データをシームレスに使用するために、ビューをルール アクションおよびループとして直接提供します。

前の引用は少し難解に思えるかもしれません (「それで、これがどのように役立つのか?」と思われるかもしれません)。したがって、これらのモジュールを使用して先に進む方法についての詳細は次のとおりです。

  1. Viewsを使用してビューを作成し、処理するすべてのノードを含む 1 つの Views 結果 (行) を取得します (カスタム コンテンツ タイプに関連し、可能であれば日付フィールドを使用して何らかの方法でフィルター処理します)。そのビューには、ノード ID、日付フィールド、場合によっては他のフィールドなど、後続のステップで必要となるすべてのフィールド (列) があります。ルールによって処理される値として、後でこれらの View フィールドが必要になりactiveますended。重要: 「ルール」のビュー表示タイプを使用してください。
  2. その「条件の追加」(開始したカスタム ルール内) を削除し、代わりにビュー ルールモジュールを使用して、「ルール ループ」と呼ばれるルール手法を使用して、これらの各ビューの結果を反復処理します。
  3. ルール ループの反復ステップごとに、ルール アクションを実行して「自分のことを行う」(= リスト ウィジェットを から に設定activeするended)。その時点で、ビューの結果の各列からのすべてのデータが、いわゆるルール パラメーターとして利用可能になります。したがって、その時点で、そのループで処理しているノードにそのリスト ウィジェットの値を適応させるのは簡単なことです。
  4. オプションで、独自の想像力に応じて、追加のルール条件を追加することもできます。通常、Views フィルターとして表現できない、またはまだ表現していないもの。ただし、Views フィルターと追加の Rules Condition のどちらを使用するかを選択できる場合は、Views フィルターを使用することをお勧めします。これにより、Rules ループでの反復回数が減るからです (パフォーマンス!)。

簡単ですよね?

于 2017-04-10T10:30:36.293 に答える