Помогите новичку разобраться с Views и CCK (темизация блоков Views и фильтры по полям CCK)

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

Аватар пользователя shread777 shread777 28 мая 2011 в 11:54

На главную страницу хочу вывести несколько блоков в регион "Содержимое". Сверху блок с фильтрами по полям CCK (примерно представляю как его сделать), ниже просто текст о компании(создаю ноду и с помощью views по nid пихнул в отдельный блок), а далее блок со спец предложениями (Views + фильтры). Тема стоит своя, сделанная с помощью Артистира и немного ручками. Блоки эти будут выводится только на главную(это в свойствах блоков вроде указывается). Проблема в том, что при выводе блока текста например, он почему то выводится в стиле боковых колонок (цвет фона, стиль и цвет текста), а мне надо чтобы все это выводилось в стиле блока "Содержимое" (белый фон, черный текст). Где можно подправить стили блоков?
И ещё один маленький вопросик. Я создал новый тип материала с полями CCK. Когда создаю материал он выводится как стандартная нода, а мне нужно изменить этот вид. Надо создать node-имятипаматериала.tpl.php и отредактировать его добавив переменные (машинные имена) полей? Я на правильном пути?

Спасибо большое всем кто прочитал столько букв)

Комментарии

Аватар пользователя k-s k-s 28 мая 2011 в 18:50

Используй модуль Panels. Он делает страницы, размеченные на регионы, в которые можно вставлять ноды, вьюсы и все прочее - это очень удобно и гибко. Можно выбирать разные разметки типа вот такого

И там drag-and-drop интерфейс, очень легко все менять, передвигать и тд.

Модуль может показаться сложным, из-за обилия настроек, но он очень простой, если там делать простые вещи.

Что касается стилей - у каждого элемента, такого как блок или нода, в html-коде прописаны классы. Для этих классов в css файлах прописаны стили. Так что куда не таскай блок, он будет показываться как блок.

Чтобы это исправить, найди в css файлах темы то место, где прописаны стили для блоков (там это видно по названиям классов, что-то типа .block бла бла). Перед каждым стилем припиши название класса боковой колонки (или того места, где у тебя блоки выводятся), это ты можешь посмотреть в html-коде страницы, это будет что-то типа class="sidebar" или типо того. Если припишешь стилям этот клас (.sidebar .block {...}), то эти стили будут действовать только внутри сайдбара, а когда блок будет в области контента, эти стили применяться не будут.

У каждого типа материала тоже есть свой класс, он приписывается в теге body, если твой тип материала называется MyContentType, то при показе такой ноды, у тега боди будет класс class="node-type-mycontenttype". Тебе просто нужно прописать дополнительные стили для этого класса. Скажем если ты на этом типе материала хочешь красные заголовки, нужно написать .node-type-mycontenttype h1 {color: red}

Аватар пользователя shread777 shread777 29 мая 2011 в 15:13

k-s wrote:

У каждого типа материала тоже есть свой класс, он приписывается в теге body, если твой тип материала называется MyContentType, то при показе такой ноды, у тега боди будет класс class="node-type-mycontenttype". Тебе просто нужно прописать дополнительные стили для этого класса. Скажем если ты на этом типе материала хочешь красные заголовки, нужно написать .node-type-mycontenttype h1 {color: red}

Наверное я не совсем правильно сформулировал вопрос.. у меня тип материала (товар допустим).. выводится по адресу node/xx в виде простого текста, список полей и значений

Название -> товар 1
Вес -> 200 г и тд

а мне нужно все это сделать красиво, то есть справа допустим фотография товара, слева таблица с параметрами, под этим всем описание ну и тд... как можно это организовать?

Аватар пользователя shread777 shread777 29 мая 2011 в 14:27

спасибо большое за подробное объяснение) а не слишком ли использовать модуль Panels для создания одной лишь главной страницы? он не слишком загрузит сайт? можно же обойтись без него, вставив на главную просто 3 блока.. или я не прав?