Как вывести ноду согласно определенного html-шаблона?

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

Аватар пользователя vander vander 5 августа 2008 в 21:19

Попробую таки попросить помощи..

С Друпалом работаю буквально пару дней и возник вопрос, как быть в такой ситуации. Создаю ноду, с помощью CCK добавляю необходимые мне поля (к примеру title, fio, address, photo, phone, status). Теперь мне необходимо вывести всю эту информацию, использую мой шаблон. Для этих целей я упорно пытался приспособить Views2. То есть, я хочу, чтобы выводилось в таком виде (к примеру):

<-- item -->
[h3]$status[/h3]
[table]
[tr][td]$title[/td][/tr]
[tr][td][div class="photo-border"][img src="$photo_src" class="photo" alt="$fio" title="$fio"][/div][/td][/tr]
[tr]
[td][span class="fio"]$fio[/span][/td]
[td][h5]$phone[br]$address[/h5][/td]
[/tr]
[/table]
<-- /item -->
(хтмл-тэги заменены)

И так далее. Это просто придуманный на ходу пример, но смысл в том, чтобы выводить ноду согласно моего шаблона. Ни один из способов Views не позволяет это, так как все шаблоны построчно (или по столбцам) выводят предлагаемую им информацию.

Самый примитивный вариант, что я смог придумать, это создание новой функции.
function phptemplate_views_view_table__viewname {}
Табличный вывод позволяет как мне нужно оперировать с каждый полем. Но здесь смешивается PHP-код и HTML, да и получается как-то очень примитивно.

Сейчас пытаюсь разобрать theme(), предполагаю, что если можно создать новую функцию и шаблон к ней, то получится вывести все что мне нужно, грамотно разделив код и верстку. Но какой-то слишком сложный способ, да и не получается ничего, работать приходится анализируя код ядра и кое-какие описания функции theme и views на сайте друпала и в сети.

Буду благодарен, если подскажете, в какую в сторону мне идти, чтобы в итоге решить этот вопрос максимально грамотно, с точки зрения друпала.

Комментарии

Аватар пользователя Ромка Ромка 5 августа 2008 в 23:48

Модуль Views предназначен для создания отфильтрованных по определенным параметрам списков документов, а не для изменения внешнего вида шаблона. Воспользуйтесь советом Razunter'a.

Аватар пользователя vander vander 6 августа 2008 в 20:48
> Contemplate/Devel для просмотра переменных + node-type.tpl.php для вывода (а можно всё сделать и через Contemplate) ...

Спасибо, Contemplate и node-type.tpl.php дал как раз то, что нужно. Только, точно ли все можно сделать через него? Убрать [h2] заголовок я пока не смог.

Еще одна проблема -- управлять выводом изображений в ноде, я так понимаю, можно только через cck imagefield, который в 6.x представлен development версией с некоторыми глюками. Управлять аттачами возможности нет, получается?

>Модуль Views предназначен для создания отфильтрованных по определенным параметрам списков документов, а не для изменения внешнего вида шаблона.

Да, совет помог, по сути имеется возможность полностью изменить внешний вид ноды. Но если нужно отфильтровать каким-то образом этот список, то, получается, нужно только темизировать Views ? Или я могу фильтровать ноды через php, не обращаясь к Views, по сути?

> Ну менять формат вывода можно и для views и для cck, тут об это уже говорили

Тут, это на этом форуме?

Аватар пользователя vander vander 6 августа 2008 в 21:17

Насчет того, что в CCK добавить изображение можно только через imagefield был не прав, нашел IMCE Image. Хотя IMCE слишком навороченный для просто добавления картинки.. но идеала все равно нет, думаю Smile

Аватар пользователя vander vander 8 августа 2008 в 16:12

Подскажите, пожалуйста.
Все-таки вопрос с фильтрацией вывода нод не получилось решить. Полазив по форуму, все время натыкаюсь на ответы -- для фильтрации использовать Viewx. Да, он позволяет сделать все, что нужно -- фильтрацию, paging, использование аргументов, но не позволяет свободно управлять выводом, все-равно какая-та привязка к определенным шаблонам.
В то же время, вывод напрямую нод позволяет делать с ними все, что угодно, в плане шаблонов, но не в плане фильтрации. Скорее всего с последним просто не разобрался.

Да, немного не понятно, зачем использовать Contemplate, если все можно делать через node-type.tpl.php с помощью переменных $teaser и $body.

Спасибо

Аватар пользователя vander vander 14 августа 2008 в 20:18

Учитывая, что ответов нет, я так понимаю, что использовать шаблоны в Views нельзя? Странно, конечно, что нет такой основной вещи..

Аватар пользователя dfaker dfaker 14 августа 2008 в 21:38

Все значения что выдает views можно выводить как угодно (в зависимости от типа представления и названия вида) если это имеется ввиду под шаблонами

Аватар пользователя marazmus marazmus 15 августа 2008 в 9:31

Quote:
Табличный вывод позволяет как мне нужно оперировать с каждый полем. Но здесь смешивается PHP-код и HTML, да и получается как-то очень примитивно.

А вы не смешивайте. Просто выдайте результат работы в массив. Массив пойдет в ноду, а вот в шаблоне ноды выводите этот массив как вам угодно. Еще примитивнее, конечно, зато хтмл только там, где он нужен - в шаблоне.