Index: views_bonus_style.info =================================================================== RCS file: views_bonus_style.info diff -N views_bonus_style.info --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ views_bonus_style.info 14 Apr 2008 20:10:42 -0000 @@ -0,0 +1,6 @@ +; $Id:$ + +name = Bonus: views style plugins +description = "Provides some simple views style plugins" +dependencies = views +package = Views Index: views_bonus_style.module =================================================================== RCS file: views_bonus_style.module diff -N views_bonus_style.module --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ views_bonus_style.module 14 Apr 2008 20:10:42 -0000 @@ -0,0 +1,51 @@ + array( + 'name' => t('Teaser (first) + List View (rest)'), + 'theme' => 'views_view_top_teaser_and_more_list', + 'summary_theme' => 'views_view_top_teaser_and_more_list', + 'needs_fields' => TRUE, + ), + 'node-teaser' => array( + 'name' => t('Full Node (first) + Teasers (rest)'), + 'theme' => 'views_view_top_node_and_teasers', + 'summary_theme' => 'views_view_top_node_and_teasers', + 'needs_fields' => FALSE, + ), + ); + return $plugins; +} + +/** + * Theme the top node as a teaser, and the remaining nodes as a list + */ +function theme_views_view_top_teaser_and_more_list($view, $nodes, $type) { + // Theme the top node as a teaser + $top = array_shift($nodes); + $output .= theme('views_view_teasers', $view, array($top), $type); + // Theme the rest as a list + $output .= theme('views_view_list', $view, $nodes, $type); + return $output; +} + +/** + * Theme the top node as a full node, and the remaining nodes as teasers + */ +function theme_views_view_top_node_and_teasers($view, $nodes, $type) { + // Theme the top node as a full node + $top = array_shift($nodes); + $output .= theme('views_view_nodes', $view, array($top), $type); + // Theme the rest as teasers + $output .= theme('views_view_teasers', $view, $nodes, $type); + return $output; +}