УрокЗнакомство с Display Suite

В этой статье я хотел бы рассказать о весьма полезном модуле, недооценить который просто не возможно. Этот модуль экономит кучу времени и сил при создании тем. Главная мощь модуля заключается в том, что он позволяет настраивать раскладку сущностям. Например, если раньше для темизации конкретного типа материала, приходилось в теме делать для этого типа материалов шаблон, то теперь это можно сделать буквально в пару кликов. Но обо всем по порядку.

И так для начала нам нужно скачать сам модуль Display Suite, а так же модуль Ctools, без которого Display Suite не работает. Включаем модуль.

После включения модуля на странице /admin/structure должен появиться пункт меню, связанный с Display Suite. Переходим по данному пути и жмем по ссылке Display suite. Здесь нам откроются ссылки, которые позволяют работать с данным модулем. Первое что нужно сделать, это создать свой Layout. Переходим по ссылке Layout. Нам откроется окно с сущностями Comment, Node, Taxonomy term. Я буду рассказывать на примере Node, но сразу могу сказать, что принцип работы одинаковый.

В примере на сайте доступно только 2 типа материала: Article и Basic page. Напротив каждого типа материала у нас есть ссылка Manage display.

Жмём на эту ссылку напротив того типа материалов, для которого хотим сделать раскладку. Откроется окно с настройкой отображения полей, которое многие из вас уже видели. Здесь мы можем включить стандартные отображения, такие как Teaser, Full content, RSS. Я буду использовать в качестве примера Full content.

Включаем отображение и на этой же странице переходим в настройку включенного отображения.

После перехода к настройке отображения, необходимо выбрать раскладку. Первоначально их доступно около 10, если из предложных вам не подходит ниодна из раскладок, то можно написать свою, занимает это около 10 минут (как создавать раскладки, я расскажу в другой раз). Итак, выбираем нужную раскладку, и сохраняем. После сохранения нам станут доступны в ноде регионы (их количество зависит от того, какую раскладку вы выбрали), а так же все доступные поля (модуль также позволяет создавать дополнительные поля).

Прежде чем раскидывать поля по регионам, я в первую очередь добавляю к регионам свои классы (для удобства темизации). Для этого жмем по закладке Extra classes for regions и там кликаем по ссылке Manage region styles. В открывшемся окне, пишем любые названия классов (каждый класс начинается с новой строки).

Теперь при переходе в закладку Extra classes for regions, там будут доступны наши классы, выбираем для регионов классы и сохраняемся.

Теперь нам нужно раскинуть наши поля по регионам, если кто то уже заметил, напротив некоторых полей есть шестеренка - это настройка полей. Можно выбрать как будет отображаться содержимое поля (например, в качестве ссылки или текста) и в какой тэг обернуто.

Вот что получилось у меня, осталось только темизировать и дело сделано.

Кстати говоря, есть один нюанс. Если по какой-то причине в каком-либо из регионов у вас нет полей, то для того, что бы он не выводился и не занимал место, в настройках нужно поставить галочку Hide empty regions, ниже есть ещё галочка Disable Drupal blocks/regions, включение этой опции отключает регионы темы и блоки.

Комментарии

Аватар пользователя Евгений
Евгений написал:

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

06.11.2011 22:55
Аватар пользователя Zestagio
Zestagio написал:

Да, модули чем то похожи, тот же выбор раскладок, возможность набрасывать контент как в панелях, но вот по возможностям, панели гораздо мощнее, думаю даже сравнивать не нуна

06.11.2011 23:11
Аватар пользователя andypost
andypost написал:

Важной отличительной особенностью DS является умение создавать дополнительные View modes (варианты вывода) сущностей, в то время как панели больше ориентированы на отображение комплексной информации, как правило всей страницы

07.11.2011 02:10
Аватар пользователя Inglar
Inglar написал:

Интересно. Но стоит ли оно того? если можно и без мода обойтись, тем более раз сделать. Что то как то меня этот мод не зацепил -(

07.11.2011 02:36
Аватар пользователя andypost
andypost написал:

Модуль гипер полезен для быстрого прототипирования, а в связке с entitycache может быть полезен для управляемости вариантов отображения сущностей

07.11.2011 04:00
Аватар пользователя Гость
Гость написал:

Я тоже пользуюсь этим модулем. Очень удобно.
И еще если возможно, напишите, пожалуйста, как пользоваться модулем Panels. Самому очень тяжело разобраться, а так хоть что-то станет понятно)

07.11.2011 15:44
Аватар пользователя Гость
Гость написал:

Спасибо за доку. Интересно для общего развития. А я вот думаю, может проще все же файл шаблона добавить? Телеодвижений явно меньше будет.

08.11.2011 14:14
Аватар пользователя Spleshka
Spleshka написал:

Я тоже люблю править шаблон. Но во-первых не все люди разбираются в коде. Во-вторых темы могут меняться, а с DS разбиение страницы сохраняется.

08.11.2011 16:14
Аватар пользователя unic
unic написал:

Долго не мог понять, что имеется в виду под раскладкой.
Layout - разметка, макет.

10.11.2011 09:00
Аватар пользователя mailfox
mailfox написал:

еще есть Panelizer

25.11.2013 16:44

Комментировать