Использование панелей для компоновки по сравнению с пользовательскими файлами.tpl
Я работаю над некоторыми макетами, которые не совсем сложны, но определенно выходят за рамки основных возможностей Drupal.
Действительно кажется, что в Drupal есть 20 способов сделать что-то одно.
Следует ли вам редактировать файлы .tpl с разными регионами для определенных типов контента и узлов, или мне просто сшить все вместе с панелями ?
У меня есть опасение, что панели сделают все более сложным и начнут загромождать ситуацию с точки зрения производительности.
3 answers
Модуль панелей
" Менеджер страниц обучения" - это интересный/удивительный набор видеороликов. Они содержат различные темы, связанные с модулем Панелей. После того, как вы просмотрели эти видео, вы поймете, что будет трудно приблизиться ко всем функциям, которые поставляются с модулем Панели.
Вот краткое изложение всего набора видеороликов по этой теме (цитата по ссылке выше):
- Менеджер страниц позволяет собирать и управляйте контекстуальной информацией гибким и последовательным способом. Это важная часть построения инфраструктуры на веб-сайтах Drupal, и вы должны знать, как использовать этот модуль.
- Серия скринкастов предназначена для опытных разработчиков Drupal.
- В эпизодах 1, 2 и 3 представлены самые основные понятия, такие как пользовательские страницы, варианты, правила выбора и (в некоторой степени) контекстуальные объекты.
- Эпизоды 4, 5, 6 и 7 рассказывают о панелях с акцентом на мнения интеграция, но также несколько слов об эффективном кэшировании.
- Эпизоды 8 и 9 о контроле доступа, пунктах меню и, не в последнюю очередь, малоизвестном, но очень полезном модуле контекстного администрирования.
- В эпизодах 10 и 11 больше говорится об использовании контекстных объектов в диспетчере страниц, в том числе об использовании представлений в качестве контекста. Это, имхо, где реальная сила в менеджере страниц.
- В эпизодах 12 и 13 собраны различные фрагменты и фрагменты, например, как использовать панели, чтобы легко переставлять форма редактирования узла, настройки импорта/экспорта и некоторые дополнительные модули, которые можно использовать с менеджером страниц.
Обратитесь к Поясняющим панелям: Обзор для разработчиков Drupal для еще одного отличного объяснения панелей.
Еще несколько слов о менеджере страниц:
-
В Drupal 8Менеджер страниц стал отдельным модулем, в то время как ранее (до Drupal 7) он был частью модуля CTools. Вот еще несколько цитат из (Связанный с D8) страница проекта:
Он поддерживает создание новых страниц и позволяет размещать блоки внутри этой страницы.
Как и менеджер страниц Drupal 7, он предоставляет концепцию "вариантов страниц", каждый из которых имеет свои собственные условия выбора.
Кроме того, его можно использовать для замены существующей страницы, например, переопределения /узла/%, чтобы изменить то, что отображается при просмотре узла.
Он использует ядро
Conditions
,Context
, иBlocks
API для выполнения это. В Drupal 7 Менеджер страниц был основой модуля Панелей.
Модуль компонента
Когда говорят о макете в Drupal, часто также упоминаются "Блоки". Если вы также используете (отличный) модуль Bean, он откроет множество новых возможностей. Вот цитата об этом (со страницы проекта):
Подумайте о компоненте как о методе предоставления новых типов (по сравнению с узлом это будет тип контента), который затем предоставляет интерфейс добавления контента для создания необходимого количества блоков (см. Скриншот ниже). Затем содержимое компонента может быть размещено по всему сайту, как и любой другой блок.
Видеоурок Учебник по модулю Drupal Bean - использование пользовательского интерфейса администратора Bean предоставляет отличное введение, чтобы действительно понять возможности этого модуля и то, что вы можете с ним делать (используя только методы создания сайтов, без использования пользовательского кода). Это также показывает, как боб модуль преобразует блоки Drupal в объекты, доступные для заполнения.
См. Мои ответы на вопрос о " Как контролировать изменения блоков перед публикацией? "для получения более подробной информации о модуле Bean (что вы также можете сделать и т. Д.).
PS: Модуль Bean запущен только с D7 (из-за "сущностей", конечно, которые были представлены только в D7), и уже зарегистрировано более 22 тыс. установок. И он был интегрирован (уже) в ядро в D8 (см. Это выпуск для получения дополнительной информации). Тем, кто еще не использует его, определенно следует начать изучать его в рамках подготовки к обновлению до D8 в один прекрасный день.
Раньше я использовал панели для всего, но с тех пор вернулся к файлам tpl - даже для полей - просто для того, чтобы изменения внешнего вида и макета сайта можно было отслеживать в коде и версировать с помощью git. Я даже перестал использовать регионы и блокирую все вместе. Любые представления или блоки (из модулей, которые предоставляют определенные материалы, такие как модуль полноты профиля), которые мне нужны, вызываются в коде, а проверки доступа выполняются либо в коде, либо через конфигурацию представления.
Ключ - это колодец организованная структура папок в вашей папке /templates
.
Однако, если у вас есть не разработчики, которым необходимо внести изменения в макет, я бы использовал панели.
Я, конечно, долгое время сопротивлялся модулю панелей . Но потом я проглотил пулю и выпил кулайд, и теперь я определенно никогда не вернусь.
Вместо каталога templates/
, набитого до отказа переопределениями, у меня обычно есть только один файл (чтобы удалить двоеточие или что-то глупое). У меня есть каталог panels/layouts
с одним или двумя макетами, которые немного напуганы, с парой дополнительных классов, чтобы помочь тематизации. И у меня есть куча возможностей.
Я думаю, что макет - это один из небольших задач, для которых я теперь полагаюсь на панели. Более мощными являются:
- селекторы компоновки для каждой роли,
- видимость для каждой панели,
- селекторы CSS для каждой панели (что значительно расширяет мой CSS на основе компонентов)
- супер-супер плотная Интеграция представлений .
Время от времени на дороге возникает излом. Но по большому счету это намного (намного) более чистый опыт.