web-dev-qa-db-ja.com

ノード参照フィールドを自動入力し、コンテンツ作成後にリダイレクトするルール

コンテンツタイプXのノードが作成されると、コンテンツタイプYのノードも作成され、作成されたコンテンツタイプXのnidへのnodereferenceフィールドが自動的に入力されるようにルールを作成しようとしています。次に、ユーザーは、作成したばかりのコンテンツタイプYのノードの編集フォームにリダイレクトされます。

私のルール設定は今のように見えます:

Event:新しいコンテンツを保存した後

条件:コンテンツのタイプはX

アクション:

  • コンテンツタイプYの新しいエンティティを作成する
  • データ値を設定します。コンテンツタイプYの新しいノードにノード参照フィールドを設定しますコンテンツタイプXの新しいノードのnid
  • ページリダイレクト:URL:[entity-created:edit-url]

リダイレクト(私が最も簡単な部分だと思った)を除いてすべてが期待どおりに機能します。両方のノードが作成され、ノード参照フィールドが正しく設定されます。しかし、次のメッセージでページが見つかりませんというエラーが表示されます。

通知:未定義のプロパティ:node_tokens()のstdClass :: $ nid(/web/xxxxxx/www/modules/node/node.tokens.incの112行目)。

「コンテンツタイプX」「タイプxの新しいコンテンツのタイトル」が作成されました

リクエストされたページ「/ node // edit」が見つかりませんでした。

また、ページリダイレクトにnode/[entity-created:nid]/editを試しました。同じ正確な問題。 node/*/editの間にコンテンツタイプYの新しいノードのnidがプラグインされていない理由がわかりません。

3
Jay

基本的に、「エンティティの作成」の直後に別のイベントを作成する必要があります。これにより、リダイレクトルールに進む前に新しいエンティティがすぐに保存されます。

http://groups.drupal.org/node/204558#comment-688188 も参照してください。

3
ruess

データ値を設定した後、「エンティティを保存」アクションを選択し、まだ必要でないページリダイレクトアクションを削除します。

次のルールを作成します。

イベント「新しいコンテンツを保存した後」

条件:タイプyのコンテンツ

アクション:ページのリダイレクト-> [node:edit-url]

両方のルールが完了したら、ルールの重みを設定して、一方が他方より先に実行されるようにすることができます。したがって、ルールを重み:-2に設定し、次に新しいルールを重み:-1に設定して保存します。ページの下部にある設定をクリックすると、重みの値のドロップダウンが表示されます。

1
N dube