views:

24

answers:

1

I just started learning Drupal and I'm having a heck of a time displaying multiple content types on one page, but grouping them by content type.

To be specific, I want to display "Current Programs", "Old Programs" (which are the same content type, Program, but have a Boolean "current" field thanks to the CCK plugin), and "Tools" (content type Tool) all on the front page. Each heading has it's own HTML list.

So I created a Node view called "Overview", and I made a filter to only select content with type Program or Tool. The problem is, it plops it all in one list. I tried customizing the template that loops over $rows and outputs the list, but I see no way of accessing the content type / other properties for each row.

This was my idea to separate the links into different arrays, in views-view-list--Overview.tpl.php. It doesn't fully capture what I want to do but it doesn't even work:

$programs = array();
$tools = array()
foreach ($rows as $id => $row):
if ($row['Type'] == 'Program') {
    $programs[] = $row;
} else {
    $tools[] = $row;
}
endforeach;
print_r($tools); // outputs programs and tools

I'm sure this is a basic Drupal setup, and I'm misunderstanding something fundamental with Views. Can anyone point me in the right direction?

+1  A: 

If you use "Views" module:
Create Views "Current Programs", set path, for example, to "home". In "Site information" (admin section) set this path as front page. Create "Old programs" and "Tools" views as Block display type, then set these blocks visibility at required places, then set visibility to page.

If these sections has complex view, use Panels to place them in appropriate places, if you don't want theming.

Nikit

related questions