0

所以你有两个分类法,即:“业务类型”和“位置”

这被分配给一个名为 BUSINESS 的节点。实际上,当用户创建业务节点时,她必须选择例如位置“纽约”并输入“信息服务”。我的问题是:a)捕获分类,b)显示分类

我希望这两个术语彼此分开。即我希望能够在 MANAGE FIELDS 视图中移动这两个术语的单独位置,以便可以将它们分组或单独放置。目前,Drupal 只允许一个条目,称为“TAXONOMY”,它实际上是两个相邻的术语。

这就是我所拥有的: 替代文字 http://www.namhost.com/have.jpg

这就是我想要的: 替代文字 http://www.namhost.com/want.jpg

请记住,我需要能够将其与 Hierarchical Select 一起使用,这意味着 Content Taxonomy 不是一个选项。

4

3 回答 3

1

您必须将问题分为两部分:

  • 表格填写部分,将所有词汇表一起提供给编辑器。
  • 内容显示部分,您将能够分离词汇表。

我将在这里更多地介绍第二部分,关于显示。

使用CCK 计算域模块并为您要显示的每个词汇创建一个域。将此字段放置在您想要的位置。

配置每个字段如下:

  1. Computed Code上,输入如下内容:
    # 从其管理 URL (/admin/content/taxonomy/edit/vocabulary/[VOCABULARY_ID]) 获取词汇 ID 并在此处设置:

$node_field[0]['value'] = "5";

# 另外,在显示字段上将此字段配置为“原始文本”
  1. Display Format上,使用这个:
    $vocabulary_id=$node_field_item['value'];

$terms=taxonomy_node_get_terms_by_vocabulary($element['#node'], $vocabulary_id);

foreach ($terms as $tid => $details) {
      # taxonomy_get_textual_term_hierarchy_by_id() 在 SolutionHub 的主题 template.php 文件上实现
      $textualTerms .= taxonomy_get_textual_term_hierarchy_by_id($tid);
}

if (isset($textualTerms)) {
      $显示='';
      $display.=$textualTerms;
      $display.='';
}

taxonomy_get_textual_term_hierarchy_by_id() 函数特定于我的站点,并在 DRUPAL_ROOT/sites/default/themes/mytheme/template.php 中定义,并以一种奇特的方式简单地重写分类术语文本以显示其整个沿袭。所以我会得到类似“食物>沙漠>水果>苹果”的东西,而不是“苹果”。我不会在这里粘贴它,因为它超出了范围。

如果您的问题是在编辑表单中重新定位词汇表,我建议您使用 Content Taxonomy 模块。

于 2010-06-16T01:27:58.830 回答
0

您被输入表单中同时出现的两个分类法困住了,它们作为一个包出现。分类学应该用作分类系统(如动物界分类),因此这些术语在物理空间中属于一起。

但是对于您问题的另一半,请记住您的用户将在输入表单中看到“业务类型”和“位置”标签,而不是您在管理字段时看到的通用“分类”标签。

于 2009-11-19T17:40:08.633 回答
0

也许你可以用 cck 做得更好。通过启用文本(带有 cck),您可以添加文本字段。您可以轻松地单独使用它们,将它们与视图、模板等一起使用。

于 2009-11-19T18:39:01.230 回答