Оформление Views и CCK с картинками

Главные вкладки

Аватар пользователя Equ Equ 18 июля 2008 в 15:57

Необходимо создать на главной странице блок, который бы выводил ноды в виде статьи: картинка статьи (слева) + анонс (справа). Пытаюсь сделать это с помощью Views и CCK. Создал новый тип материала, добавил необходимые поля, добавил поле для вложения картинки (FileField Image). Могу выводить это списком, таблицей и т.д... Но хочется видеть это в более привычном виде, да и место на странице сэкономить. Какие дальнейшие действия?

Комментарии

Аватар пользователя dd dd 18 июля 2008 в 16:13

нужно вручную определить поэлементно вывод переменных в node-*.tpl.php Можно поставить модуль content template, который позволяет докопаться до составных массива node, и показывает какому элементу массива какое значение соответствует. Потом, использовать нужные элементы в node-*.tpl.php или прямо во вкладке contemplate в разделе «типы материалов» администрирования сайта определить вывод, модуль добавляет свою вкладку туда и позволяет прямо там перезаписать дефолтовкий вывод массива node.

Аватар пользователя Equ Equ 18 июля 2008 в 19:18

С помощью Contemplate я могу изменить вид самой ноды, а мне нужно изменить вид выдачи этих нод. Вот пример того, как это сделано на cnews.ru .

Аватар пользователя dd dd 18 июля 2008 в 20:50

возможно ,я тебя не правильно понял. Посмотрел cnews, ты хочешь, чтобы одна новость с картинкой высвечивалась польностью, а справа были анонсы остальных новостей?

Аватар пользователя Equ Equ 18 июля 2008 в 22:08

Ты меня правильно понял, это я в contemplate про тизеры забыл. Другой вопрос, нельзя ли это через views и блоки оформить? Дело в том, что на главной странице тизеры статей нужно оформлять так (с картинками), на других каких-то страницах те же статьи нужно отображать обычными тизерами...

Т.е. вопрос остается открытым, как, все-таки, изменить внеший вид Views?

Аватар пользователя dd dd 18 июля 2008 в 22:48

думаю, view оперирует целым тизером, и не может разобрать его по кирпичикам, как контеплейт. Т.е. ты можешь настроить в контемплейт тизер, но создав два разных view (для главной и остальных страниц) ты не сможешь в одном view (на главной стр.) выводить тизер с картинкой, а в другом (на остальных) обычный тизер. Скорее, тебе нужно в контемплейт или в node-*tpl.php пхп-кодом определять адрес текущей страницы и в зависимости от него, решать - выдавать определенные «кирпичики» тизера или нет. т.е. логика такая:

1. если (адрес_страницы = главная) {показать картинку};
2. показать текст;

Аватар пользователя dd dd 18 июля 2008 в 22:51

а с помощью views сможешь определить как несколько тизеров располагаются по отношению друг к другу (таблица, список), есть еще views bonus grid модуль, там например можно показывать новости в несколько колонок и т.п. Но сам тизер, повторюсь, там не отредактируешь.

Аватар пользователя dd dd 18 июля 2008 в 22:53

блин, ну да, я прогнал, можно еще views через css придать вид, но все равно, по-моему, это не так гибко.

Аватар пользователя Equ Equ 18 июля 2008 в 22:56

А список, который я получу через views, можно редактировать через стили или есть какие-то другие опции?

По поводу Views bonus pack, его, к сожалению, пока нет для шестого друпала, так что нет возможности даже ознакомиться с ним...

Аватар пользователя dd dd 18 июля 2008 в 23:12

другие опции не знаю. Тут дело в том, что через стили ты редактируешь то, что у тебя уже по факту выдало view, т.е. если в неглавностраничном view тебе надо убрать картинку из тизера, то надо в css прятать то, что view уже выводит. Поэтому на мой взгляд лучше через node-*.tpl.php или contemplate это делать, т.к. пхп будет отсеивать ненужные элементы тизера для тех страниц, где они не должны появляться, а со вьюсами тебе нужно будет прятать то, что уже выдалось.
Ну и не забывай, что и в случае использования ноде-*.тпл.пхп или контемплейта, всё можно также потом css-ом отполировать.