diff --git a/plugins/views_plugin_style.inc b/plugins/views_plugin_style.inc index fe12607..4beed72 100644 --- a/plugins/views_plugin_style.inc +++ b/plugins/views_plugin_style.inc @@ -355,6 +355,7 @@ class views_plugin_style extends views_plugin { $output = ''; foreach ($sets as $set) { $row = reset($set['rows']); + $level = isset($set['level']) ? $set['level'] : $level; // Render as a grouping set. if (is_array($row) && isset($row['group'])) { $output .= theme(views_theme_functions('views_view_grouping', $this->view, $this->display), @@ -445,7 +446,7 @@ class views_plugin_style extends views_plugin { // hierarchically positioned set where the current row belongs to. // While iterating, parent groups, that do not exist yet, are added. $set = &$sets; - foreach ($groupings as $info) { + foreach ($groupings as $level => $info) { $field = $info['field']; $rendered = isset($info['rendered']) ? $info['rendered'] : $group_rendered; $rendered_strip = isset($info['rendered_strip']) ? $info['rendered_strip'] : FALSE; @@ -478,6 +479,7 @@ class views_plugin_style extends views_plugin { // Create the group if it does not exist yet. if (empty($set[$grouping])) { $set[$grouping]['group'] = $group_content; + $set[$grouping]['level'] = $level; $set[$grouping]['rows'] = array(); } diff --git a/tests/styles/views_plugin_style.test b/tests/styles/views_plugin_style.test index 2bb2857..e6226aa 100644 --- a/tests/styles/views_plugin_style.test +++ b/tests/styles/views_plugin_style.test @@ -78,6 +78,7 @@ class ViewsPluginStyleTestCase extends ViewsPluginStyleTestBase { $expected = array(); $expected['Job: Singer'] = array(); $expected['Job: Singer']['group'] = 'Job: Singer'; + $expected['Job: Singer']['level'] = '0'; $expected['Job: Singer']['rows'][0] = new StdClass(); $expected['Job: Singer']['rows'][0]->views_test_name = 'John'; $expected['Job: Singer']['rows'][0]->views_test_job = 'Singer'; @@ -88,6 +89,7 @@ class ViewsPluginStyleTestCase extends ViewsPluginStyleTestBase { $expected['Job: Singer']['rows'][1]->views_test_id = '2'; $expected['Job: Drummer'] = array(); $expected['Job: Drummer']['group'] = 'Job: Drummer'; + $expected['Job: Drummer']['level'] = '0'; $expected['Job: Drummer']['rows'][2] = new StdClass(); $expected['Job: Drummer']['rows'][2]->views_test_name = 'Ringo'; $expected['Job: Drummer']['rows'][2]->views_test_job = 'Drummer'; @@ -161,8 +163,10 @@ class ViewsPluginStyleTestCase extends ViewsPluginStyleTestBase { $expected = array(); $expected['Job: Singer'] = array(); $expected['Job: Singer']['group'] = 'Job: Singer'; + $expected['Job: Singer']['level'] = 0; $expected['Job: Singer']['rows']['Age: 25'] = array(); $expected['Job: Singer']['rows']['Age: 25']['group'] = 'Age: 25'; + $expected['Job: Singer']['rows']['Age: 25']['level'] = 1; $expected['Job: Singer']['rows']['Age: 25']['rows'][0] = new StdClass(); $expected['Job: Singer']['rows']['Age: 25']['rows'][0]->views_test_name = 'John'; $expected['Job: Singer']['rows']['Age: 25']['rows'][0]->views_test_job = 'Singer'; @@ -170,6 +174,7 @@ class ViewsPluginStyleTestCase extends ViewsPluginStyleTestBase { $expected['Job: Singer']['rows']['Age: 25']['rows'][0]->views_test_id = '1'; $expected['Job: Singer']['rows']['Age: 27'] = array(); $expected['Job: Singer']['rows']['Age: 27']['group'] = 'Age: 27'; + $expected['Job: Singer']['rows']['Age: 27']['level'] = 1; $expected['Job: Singer']['rows']['Age: 27']['rows'][1] = new StdClass(); $expected['Job: Singer']['rows']['Age: 27']['rows'][1]->views_test_name = 'George'; $expected['Job: Singer']['rows']['Age: 27']['rows'][1]->views_test_job = 'Singer'; @@ -177,8 +182,10 @@ class ViewsPluginStyleTestCase extends ViewsPluginStyleTestBase { $expected['Job: Singer']['rows']['Age: 27']['rows'][1]->views_test_id = '2'; $expected['Job: Drummer'] = array(); $expected['Job: Drummer']['group'] = 'Job: Drummer'; + $expected['Job: Drummer']['level'] = 0; $expected['Job: Drummer']['rows']['Age: 28'] = array(); $expected['Job: Drummer']['rows']['Age: 28']['group'] = 'Age: 28'; + $expected['Job: Drummer']['rows']['Age: 28']['level'] = 1; $expected['Job: Drummer']['rows']['Age: 28']['rows'][2] = new StdClass(); $expected['Job: Drummer']['rows']['Age: 28']['rows'][2]->views_test_name = 'Ringo'; $expected['Job: Drummer']['rows']['Age: 28']['rows'][2]->views_test_job = 'Drummer';