我正在开发一个Drupal项目,我有两种类型的节点用CCK内容类型构建 - “场地”(父节点)和“音乐会”(子节点)。
我通过node_import模块从CSV导入了一堆众所周知的场地,现在需要导入另一个充满节目的CSV。
我如何:
一个。参考音乐会CSV中的场地 - 我基本上需要做的是根据location.module地址创建节点参考(但不是因为我导入场地的CCK类型),但我不知道如何导入像这样,尤其是当两张纸上的相同地址可能有所不同时(就标点符号而言)。
湾对于一些音乐会列表,我的场地数据表可能不完整。导入时,如果导入程序找不到子节点引用的地址,如何创建父节点?请注意,音乐会CSV包含每行中场地CSV的大部分信息。
我提到我正在使用node_import,但我想我可能需要使用Data API。我对后者没有经验(或者对特定的导入方法有偏好),非常感谢你能给我的任何帮助。
答案 0 :(得分: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用于查找为事件创建的节点,并创建节点引用。将忽略未导入的内容类型的信息。
只有event_id的第一个实例需要正文或其他字段,但我们的一些提供商会复制数据,这些数据实际上并不会让我记忆犹新。我们还有供应商为事件发送2个单独的文件1,为项目发送1个,包含事件ID列的项目。