2011-01-20 5 views
0

私は、「会場」(親ノード)と「コンサート」(子ノード)の2種類のノードをCCKコンテンツタイプで構築したDrupalプロジェクトに取り組んでいます。ノード)。Drupal6のCSVからインポートするときに子ノードから親ノードを作成する

私はnode_importモジュール経由でCSVからよく知られた会場をインポートしましたが、今度はショーで満たされた別のCSVをインポートする必要があります。

はどのように操作を行います。

。コンサートの会場を参照するCSV - 本質的に必要なことは、location.moduleアドレスに基づいてノードリファレンスを作成することです(ただし、会場をどのようにインポートしたかによってCCKタイプではありません)。しかし、インポート方法はわかりません特に、同じアドレスが2つのシートの間で(句読点などの点で)多少異なる場合があります。

b。一部のコンサートのリスティングでは、私の会場のデータシートが不完全になる可能性があります。インポート時に、インポータが子ノードによって参照されるアドレスを見つけることができない場合、どのように親ノードを作成しますか?コンサートCSVは、各行の会場CSVからの情報の大部分を有することに留意されたい。

私はnode_importを使用していますが、このためにData APIを使用する必要があると考えています。私は後者についての経験はありません(実際には特定のインポート方法の選択肢があります)。あなたが私に与えることができるすべての助けに感謝します。

答えて

1

フィードは良い解決策になると私は思う。 2つの異なるコンテンツタイプのインポータで設定する必要があります。ファイルの構造によっては、両方のインポータで同じファイルを実行する必要があります。

ノード参照の場合は、この時点でパッチとしてのみ存在するnode_referenceマッパーを使用するか、自分で書いてください(午後に終了しました)。

私たちは現在、60kオークションのリストを模擬的にインポートし、30-40イベントに広がっています。魅力のように動作します。

ノード参照マッパー: http://drupal.org/node/724536

フィード: http://drupal.org/project/feeds

を使用すると、複数回同じファイルをインポートする必要があるかもしれない理由については、ここで我々が持っているCSVファイルをインポートする方法の簡単な例であります同じファイル内のアイテムとイベントに関する情報。 あなたは次のような構造を持つファイルがある場合:*の_id列の両方がGUIDで、ボディはボディとしてインポートされるため

|item_id|event_id|item_body |event_body | 

|12231 | 123 | 'price $1'| 'on friday'| 

|12232 | 123 | 'price $5'| 'on friday'| 

我々は、両方のイベントコンテンツタイプ輸入のためにこれを実行します。イベントインポーターが最初に実行されます。項目の場合、event_idはイベント用に作成されたノードを検索するために使用され、ノード参照が作成されます。インポートされていないコンテンツタイプの情報は無視されます。

イベントIDの最初のインスタンスのみが本文または他のフィールドを必要としますが、私たちのプロバイダの中には、実際には遅くならないデータを、私が覚えているものから複製しています。また、イベントIDとイベントIDの列を含むアイテムとともに、イベント用に1つとアイテム用に2つの別々のファイルを送信するプロバイダもあります。

+0

これは便利です。私は今日の午後遅くにそれを与え、あなたに戻ってきます。ありがとう! – aendrew

+0

「あなたのファイルがどのように構造化されているかに応じて、両方のインポーターで同じファイルを実行する必要があるかもしれない」という行を説明してください。ありがとう! – aendrew

+0

が答えを更新しました。フォーマットが簡単だったからです。まだ質問がある場合はお知らせください。 – mirzu