【问题标题】:Views hierarchical taxonomy select box查看分层分类选择框
【发布时间】:2013-01-24 09:41:20
【问题描述】:

我正在尝试为旅行社创建 Drupal 网站,需要您的帮助。

  • 我将位置存储在具有层次结构的分类中,结构如下所示:

    • 欧洲
      • 法国
        • 巴黎
      • 德国
        • 柏林
  • 我正在使用带有“有分类术语(有深度)”过滤器的视图,显示为选择框。

  • “在下拉列表中显示层次结构”已启用

它工作正常,但随着位置数量的增加,选择框开始变得相当大。

所以我的问题是: 是否可以在选择框中仅显示分类的第一级和第二级? 或者是否可以在单独的选择框中显示每个级别的分类?

谢谢!

【问题讨论】:

  • 你没有提到哪个版本的drupal,这有很大的不同。我最近必须在 Drupal 7 中执行此操作,并且必须创建自己的模块,该模块提供一个块并使用表单 api 创建 3 个单独的分层选择框。前 2 个设置了 #ajax,因此他们将更新表单并填充下一个选择。
  • 我使用的是 Drupal 7。我确信自定义模块可以解决这个问题,但我正在尝试找到一些简单的解决方案。
  • "是否可以在选择框中只显示分类的第一和第二级?"这是可能的,但我从未见过这样做的模块。它可以在一个简单的 HOOK_form_alter 中完成。 “是否可以在单独的选择框中显示分类的每个级别?”我见过的唯一模块是分层选择。 drupal.org/project/hierarchical_select。我从来没有使用过它。我需要在几周前实施这个并实施我自己的。

标签: drupal drupal-7 drupal-views drupal-taxonomy


【解决方案1】:

使用分层选择模块创建选择列表。这将为您提供一个在所有子元素前面带有“-”符号的层次结构。 然后你可以用 hook_form_alter 函数改变表单。

function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
 if (($form_id == 'your_form_id')) {
  foreach ($form['tid']['#options'] as $term_key => $term) {
      // Check if this is a child by looking for '-' as first char in string
      $term_value = reset($term->option);
      if($term_value[0] == '-') {
        unset($form['tid']['#options'][$term_key]);
      }
    }
  }
}

【讨论】:

    【解决方案2】:

    您应该检查this link。我很确定,您可以通过任何自定义模块或 template.php 中的一些自定义编码来实现它

    你可以查看this module too,真的很有帮助。

    谢谢

    【讨论】:

      【解决方案3】:

      “是否可以在单独的选择框中显示分类的每个级别?” 我见过的唯一可能对您有用的模块是 Hierarchical Select 模块。 http://drupal.org/project/hierarchical_select

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-29
        • 2012-02-07
        • 1970-01-01
        • 1970-01-01
        • 2012-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多