I was trying to figure out why, regardless of the settings in the view, the output would always include odd/even classes and the default view classes. In the preview on the view it works as expected, but once I check it out with the theme everything goes haywire and there are classes all over the place.
This comes down to the "mothership_preprocess_views_view_unformatted" in "mothership/functions/views.php" -- it seems to be adding these odd/even row classes all the time and doesn't check the options before doing so. We're using v2.8, but I checked 2.10 and the same issue is there.
Seems to me this function could use a bit of TLC -- it looks like it was borrowed from 'views/theme/theme.inc' at some point in time but some things have been missed or removed, I'm not entirely sure.
I rewrote it on our site to the following :
/**
* views list css classes
* options for renaming classes & removing em
* most of this is from contrib/views/theme/theme.inc
*/
function mothership_preprocess_views_view_unformatted(&$vars) {
// Remove .view-row
$mothership_classes_view_row = theme_get_setting('mothership_classes_view_row');
// Remove .view-row-$count
$mothership_classes_view_row_count = theme_get_setting('mothership_classes_view_row_count');
// Rename .view-row-$count, .view-row-first & .view-row-last to : count-$count, .first & .last
$mothership_classes_view_row_rename = theme_get_setting('mothership_classes_view_row_rename');
// Remove .view-row-first & .view-row-last
$mothership_classes_view_row_first_last = theme_get_setting('mothership_classes_view_row_first_last');
// set up variables for first/last/count rows
$row_first = $mothership_classes_view_row_rename ? 'first' : 'views-row-first';
$row_last = $mothership_classes_view_row_rename ? 'last' : 'views-row-last';
$row_count = $mothership_classes_view_row_rename ? 'count-' : 'views-row-';
$view = $vars['view'];
$rows = $vars['rows'];
$style = $view->style_plugin;
$options = $style->options;
$vars['classes_array'] = array();
$vars['classes'] = array();
$default_row_class = isset($options['default_row_class']) ? $options['default_row_class'] : FALSE;
$row_class_special = isset($options['row_class_special']) ? $options['row_class_special'] : FALSE;
$count = 0;
$max = count($rows);
foreach ($rows as $id => $row) {
$count++;
if (!$mothership_classes_view_row && $default_row_class ) {
$vars['classes'][$id][] = 'views-row';
}
if (!$mothership_classes_view_row_count && $default_row_class ) {
$vars['classes'][$id][] = 'views-row-' . $count;
}
if ($row_class_special) {
$vars['classes'][$id][] = $row_count . ($count % 2 ? 'odd' : 'even');
if (!$mothership_classes_view_row_first_last && $count == 1 ) {
$vars['classes'][$id][] = $row_first;
}
if (!$mothership_classes_view_row_first_last && $count == $max ) {
$vars['classes'][$id][] = $row_last;
}
}
if ($row_class = $view->style_plugin->get_row_class($id)) {
$vars['classes'][$id][] = $row_class;
}
// Flatten the classes to a string for each row for the template file.
$vars['classes_array'][$id] = isset($vars['classes'][$id]) ? implode(' ', $vars['classes'][$id]) : '';
}
}