Display Suite или сам себе друзайнер

Display Suite

Если активно заниматься сайтом, то очень скоро рамки выбранной темы (не важно - сделанная под заказ или скачанная бесплатно) начинают ограничивать ваши желания. Приходится "лезть в шаблоны" - редактируя их, это тоже способ. Однако, во-первых, не каждый настолько хорошо знает Друпал (и/или PHP), во-вторых, часто объём изменений накапливается так сильно, что после понимаешь, что получается "хрупкая конструкция", которая не приемлет вашего желания "сменить тему", ведь все изменения .tpl-файлов "темозависимы". Drupal Suite исправляет это, позволяя каждому стать друпал-дизайнером.

Drupal Suite

Модуль Drupal Suite  позволяет вам изменять дизайн Друпал-сайта в рамках выбранного дизайна (темы). Что это значит? Это значит, что сам по себе "общий дизайн" не меняется (или к нему можно применять привычное редактирование tpl-шаблонов), а нужный контент можно располагать по своему желанию, не ограничиваясь дефолтными регионами темы и при этом централизованно (что даёт последующую переносимость на другие темы - чего нет при "обычном редактировании).

Drupal Suite (ds) - версии 7.x-1.x и 7.x-2.x

На данный момент есть две несовместимые между собой версии, т.е. сделанное в ds 7.1 не получится после "проапгрейдить" до ds 7.2. Первая считается релизом, а вторая пока лишь в бете. Исходя из вашего опыта выбирайте одну из, не предполагая последующий апгрейд. Я пробовал обе, вторая, действительно, имеет некоторый "глючки", потому, если функционал 7.1 вас полностью устраивает и проект не предполагает последующего видоизменения - лучше выбрать ds 7.1. Если же это ваш блог (который наверняка вы будете менять и не раз) - ставьте последнюю версию (ds 7.2). Для неискушённого друпал-пользователя особой разницы между ними видно не будет, однако 7.2 "более наглядная", например, в ней действительно удобно отображается применяемый дизайн:

Drupal Suite

Установка Drupal Suite

Как и для многих других модулей, для установки ds потребуется CTools. Чтобы использовать все возможности - сразу включайте Display Suite Extras и Display Suite Forms:
Display Suite

Включено Имя Версия Описание Действия
7.x-2.0-beta2 Extend the display options for every entity type.
Requires: Chaos tools (включён)
Required by: Display Suite Extras (включён), Display Suite Forms (включён), Display Suite Search (отключён)
Помощь Разрешения Настроить
7.x-2.0-beta2 Contains additional features for Display Suite.
Requires: Display Suite (включён), Chaos tools (включён)
Помощь Разрешения Настроить
7.x-2.0-beta2 Manage the layout of forms in Display Suite.
Requires: Display Suite (включён), Chaos tools (включён)

Настройка Drupal Suite

Выбираем тип материала, который будем "друзайнить". Т.е. "Структура - Тип материала - Материал - Управлять отображением", снизу к владке "Расширенные параметры вывода" добавились (после установки ds) ещё несколько. Чтобы "активировать" ds для этого типа материала в закладке "Layout for drupal in default" выбираем нужный способ отображения (кол-во колонок, тип их состыковки, расположения и пр. - в т.ч. видно визуально). После сохранения "рулить" отображением будет именно Display Studio.

Пример использования Drupal Suite

Фич в ds так много, что, во-первых, я устану писать, а во-вторых, я все до конца и не знаю (все ещё не  перепробовал, а появляются и новые). Потому опишу это на конкретном применении в рамках данного сайта.
Итак, выбранная мною тема для сайта не слишком богата на регионы (где можно настроить вывод блоков). А я, к примеру, хочу добавить кнопки соцсетей в строчку после даты-автора, близко к материалу вставить блок "похожих статей", вывести блок оценки статьи сразу после её окончания (до комментариев), а также добавить комменты от ВКонтакте и Facebook, которые бы шли непосредственно до основных и в две колонки. Без претензий на реальную удобность/"красоту" подобного - сначала хотелось бы попробовать и увидеть как минимум. Будем делать.

Собственные поля
Настройка кнопочек, комментов (FB/VK) - это ведь код, который нужно выводить в поле (то, что нужно также править и шаблоны для вставки в заголовок "первой части кода" - не в счёт, это само собой, здесь описывать не буду). Так вот, в стандартных типах полей вы не обнаружите "Code field". А в ds - пожалуйста!

Display Suite - Поля

Code field

Как и следует из названия - в поле нужно вставлять код, который после отработает в поле. То, что доктор прописал! Для вывода наших кнопочек и многого другого, код чего мы можем найти на страницах интернета.


Block field

Был такой модуль под Drupal 6 - Block2field - позволял отображать выбранный блок в качестве поля. Этот же функционал имеем и здесь. Соответственно, выбранный блок, например, Similar Terms - выведём с помощью Block Field в нужном месте (сразу после текста, до комментариев).


Preprocess Field

Более "сложное" (для понимания) поле, хотя более простое в применении (т.к. не имеет настроек - лишь правильно выбрать его имя. У меня выводимые дата и автор имеют разный цвет-формат. Для этого я использую собственную переменную mysubmitted, которую добавлял предварительно в template.php:

function noindexby_preprocess_node(&$variables) {
$variables['mysubmitted'] =     '<span class="date">'.date('j M', $variables['created']).'</span>'.
                                ' <span class="year">'.date('Y', $variables['created']).'</span>';
}

Так вот, с помощью поля Preprocess Field как раз и можно вывести эту переменную, создав поле с её именем:

Label Type Machine name Entities Operations
fb-comments Block field fb_comments Node Изменить - Удалить
like-buttons Code field like_buttons Node Изменить - Удалить
mysubmitted Preprocess field mysubmitted Comment, Node Изменить - Удалить
similar-terms Block field similar_terms Node Изменить - Удалить

Аналогично можно вывести любую другую переменную Друпала (например, "встроенную").

Dynamic Field

Поле Dynamic Field весьма продвинутое (потому подробней разберём как-нибудь отдельно). Вкратце можно сказать, что его контекст может быть совершенно любым - от содержания ноды до результатов каких-то событий, чисел и пр.

В результате сделанных настроек Display Suite получим то, что и хотели:

 

Комментарии

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

Добавить комментарий