0

在 Views Unformatted List 中,有没有办法将相同内容类型的节点组合在一起?

例子:

内容类型“参加者”中的每个节点都为即将到来的事件指定参加者。其中一些与会者是另一位与会者的“朋友”,为了将他们联系在一起,我使用了一个实体引用字段,如下所示:

http://i.stack.imgur.com/6mWnx.png

现在在“视图”中,如何让这些链接的朋友出现在他们一起去的与会者之后?(所以首先显示引用的“父”实体,然后显示任何引用的“子”实体?)

格式化示例:

假设我们有鲍勃、比尔和汤姆……比尔是唯一一个有朋友参加的人;这两个朋友的名字是 Hansel & Gretel。

Hansel & Gretel 将在其实体参考字段中选择 Bill,输出应显示:

  • 鲍勃
  • 账单
  • 汉塞尔
  • 格蕾特
  • 汤姆

“视图字段视图”模块不适用于我的情况,因为我实际上使用的是当前不兼容的“视图 PDF”模块。Views PDF 仍然允许我使用关系,我希望这仍然是可能的——即使我必须编写自定义主题信息或其他内容。

4

1 回答 1

0

您可以通过 views_query_alter 挂钩覆盖视图的排序。

创建一个自定义模块,并将此代码添加到 your_module.module 文件中:

<?php

/**
 * Implements hook_views_query_alter()
 */
function YOUR_MODULE_views_query_alter(&$view, &$query) {
  if ($view->name == 'YOUR_VIEW_NAME') {
    $query->orderby = array(
      array(
        'field' => 'COALESCE(ATTENDING_WITH_TITLE_FIELD, FRIEND_TITLE_FIELD)',
        'direction' => 'DESC',
      ),
       array(
        'field' => '(ATTENDING_WITH_TITLE_FIELD = FRIEND_TITLE_FIELD)',
        'direction' => 'ASC',
      )     
    );
  }
}

第一个 order by 将按他们参加的朋友的姓名或他们自己的姓名(如果这不可用)排序(null)。

第二部分将确保与他们有朋友的朋友首先出现。

荣誉:http ://blog.blenderbox.com/2011/11/03/how-to-modify-a-drupal-7-view-query-to-order-by-two-columns-simultaneously/

于 2013-08-19T16:39:05.697 回答