【问题标题】:How can I custom order Drupal Views' groups and include custom HTML for each group?如何自定义订购 Drupal Views 的组并为每个组包含自定义 HTML?
【发布时间】:2012-11-15 03:48:48
【问题描述】:

我有 6 种自定义内容类型和一个按节点类型显示 6 种类型和分组结果的视图。

示例:自定义内容类型为计算机、汽车、食品等。视图按这些类型对节点进行分组:

[exposed filters here]

Computers
 - HP P6500
 - Leveno HQ3112

Cars
 - Ford F150
 - GM Silverado

Food
 - Apple
 - Banana

如何以任意方式对组进行排序? IE。食品、汽车、电脑。另外,如何为每个组和自定义 HTML 指定自定义标题?我想在每个组标题旁边放一张图片,标题上的自定义颜色等。我尝试使用 viewfield、views_field_view 和 viewreference 模块完成此操作,并为每种内容类型制作单独的子视图,以及一个主视图来显示它们,但我遇到了暴露的过滤器和分页工作的问题。我可能会以错误的方式解决这个问题。任何建议将不胜感激!

【问题讨论】:

    标签: drupal drupal-6 drupal-views


    【解决方案1】:

    我在 Drupal 7 中使用 Views 3.x,所以我不确定这是否完全适用。但是我想提一下,因为我遇到了完全相同的问题(对您问题的排序部分)。

    为了以任意方式对组进行排序,我想出的最快解决方案是使用 Global: PHP 排序(在视图 UI 中)。如果 Food、Cars 和 Computers 是内容类型,那么这样的东西应该可以工作......

    switch ($row1->type) {
      case 'food':
        return -1;
        break;
      case 'computers':
        return 1;
        break;
      case 'cars':
        if ($row2->type == 'computers') {
          return -1;
        }
        elseif ($row2->type == 'food') {
          return 1;
        }
        else {
          return 0;
        }
        break;
      default:
        return 0;
      break;
    }
    

    我还使用了Views Grouping Row Limit 模块,它可以更好地控制组。 使用该模块,您可以通过模板和 CSS(组的唯一 ID)修改组输出,这将允许您为该组名称添加图像。

    要重命名组标题,您可以使用 jQuery,但我最终使用了其中一个视图挂钩,hook_views_post_render:

    function MODULE_views_post_render(&$view, &$output, &$cache) {
      $output = str_replace('<h3>Original Title</h3>', '<h3>' . t('New Title') . '</h3>', $output);
    }
    

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      为了完全控制您的视图输出,我建议您尝试查看 modules/views/theme 文件夹中的视图模板。不要直接编辑这些,而是​​将它们复制到您的主题文件夹并在那里进行编辑。 (您需要清除缓存,以便 drupal 获取您的副本)。

      要找出您应该编辑哪个模板,一个非常好的工具是http://drupal.org/project/devel_themer

      对于较小的更改,使用主题挂钩会更容易,但如果您想做很多更改,直接在模板上工作可能是明智的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-05
        • 1970-01-01
        • 2017-04-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多