Попробую таки попросить помощи..
С Друпалом работаю буквально пару дней и возник вопрос, как быть в такой ситуации. Создаю ноду, с помощью 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 на сайте друпала и в сети.
Буду благодарен, если подскажете, в какую в сторону мне идти, чтобы в итоге решить этот вопрос максимально грамотно, с точки зрения друпала.
Комментарии
Contemplate/Devel для просмотра переменных + node-type.tpl.php для вывода (а можно всё сделать и через Contemplate) ...
Модуль Views предназначен для создания отфильтрованных по определенным параметрам списков документов, а не для изменения внешнего вида шаблона. Воспользуйтесь советом Razunter'a.
Ну менять формат вывода можно и для views и для cck, тут об это уже говорили
Спасибо, Contemplate и node-type.tpl.php дал как раз то, что нужно. Только, точно ли все можно сделать через него? Убрать [h2] заголовок я пока не смог.
Еще одна проблема -- управлять выводом изображений в ноде, я так понимаю, можно только через cck imagefield, который в 6.x представлен development версией с некоторыми глюками. Управлять аттачами возможности нет, получается?
Да, совет помог, по сути имеется возможность полностью изменить внешний вид ноды. Но если нужно отфильтровать каким-то образом этот список, то, получается, нужно только темизировать Views ? Или я могу фильтровать ноды через php, не обращаясь к Views, по сути?
Тут, это на этом форуме?
Насчет того, что в CCK добавить изображение можно только через imagefield был не прав, нашел IMCE Image. Хотя IMCE слишком навороченный для просто добавления картинки.. но идеала все равно нет, думаю
Подскажите, пожалуйста.
Все-таки вопрос с фильтрацией вывода нод не получилось решить. Полазив по форуму, все время натыкаюсь на ответы -- для фильтрации использовать Viewx. Да, он позволяет сделать все, что нужно -- фильтрацию, paging, использование аргументов, но не позволяет свободно управлять выводом, все-равно какая-та привязка к определенным шаблонам.
В то же время, вывод напрямую нод позволяет делать с ними все, что угодно, в плане шаблонов, но не в плане фильтрации. Скорее всего с последним просто не разобрался.
Да, немного не понятно, зачем использовать Contemplate, если все можно делать через node-type.tpl.php с помощью переменных $teaser и $body.
Спасибо
Учитывая, что ответов нет, я так понимаю, что использовать шаблоны в Views нельзя? Странно, конечно, что нет такой основной вещи..
Все значения что выдает views можно выводить как угодно (в зависимости от типа представления и названия вида) если это имеется ввиду под шаблонами
А вы не смешивайте. Просто выдайте результат работы в массив. Массив пойдет в ноду, а вот в шаблоне ноды выводите этот массив как вам угодно. Еще примитивнее, конечно, зато хтмл только там, где он нужен - в шаблоне.