В дистрибутиве views есть дополнительный модуль, который называется theme wizard. Theme wizard предоставляет возможность сгененировать три файла, с помощью которых можно затем добавить на страницу собственное оформление результатов работы модуля views.
Выглядит это так:
0. Включить модуль Theme Wizard (если еще не сделали этого)
1. На странице настроек Views перейти на закладку Theme wizard
2. Выбрать в списке Select a view необходимый вам список
3. Выбрать в списке Select theme type необходимый вам формат
4. Нажать кнопку Select theme type
В результате вы получите три файла.
Первый содержит в себе функцию переопределяющую стандартный вид списка.
Второй вызывается из первого и содержит в себе необходимую раметку.
Третий вызывается из второго и содержит в себе шаблон таблицы стилей для оформления содержимого второго файла.
Звучит ужасающе, но это еще не все.
Содержимое первого файла следует поместить в файл template.php, назначение которого подробно расписано на сайте (http://drupal.ru/node/13271). Второй и третий файлы следует поместить в каталог рядом с phptemplate.php. Именовать их следует так, как сказано на странице генерации.
Ну и далее, путем настройки CSS в третьем файле, вы можете задать вашим спискам желаемый внешний вид.
Все это прекрасно работает ровно в том случае, если вы выводите views в виде списков. Если вам вдруг понадобится таблица - визард вам не поможет. Это обидно - но, к счастью, не смертельно.
Есть одна полезная ссылка (http://drupal.org/node/42597). В ней содержаться образцы кода для вывода views различного вида.
Далее.
1. Я скопировал оттуда функцию отвечающую за вывод в виде таблицы.
* Display the nodes of a view as a table.
*/
function theme_views_view_table($view, $nodes, $type) {
$fields = _views_get_fields();
foreach ($nodes as $node) {
$row = array();
foreach ($view->field as $field) {
if ($fields[$field['id']]['visible'] !== FALSE) {
$cell['data'] = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view);
$cell['class'] = "view-field ". views_css_safe('view-field-'. $field['queryname']);
$row[] = $cell;
}
}
$rows[] = $row;
}
return theme('table', $view->table_header, $rows);
}
2. Вставил все это в phptemplate.php.
3. Добавил туда же (прямо в функцию) строчку drupal_add_css(path_to_theme() .'/my-table-custom-view.css');
4. Принялся споро редактировать CSS, памятуя о том, что имена CSS-классов задаются в вышеприведенной функции.
Продолжение следует...