2011-01-20 91 views
0

我正在開發一個Drupal項目,其中我有兩種類型的CCK內容類型 - 「場地」(父節點)和「音樂會」(孩子節點)。在Drupal6中從CSV導入時從子節點創建父節點

我已經通過node_import模塊從CSV導入了一堆知名場館,現在需要導入另一個充滿節目的CSV。

我如何:

一個。參考音樂會CSV中的場地 - 我基本上需要做的是根據location.module地址(但不是CCK類型,因爲我如何導入場地)創建節點引用,但我不知道如何導入像這樣,尤其是當兩張表之間的相同地址可能有所不同時(在標點符號等方面)。

b。對於一些音樂會上市,我的場地數據表可能不完整。導入時,如果導入程序無法找到子節點引用的地址,如何創建父節點?請注意,音樂會CSV包含來自每行中場地CSV的大部分信息。

我提到我正在使用node_import,但我想我可能需要使用Data API。我對後者沒有經驗(或者確實喜歡某種特定的導入方法),並且非常感謝您給我提供的任何幫助。

回答

1

對於你來說,feed會是一個很好的解決方案,我想。您需要爲導入器爲2種不同的內容類型進行設置,並且根據文件的結構,您可能需要通過兩個導入器運行相同的文件。

對於節點引用,您需要使用node_reference映射器,該映射器可能目前僅作爲補丁存在,或者編寫自己的(我們最終在下午完成)。

我們目前正在做一些類似的進口60k拍賣列表,並分佈在30-40個事件中。奇蹟般有效。

節點參考映射: http://drupal.org/node/724536

提要: http://drupal.org/project/feeds

至於爲什麼你可能需要導入相同的文件不止一次,這裏是我們如何導入具有CSV文件中一個簡單的例子有關相同文件中的項目和事件的信息。 如果您有具有下列結構的文件:

|item_id|event_id|item_body |event_body | 

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

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

我們運行這個兩個事件內容類型進口商來說,無論是* _id列是GUID,身體被導入爲身體。事件導入器首先運行。對於該項目,event_id用於查找爲該事件創建的節點,並創建節點引用。未被導入的內容類型的信息會被忽略。

只有事項標識的第一個實例所需要的身體或其他領域,但我們的一些供應商的重複,它實際上並不慢下來,從我還記得那些數據。我們也有發送事件2個獨立文件1,一個用於項目,包含事件ID列中的項目供應商。

+0

這是有用的;我會在今天下午晚些時候給你一個鏡頭,然後回覆你。謝謝! – aendrew 2011-01-20 22:23:21