smo*_*ris 6 drupal drupal-views drupal-6
我已经构建了一个视图(Drupal 6.x,Views 2.x).我希望能够在此视图的末尾添加摘要行 - 总计几列,并在摘要行中包含总计.
我怎样才能做到这一点?是否有一些视图数据更改挂钩我可以实现,更改构造的数据(在它获得主题之前)?
(请注意,我无法使用,views_calc因为此视图中的某些数据来自视图关系,views_calc在撰写本文时它不支持.)
几小时后回答我自己的问题......一种方法是实施hook_views_pre_render():
/**
* 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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7424 次 |
| 最近记录: |