web-dev-qa-db-ja.com

インラインエンティティフォームモジュールを介して既存の用語が存在する場合はそれを参照し、存在しない場合は新しい用語を作成するにはどうすればよいですか?

コンテンツタイプbookがあり、分類用語の参照フィールドauthorがあります。

namesurnamenode add/editページ。名前と姓togetherが分類用語になります。

名前にJohnを入力し、姓にSmithを入力すると、分類用語はJohn Smithになります。

enter image description here

私は doingインラインエンティティフォーム モジュールと 自動エンティティラベル モジュールを使用してこれを行います。

ここでの問題は、次のとおりです。用語を入力する際、インラインエンティティフォームにはtwoオプションがあります。

  1. Add new term
  2. Add existing term

enter image description here

という用語が存在するかどうかわからない場合は役に立たなくなります。

必要なのは1つのオプションのみで、入力した[name + surname]existthenselect作成者として自動的に、それが存在しないcreate新しい用語。


これどうやってするの?

(同様の構造を作成できますReferences Dialog module、- Entity Connect モジュールなどですが、主な問題もそこにあります。)


:この質問は「 分類用語の名前と姓の構造を作成する方法 ..の重複ではありません。 。同じ画像を使用していても。この質問の要点は「新しい用語の作成と既存の1つのオプションの選択を組み合わせる方法」であり、もう1つの質問は「ノード形式で名前と姓の構造を作成する方法」です。

6
herci

このソリューションは少し「あります」ので、ロジックについて説明します。

  1. 3つの分類フィールド。 1つは姓、もう1つは姓(オートコンプリートがあるため)、1つはルールによって生成されたフルネームです。

  2. ノードの保存時に、最初と最後をトークンとして結合し、プロパティ名で用語をフェッチします。これにより、1つまたはまったくない用語を含むリストが表示されます。

  3. リストを受け取る2つのルールコンポーネント。

  4. No. 1:条件、リストは空です。行動。用語を作成してルールに送り返します。

  5. 2番目:条件、リストは空ではありません。行動。取得した用語を返信します。

  6. メインルールでは、ノードにデータ値を設定し、用語を返します。

それは「そこにあります」が、1つの用語に2つのフィールドがあるためです。

2
Niall Murphy