Dynamically adding a CSS class to a view row with template.php I've actually reached the bottom of Google trying to figure out how to add a css class to each row of a view.  The trick is that I need the class for each row to be dynamically determined based on some of the data from the node that the view pulls from.  The function that pulls this off neatly for the node is - 

function pgc_preprocess(&amp;$variables) {
  $node = $variables['node'];
  if ($node-&gt;type == "event") {
    $variables['event_class'] = '';
    $num_trainers = $node-&gt;field_number_of_trainers[0]['value'];
    $count = count($node-&gt;field_trainer);
    if($count &lt; $num_trainers) {
        $variables['event_class'] = 'red';
    } else {
        $variables['event_class'] = 'green';
    }
    return $variables;
  }
}


The point of this is to color code an event that hasn't had enough folks sign up.  There will be a list of events on the front page, and I need  them to be color coded also.  I really hope there some simple solution along the lines of -

function pgc_preprocess_views_view_unformatted(&amp;$variables) {
  // Magic here, preferably having something to 
  // do with the function I already wrote.
}


Just dropping &lt;?php print $event_class ?&gt; in the view .tpl doesn't do it.
function pgc_preprocess_views_view_unformatted__home_listing(&amp;$vars) {
  // Borrowed this bit from http://drupal.org/node/312220
  $view = $vars['view'];
  $rows = $vars['rows'];

  foreach ($rows as $id =&gt; $row) {
    $data = $view-&gt;result[$id];
    $event_class = get_the_classes($data-&gt;nid);
    $vars['classes'][$id] .= ' ' . $event_class;
  }
}

function get_the_classes($nid) {
  $node = node_load($nid);
  global $user;
  if ($user-&gt;uid != 0) { // Not for anon users.
    $event_class = '';
    if ($node-&gt;field_trainer[0]['uid'] == NULL) {
        $event_class= 'red';
    } else {
        $num_trainers = $node-&gt;field_number_of_trainers[0]['value'];
        $count = count($node-&gt;field_trainer);
        if($count &lt; $num_trainers) {
            $event_class = 'red';
        } else {
            $event_class = 'green';
        }
    }
    return $event_class;
  }
}


Don't know if it's pretty.  Don't know how it performs.  But it works.

EDIT (02-01-2012): after working with Drupal for another year now, I'd have tried to find some other way to do this besides running node_load() on every row of the view.