【问题标题】:Moving the fields and data from one content type to another content type in drupal-7在 drupal-7 中将字段和数据从一种内容类型移动到另一种内容类型
【发布时间】:2018-05-14 19:13:32
【问题描述】:

我创建了一个名为“ContentA”的内容类型,在该内容类型中我有两个字段,“摘要”和“标题”。我已经创建了一个名为“ContentB”的新内容类型我需要做的是将数据和字段从第一个内容类型“ContentA”复制或移动到第二个内容类型“ContentB”,并且我正在使用 Drupal 7。

这可能是通过模块还是来自 SQL。我不知道该怎么做,几周以来我一直在尝试这样做,但我被卡住了:(请帮忙!

【问题讨论】:

  • 您的意思是ContentB 内容类型在其定义中没有字段?
  • 它有同名的字段,我想将数据从 ContentA 移动到 contentB
  • 而你需要将nodeA的内容复制到nodeB,就这样?
  • 是的,需要将所有字段数据从ContentA移动到ContentB
  • 并且应该在同一个节点ID上,不应该改变

标签: php drupal-7


【解决方案1】:

您似乎更想更改现有节点的节点类型,而不是将数据从类型 A 复制到类型 B。

看看node_convert 模块。

Node Convert 在节点视图页面上添加了一个菜单选项卡“Convert”,即node/1/convert,它提供了将节点从其当前节点类型转换为另一种节点类型的能力。该模块提供了将当前节点类型的所有字段值转换为目标节点类型的字段或丢弃它们的方法。

【讨论】:

  • 我尝试了节点转换模块,它一次只允许每个节点,我有大约 500 个节点,使用该模块非常困难。所以寻找任何用于批量传输的模块/脚本
  • 模块使用函数 node_convert_convert_nodes_using_template($nodes, $template_id) 进行基于模板的实际转换。我想你可以在批处理操作中使用这个函数来自动化这个过程。
【解决方案2】:

我有办法

这个模块有一些依赖
安装此模块后转到配置
网址:/admin/config/content/node_export
选择易于编辑的文件类型,我认为 JSON 是一个不错的选择,然后选择 JSON 保存

导出你的节点:

转到:/admin/content,然后使用您需要导出的内容类型进行过滤,例如 content_a

选择所有节点并从“更新选项操作”中选择选项“节点导出”

我知道只有五十个节点,您可以多次执行此操作,或者将所有导出文件合并到一个文件中以便稍后导入

现在我们已经以文件模式导出了所有节点

你必须改变这个导出文件的类型字段值

您可以通过将此文件转换为易于编辑的类型来做到这一点,例如
如果您将数据导出为 json 格式,则将其转换为 csv 文件
你可以在网上做这个from 并将字段值类型更改为您的新内容类型

像“type”列的值“ContentA”将其更改为您想要导入这些内容的内容类型名称,例如“ContentB” 然后将此 csv 文件还原为 json 格式

现在我们必须将数据导入drupal

转到:/node/add/node_export

选择您导出的文件,然后导入

完成

对于我们要导入这些内容的新内容类型,您必须手动创建具有相同字段的新内容类型,所有字段设置和名称应相同

它不应该占用你太多时间:)

你已经完成了

我已经测试过这个表格,你可以正常工作

希望这能解决您的问题

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    相关资源
    最近更新 更多