Commit c7916f05 authored by alexpott's avatar alexpott

Issue #1959110 by a.ross: Fixed theme_table() outputs the no_striping() option...

Issue #1959110 by a.ross: Fixed theme_table() outputs the no_striping() option as an HTML attribute.
parent 681a2606
......@@ -2203,25 +2203,24 @@ function theme_table($variables) {
$flip = array('even' => 'odd', 'odd' => 'even');
$class = 'even';
foreach ($rows as $number => $row) {
$attributes = array();
// Check if we're dealing with a simple or complex row
if (isset($row['data'])) {
foreach ($row as $key => $value) {
if ($key == 'data') {
$cells = $value;
}
else {
$attributes[$key] = $value;
}
}
$cells = $row['data'];
$no_striping = isset($row['no_striping']) ? $row['no_striping'] : FALSE;
// Set the attributes array and exclude 'data' and 'no_striping'.
$attributes = $row;
unset($attributes['data']);
unset($attributes['no_striping']);
}
else {
$cells = $row;
$attributes = array();
$no_striping = FALSE;
}
if (count($cells)) {
// Add odd/even class
if (empty($row['no_striping'])) {
if (!$no_striping) {
$class = $flip[$class];
$attributes['class'][] = $class;
}
......
......@@ -66,4 +66,19 @@ function testThemeTableWithEmptyMessage() {
$this->assertRaw('<tr class="odd"><td colspan="3" class="empty message">No strings available.</td>', 'Correct colspan was set on empty message.');
$this->assertRaw('<thead><tr><th>Header 1</th>', 'Table header was printed.');
}
/**
* Tests that the 'no_striping' option works correctly.
*/
function testThemeTableWithNoStriping() {
$rows = array(
array(
'data' => array(1),
'no_striping' => TRUE,
),
);
$this->content = theme('table', array('rows' => $rows));
$this->assertNoRaw('class="odd"', 'Odd/even classes were not added because $no_striping = TRUE.');
$this->assertNoRaw('no_striping', 'No invalid no_striping HTML attribute was printed.');
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment