Представления 3 и HTML5 - как переопределить вывод для разметки?

7

У меня есть созданное мной представление, которое выбирает посты в блоге на основе определенного термина таксономии, создавая своего рода вид «Избранные посты», который я встроил на первой странице своего сайта. Проблема, с которой я продолжаю сталкиваться - это попытка вывести представление так, чтобы каждая запись была семантически размечена с использованием некоторого нового HTML. Я пробовал встроенный «Перезаписать вывод этого поля», но он игнорирует теги, которые я использую (например, article, header, footer) и оборачивает все в div, даже когда я отменяю выбор тегов-заполнителей.

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

Я должен заявить, что у меня есть базовый опыт написания PHP и хуков препроцесса, но я могу использовать любые ресурсы, которые понадобятся мне, чтобы переместить меня вниз, если меня направят в правильном направлении.

PendragonDev
источник

Ответы:

10

Вы заметите, что в вашем представлении в блоке «Настройки стиля» есть ссылка на тему: Информация. Он выставит все файлы тем, которые вызываются для вашего просмотра. Вы можете использовать общие и очень подробные файлы темы, которые будут использоваться только для отображения ваших представлений.

Первым именем файла в отображаемом выводе является views-view.tpl.php. Это будет применяться ко всем представлениям и дисплеям. Следующим в списке является views-view - [view name] .tpl.php. Это относится только к вашему мнению. Он продолжает бурение, пока не станет настолько конкретным, насколько это возможно. views-view - [view name] - default.tpl.php является последним в списке и применяется только к отображению вида по умолчанию. Нажав на ссылку Показать вывод: вы увидите код шаблона, который использует просмотр. Просто скопируйте и создайте новый файл шаблона с одним из предложенных в списке. Обычно лучше быть настолько конкретным, насколько это возможно. Файл шаблона может находиться в любом месте вашей темы, и представления будут выбирать его, пока вы повторно сканируете файлы шаблона в информации о темах и сохраняете представление. Существуют шаблоны представлений, шаблоны строк, шаблоны полей и шаблоны, специфичные для полей.

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

Jepedo
источник
Фантастический! Спасибо что подметил это; это определенно позволит больше контроля дизайна.
PendragonDev
Немного расширив это, рассмотрим модуль HTML5 Tools, как упомянуто в этом руководстве по Drupal HTML5 ; он предоставляет больше элементов HTML5 в представлениях.
Кристофер Купер
2

Fences выглядит как отличный модуль (для Drupal 7) для управления разметкой вывода представлений:

Страница проекта:

http://drupal.org/project/fences

Со страницы проекта:

«Заборы - это простой в использовании инструмент для определения элемента HTML для каждого поля. Этот выбор элемента будет распространяться везде, где используется поле, например, тизеры, RSS-каналы и представления. Вам не нужно постоянно переконфигурировать один и тот же элемент HTML снова и снова каждый раз, когда вы отображаете поле ".

Мне особенно нравится этот бит (отлично подходит для отладки вывода):

«Лучше всего, Fences обеспечивает более разметку, чем ядро ​​Drupal 7 ! И может избавиться и от посторонних классов

Это тоже хорошо - сокращение повторения работы:

«Этот вид инструмента необходим для создания семантического вывода HTML5 из ​​Drupal. Без такого инструмента вы должны создавать шаблоны пользовательских полей в своей теме для каждого поля. :(»

Они также рассмотрели популярные альтернативы:

Подобные проекты включают в себя семантические поля , обертки полей и инструмент внутри дополнительных возможностей Display Suite . Но мы думаем, что этот подход - Morefasterbetter ™.

Благодарим пользователя Drupal за то, что он упомянул модуль Fences Drupal в своем комментарии к этому вопросу. Является ли модуль Semantic Views устаревшим в Views 3?

therobyouknow
источник