如何将摘要行添加到Drupal视图?

如何将摘要行添加到Drupal视图?,drupal,drupal-6,drupal-views,Drupal,Drupal 6,Drupal Views,我构建了一个视图(Drupal 6.x,Views 2.x)。我希望能够在这个视图的末尾添加一个摘要行-总计多个列,并将总计包含在摘要行中 我该怎么做?是否有一些视图数据修改钩子我可以实现,以改变构造的数据(在它成为主题之前) (请注意,我不能使用views\u-calc,因为此视图中的一些数据来自视图关系,而views\u-calc在撰写本文时不支持这些关系。)几个小时后回答我自己的问题。。。一种方法是实现hook\u views\u pre\u render(): 我个人会在视图模板中处理这

我构建了一个视图(Drupal 6.x,Views 2.x)。我希望能够在这个视图的末尾添加一个摘要行-总计多个列,并将总计包含在摘要行中

我该怎么做?是否有一些视图数据修改钩子我可以实现,以改变构造的数据(在它成为主题之前)


(请注意,我不能使用
views\u-calc
,因为此视图中的一些数据来自视图关系,而
views\u-calc
在撰写本文时不支持这些关系。)

几个小时后回答我自己的问题。。。一种方法是实现
hook\u views\u pre\u render()


我个人会在视图模板中处理这个问题。为您的视图创建一个
views view.tpl.php
,然后编辑它,计算并打印摘要


另一个选项是为同一视图创建另一个显示,然后创建一个
views视图unformatted.tpl.php
,计算并打印摘要,而不执行
print$行以避免调用字段模板。添加使用视图显示在需要的地方。

环顾四周,它看起来可以做您想做的事情。

如果其他人遇到此问题,您可以使用它添加汇总表显示。您只需设置显示,然后选择希望如何汇总每个列。我还没能将它用于视图数据导出,但是如果您只想在站点上查看数据,它就可以工作。

有很多开放的bug。看起来更稳定。

Views Calc不支持视图关系。最初的问题是,由于这个原因,不能使用Views Calc。如果您有额外的列,那么该代码将创建大量警告。要删除这些字段,请添加$row->field\u您的字段=array();在创建新行后删除它们。
/**
 * Implementation of hook_views_pre_render().
 */
function mymodule_views_pre_render(&$view) {
  if ($view->name == 'myview') {
    // perform calculations on each row
    $pointsEarned = $pointsPossible = 0;
    foreach($view->result as $submission) {
      if (is_numeric($submission->node_data_field_pointsearned_field_pointsearned_value)) {
        $pointsEarned += $submission->node_data_field_pointsearned_field_pointsearned_value;
        $pointsPossible += $submission->node_node_data_field_pointspossible_field_pointspossible_value;
      }
    }


    // insert a 'total' row
    $row = new stdClass();
    $row->node_data_field_pointsearned_field_pointsearned_value = $pointsEarned;
    $row->node_node_data_field_pointspossible_field_pointspossible_value = $pointsPossible;
    $view->result[] = $row;

    if ($pointsPossible > 0) {
      // insert an 'average' row
      $row = new stdClass();
      $row->users_name = 'Average:';
      $row->node_data_field_pointsearned_field_pointsearned_value = round($pointsEarned/$pointsPossible * 100) . "%";
      $view->result[] = $row;
    }
  }
}