2

我继承了一个具有非常大的分层分类法的站点:

Vocabulary name: categories
--term: company name
---- many child terms
-- term: country
---- many child terms
-- term: issue
---- many child terms

我意识到如果我将这些父术语中的每一个都设置为它们自己的词汇表,那么创建具有适当内容的搜索方面和视图会更容易:

company
country
issue

所以我创建了新的词汇表并使用分类管理器将所有子术语转移到他们的新词汇表中。然后我更新了 Article 节点内容类型以与这 3 个词汇表相关联。

不幸的是,我还注意到文章节点(全部 4,000 个)之间的术语关系,并且现在显示中丢失了术语。我认为这种关系将由分类管理器模块维护。

我一直在寻找一种方法来更新文章节点的词汇表引用,但我仍然不确定词汇表是如何与节点关联的。我看到为每个新词汇表创建了新的 field_data_field_vocabulary-machine-name 表 - 这是 termID 和节点/实体 ID 相关联的地方。但是,当我将术语从一个词汇表移动到另一个词汇表时,我不知道如何自动更新节点的词汇表。

我最近将该站点从 Drupal 6 移到了 7,因此 D6 中的大量死表使数据库变得混乱,这无济于事。

--

我现在已经设置了一个新的标准 D7 安装,并且正在查看 db 默认表,试图找出定义词汇/节点关系的位置。在我的旧数据库上,TermID 似乎仍然与节点表中的节点正确关联......但我看不到 VocabularyID/TermID/NodeID 的存储/更新位置。

4

3 回答 3

1

请尝试这个模块:http ://drupal.org/project/taxonomy_manager

该模块为管理分类提供了一个强大的界面。词汇表显示在动态树视图中,其中父术语可以展开以列出其嵌套的子术语,也可以折叠。

分类管理器具有以下操作和主要功能:

动态树视图 大量删除 大量添加新术语 在层次结构中移动术语 合并术语(使用 7.x 中的术语合并模块) 使用上下箭头快速改变权重(以及 AJAX 保存) AJAX 驱动的术语编辑表单简单的搜索界面 CSV导出术语 i18n 支持多语言词汇(每个语言术语) 双树界面用于在层次结构中移动术语、添加新翻译和在不同词汇之间切换术语 要使用分类管理器,您应该在浏览器中启用 JavaScript 并自动加载图像。

于 2013-01-22T13:38:00.950 回答
0

-> 但我仍然不确定词汇表是如何与节点关联的

在 Drupal 7 中,分类引用的完成方式与在 Drupal 6 中非常不同。如果要将词汇表与 Drupal 7 中的节点相关联,则必须将该术语添加为内容类型的字段:

  1. 转到管理/结构/类型/管理/文章/字段,您可以在其中添加/删除/修改您的文章内容类型的字段
  2. 添加一个新字段,将其命名为您喜欢的任何名称,并确保从下拉列表中选择类型“术语参考”
  3. 确保你选择了正确的词汇来从中提取
  4. 对剩余的两个词汇表重复此步骤(再添加两个字段)。
  5. 转到 admin/structure/types/manage/article/display 并修改是否希望这些新字段显示在节点上或隐藏

=============== 加法==================

在 Drupal 7 中,由于术语与任何其他字段一样,您将在存储信息的新创建表中看到数据库中的关系(当然,只有在您将适当的术语引用字段添加到内容类型后)关于那个领域。例如,默认情况下,Drupal 7 附带的标准“标签”词汇表可能称为 field_data_field_tags。在该表中,您将看到列entity_id(即节点的 id)和field_tags_id(即术语的 id),但对于您的特定术语,该列可能具有不同的名称。因此,对于每个术语与节点的关系,您将拥有三个单独的表,因为它们将是 Drupal 7 中的三个单独的字段。

这会帮助更多吗?

于 2012-08-07T13:28:40.800 回答
0

我觉得你应该 :

  1. 创建新词汇
  2. 添加具有对新词汇表的术语引用的字段
  3. 将内容类型与新词汇表连接后,您应该将术语移至新位置

我测试过,它适用于这个订单。

于 2014-01-20T18:56:08.967 回答