web-dev-qa-db-ja.com

csvファイルからEntityFormにインポートする方法

エンティティフォームがまったく同じ2つのdrupalサイトがあります。エンティティフォームの送信をサイトAからエンティティフォームの送信サイトBにインポートします。

ノードをインポートするのに非常にうまく機能するフィードモジュールを調べましたが、エンティティフォームにデータをインポートするオプションがありません。

1
Yama

CSVからの送信 Entityform 送信に使用できる提供されたモジュールがないようです。

CSVデータを読み取ってEntityform送信をインポートする小さなモジュールを作成してみてください。これを行うには、 Batch API を使用してバッチ操作を記述し、利用可能なコードスニペット here を使用してエンティティフォーム送信を作成します。

別の方法としては、Drupal Coreの主要なエンティティで動作し、新規/カスタムエンティティ用のシンプルなAPIを提供するモジュール Bundle Copy モジュールを試すこともできます。バンドルを試したことはありません。ノード以外のエンティティを使用してコピーします。これがEntityformで機能するかどうかを試すことができます。そうでない場合は、そのAPIを使用して拡張できます。

1
Yogesh

エンティティ参照フィードフィードエンティティプロセッサ を使用します

>ユースケース

このモジュールがどのように機能するかは、おそらく簡単な例を通してより簡単に伝えられます:

3番目のPary APIから製品レビューをXMLとして一緒に製品をインポートするとします。これは設計が不適切なAPIであり、レビューは所属する製品の子としてXMLにネストされており、個別に取得することはできません。

この問題には複数の解決策があります。たとえば、APIラッパーを作成し、ファイルを前処理して、2つのxmlフィードで製品とレビューを分離することができます。これは少し手間がかかりますが、レビューが製品の前にインポートされることを確認するなどの追加の問題が伴います。

エンティティ参照フィードは、「迅速かつダーティ」なソリューションを提供します。製品バンドルで製品レビューへのエンティティ参照を作成した後、製品レビューのフィールドとプロパティは、製品インポーターのマッピング設定でマッピングターゲットとして使用できます。製品とレビューの両方が同じ実行でインポートされるようになり、製品レビューはエンティティ参照フィールドの値として「インプレース」で作成されます。

自分で試してみる場合は、CSVパーサーの代わりにカスタムフィードマッパーを使用することをお勧めします。 カスタムフィールドマッパーフィードの使用方法

0
Yusef