Drupal не был бы столь популярной CMS без мощи таких модулей, как Views и Panels. Использование последнего будет рассмотрено со всех сторон, будут рассказаны лучшие практики использования, а так же практические примеры. Расскажу о принципе построения проектов, к которому со временем пришёл и который стал для меня универсальной основой для построения практически любого функционала на Drupal.
Приёмы верстки страниц с использованием HTML + CSSDenis Latushkin
Инструменты веб-разработки. Стилевые возможности по относительному расположению элементов. Подключение шрифтов. Примеры верстки страниц. Работа с графическими редакторами.
Основные тренды развития систем управления контентом, что такое контент, почему Drupal отлично подходит для крупных международных проектов
Подписывайтесь на нас!
VK: https://vk.com/drupalsib
FB: https://facebook.com/groups/drupalsib
Twitter:
https://twitter.com/SibDrupalCamp
https://twitter.com/DrupalSib
Instagram: https://instagram.com/drupalsib
Курс «Профессиональная разработка электронного учебного контента II»
Практикум 3. Пошаговая инструкция
Задание практикума.
Создать интерактивное изображение с разметкой и описанием 7−12 кадров в сервисе StoryMapJS.
Для тех кто затрудняется подготовить папку гигапиксельного изображения
можно воспользоваться папкой изображения «Менины» (7844×9000): http://contentium.ru/Velaskes-Meniny/
Для тех, кто хочет выполнить практикум в полном объёме на странице темы 3 курса приведены примеры изображений высокой чёткости (на источник можно перейти кликнув на изображение).
Кроме того, такие изображения можно загрузить здесь:
https://commons.wikimedia.org/wiki/Category:Gigapixel_images_from_the_Google_Art_Project
или здесь:
https://commons.wikimedia.org/wiki/Commons:Picture_of_the_Year/2015/R1/Gallery/Frescos,_ceilings_and_stained_glass
Dependency Injection in Drupal 8 - Стадник АндрейQweqweDrupalCampDN
Попытаемся разобраться что же это такое Dependency Injection, зачем он нужен в Друпале 8. А также создадим свой супер-пупер сервис с Black Jack'ом и тестами.
More Related Content
Similar to Panels как философия - Alexander Danilenko
Приёмы верстки страниц с использованием HTML + CSSDenis Latushkin
Инструменты веб-разработки. Стилевые возможности по относительному расположению элементов. Подключение шрифтов. Примеры верстки страниц. Работа с графическими редакторами.
Основные тренды развития систем управления контентом, что такое контент, почему Drupal отлично подходит для крупных международных проектов
Подписывайтесь на нас!
VK: https://vk.com/drupalsib
FB: https://facebook.com/groups/drupalsib
Twitter:
https://twitter.com/SibDrupalCamp
https://twitter.com/DrupalSib
Instagram: https://instagram.com/drupalsib
Курс «Профессиональная разработка электронного учебного контента II»
Практикум 3. Пошаговая инструкция
Задание практикума.
Создать интерактивное изображение с разметкой и описанием 7−12 кадров в сервисе StoryMapJS.
Для тех кто затрудняется подготовить папку гигапиксельного изображения
можно воспользоваться папкой изображения «Менины» (7844×9000): http://contentium.ru/Velaskes-Meniny/
Для тех, кто хочет выполнить практикум в полном объёме на странице темы 3 курса приведены примеры изображений высокой чёткости (на источник можно перейти кликнув на изображение).
Кроме того, такие изображения можно загрузить здесь:
https://commons.wikimedia.org/wiki/Category:Gigapixel_images_from_the_Google_Art_Project
или здесь:
https://commons.wikimedia.org/wiki/Commons:Picture_of_the_Year/2015/R1/Gallery/Frescos,_ceilings_and_stained_glass
Dependency Injection in Drupal 8 - Стадник АндрейQweqweDrupalCampDN
Попытаемся разобраться что же это такое Dependency Injection, зачем он нужен в Друпале 8. А также создадим свой супер-пупер сервис с Black Jack'ом и тестами.
Catalyst IT is one of Australia's largest open source software houses. We are all about using the awesome array of tools at our disposal from the FOSS (Free and Open Source) spectrum.
In Nov 2012, Catalyst was engaged by a major Australian university to help them pioneer an Australian MOOC (Massive Open Online Course) application - Open2Study.com
From the outset, the application was to be hosted on AWS (Amazon Web Services). Catalyst had experience with applications on AWS but the scale and business requirements of Open2Study meant there was a lot for us to learn and master throughout the build and deployment.
The application is a customised extension of Drupal, Moodle and simpleSAMLphp.
Moodle is an open source LMS (Learning Management System)
Coming from a background of deployment onto both physical and virtual hardware, Catalyst was used to working within the confines of various linux environments.
Building and deploying our application into a full AWS environment gave us a great opportunity to get to grips with the power and challenges associated with Amazon's infrastructure-as-a-service offering.
Guzzle in Drupal 8 and as a REST client - Артем МирошникDrupalCampDN
Забудьте о drupal_http_request, pure curl, file_get_contents либо подобные устаревшие подходы!
http://docs.guzzlephp.org/ - фреймворк для работы с HTTP запросами, удобный способ создавать REST web service клиенты, просто отличная абстракция над curl.
Blocks & Layouts in D7 - Josef DabernigDrupalCampDN
Drupal 7 site builders are presented with a variety of tools to create complex layouts. In this session, I will talk about our in-house tool-chain at drunomics for building sites with dynamic layouts.
CKEditor в Drupal: тонкая настройка и кастомизация - Osman SeferovDrupalCampDN
Среди большого количества WYSIWYG редакторов, начинающему разработчику достаточно сложно выделить действительно мощный и удовлетворяющий всем требованиям инструмент. В своём докладе я расскажу о CKEditor и поделюсь собственным опытом использования, настройки и кастомизации под определённые нужды.
Drush - use full power - Alexander SchedrovDrupalCampDN
Drush - незаменимый инструмент для Drupal разработчика. Если вы досихпор не используете этот замечательный инструмент либо пользуетесь только малой частью команд - этот доклад будет очень полезен для вас.
Это Drupal, %username%! - Андрей ЧерноусDrupalCampDN
Цель доклада - заинтересовать начинающих разработчиков. Я расскажу немного обо всем: история, развития, с чего лучше начать новичку. Будут рассмотрены основные возможности и как их применять на практике. Рассмотрим пошаговый пример создания небольшого сайта.
Рассмотрим сам фреймворк, определим основные юзкейсы использования, базовые требования для использования, а так же посмотрим на код на примере миграции Drupal 7 - Drupal 7. Думаю так же доклад будет интересен для всех, кто планирует использовать будущий релиз Drupal, ввиду того, что Migrate частично мигрировал в ядро и будет инструментом по умолчанию для апгрейда не только с 7 версии, но и с 6(возможно даже с 5!!!).
Caching on highload Drupal site - Alexander ShumenkoDrupalCampDN
Рассмотрим создание тегированной системы кеширования сущностей для high load сайта на Drupal. В ходе доклада будут рассмотрены наиболее интересные моменты реализации (построение цепочки тегов) так же рассмотрены проблемы и способы их решения.
Доклад будет посвящён вопросам редактирования медиа-насыщенного текста в Друпале. Как настроить стили текста и визуальные редакторы таким образом, чтобы внешний вид сайта выглядел цельно, а у редакторов содержания не вызывал изумления результат их трудов? Как сочетать возможности редактирования и безопасность? Как управлять картинками и видео на сайте в зависимости от его характера (информационный портал, форум, магазин)? Почему существует множество модулей для решения каждой отдельной задачи (визуальные редакторы, управление медиа) и как они взаимодействуют?
По замыслу автора доклада, он должен закончится хеппи-эндом: будут приведены рецепты решения для наиболее типичных задач.
May the parallelity be with you! Distributed computing using Erlang language ...DrupalCampDN
Small session about distributed programming in general and using of Erlang language in particular. Includes example of usage implemented as Symfony framework bundle.
DrupalGap. How to create native application for mobile devices based on Drupa...DrupalCampDN
Рано или поздно каждый сайт нуждается в мобильной версии. Существует несколько способов реализации мобильной версии: адаптивный сайт, нативное приложение для iOS, Android etc.
В создании нативного приложения нам поможет отличная платформа под названием DrupalGap. DrupalGap - это платформа позволяющая создавать приложения для iOS и Android при помощи Drupal, PhoneGap, jQueryMobile, без непосредственного программирования на языке платформы.
Обработчик шаблонов Twig обретает все большую популярность среди разработчиков. Он поддерживается практически всеми современными PHP фреймверками: Drupal, Symfony, Zend Framework, YII, CodeIgniter, CakePHP. Так за что разработчики любят Twig?
В докладе автор на примерах покажет простоту и гибкость Twig шаблонизатора. Далее будут рассмотрены некоторые аспекты расширения стандартного Twig функционала при помощи собственных функций, фильтров, тестов, декларирования глобальных переменных и т.д. Также будет показано внутренне устройство Twig – парсер, лексер, компилятор и создание собственного тега (то что пишется между {%..%} )
This session will deliver insight into how a Commerce shop can be built to sell geodetic satellite data.
An aerospace company builds compact and lightweight satellites which collect earth observation data. This data are sold through a shop built with Drupal Commerce.
Some of the technical challenges:
- how Commerce products can be made configurable for customers by drawing their areas of interest in an Open Layers Map
- how sophisticated geographical computations can be integrated into Drupal by using PostGIS functions
- how incompatibilities between Drupal caching and the Open Layers Drawing tools were overcome
Boost your theming skills - Artem ShymkoDrupalCampDN
Больше количество изменений в сфере темизации конечно же оказывают влияние на то, как происходит теминг сайтов на Drupal.
Less, Sass, Grunt, Compass, LiveReload, множество новых фич и тулз, среди которых уже можно запутаться, но с которыми многие повседневные задачи превращаются в минутное дело.
Я попробую выбрать наиболее интересные инструменты, которыми мы пользуемся в своих проектах. Наглядно показать как быстро и легко поднять SASS или LESS и начать работу имея в рукаве карту с кучей полезностей :)
2. Глоссарий
● Сайтбилдер — Drupal разработчик, собирающий проект из готовых
модулей и не желающий или не умеющий писать свои модули.
● Entity (cущность) — всё, что можно расширить полями и показывать
как контент.
● Panel layout (лейаут) — шаблон, при помощи которого выводится
определенный контент.
● Layout region (регион) — место для контента, который выводится
внутри шаблона.
● Ctools Content type (CCT) — Контент, который передаётся в регион
лейаута панелей. Это может быть: поле, блок, вьюшка, кастомный
CCT и т.д.
● Panelizer default panel — расположение определенных CCT в
регионах.
● View mode (тип представления) — способ показа сущности.
Например: Анонс, Полный контент, и т.д.
4. Немного теории.
Как Drupal видит страницу?
● Блоки не зависят от контента
(нет понятия контекста)
● Блок можно отобразить
только в одном регионе
● Чтобы реализовать логику
показа/скрытия блоков —
нужно писать PHP код в
админке.
● PHP код в админке — это
всегда пичалька. Не делайте
так никогда. Вообще.
HEADER
FOOTER
SIDEBAR
LEFT
SIDEBAR
RIGHT
CONTENT
5. CONTENT
Немного теории.
Как дизайнеры видят страницу?
● Вся страница является
цельным отображением
контента, где любой элемент
может зависеть от
показываемой страницы (от
котнекста показа).
● Контекстом для показа
может быть текущий
пользователь, текущий язык,
значение полей текущей
сущности, значение поля
связанного с текущей
сущностью и т.д.
● Даже вьюшки.
6. Немного теории.
Как Я вижу страницу?
● Вверху - основные
элементы шапки,
одинаковые для всех
страниц. Например:
логотип, название
сайта, слоган.
● Контент - панель с
некоторым количеством
регионов.
● Футер - копирайты.
BRANDING
COPYRIGHT
CONTENT
8. Зачем? Мне и так не плохо
Больше возможностей при
редактировании контента
● Вся мощь панелей:
○ Вставка всего чего угодно и куда угодно (блоки,
кастомный текст, вьюшки, элементы страницы
(сайтнейм, бредкрамбы, лого, слоган и т.д.).
Проще говоря — всё то, что можно вставить в
любую панель + поля из вашей сущности.
○ Можно создать уникальный лейаут,
практически не прибегая к коду (Flexible).
○ Добавление классов к полям через админку
(удобно когда используем сетку или CSS
фреймворк)
○ In-pace editng
● Переопределение настроек только для одной
сущности.
9. Пример сложной
задачи
Контент содержит элементы,
которые необходимо растянуть на
100% по ширине текущего экрана.
В обычной ситуации - регион с
контентом фиксируется по ширине
и без костылей в подобном случае
не обойтись.
Можно наделать новых регионов в
теме, но использовать их только
один раз на одной странице. Что
не есть оптимизация
возможностей.
10. Пример сложной
задачи
Контент содержит элементы,
которые необходимо растянуть на
100% по ширине текущего экрана.
В обычной ситуации - регион с
контентом фиксируется по ширине
и без костылей в подобном случае
не обойтись.
Можно наделать новых регионов в
теме, но использовать их только
один раз на одной странице. Что
не есть оптимизация
возможностей.
11. Когда использование Panelizer
оправдано?
● Когда мы — сайтбилдер.
● Когда мы не хотим создавать кучу шаблонов для разных
представлений контента.
● Когда у нас проект типа:
○ Набор Landing страниц
○ Проект с минимумом логики и максимумом разнообразного
контента
● Когда мы разрабатываем тему с нуля (кастомная тема).
● Когда тип материала с одним набором полей необходимо
представлять в нескольких вариациях (цеплять разные лейауты для
определенных нод одного и того же типа) с возможностью выбора на
каждой ноде собственного лейаута.
● Когда используем CSS фреймворк
○ Можно и без сетки, но придётся писать много стилей, вместо
обычного добавления классов элементам.
12. Когда ещё?
● У Panelizer отличная интеграция с модулем Features - экспортирует
лейауты и настройки вывода для определенных типов сущностей.
● Если мы разрабатываем проекты по методологии повторного
использования кода.
● Если делаем собственный дистрибутив, установочный профиль или
фичу, которую будем использовать на нескольких проектах.
● Если делаем тему на продажу. На выходе получаем кучу
кастомизабельности сайта при минимуме движений по изменению
представления контента.
14. Когда использование Panelizer не
оправдано?
● Когда мы делаем проект с маленьким бюджетом и морока с панелями
не оплачивается.
● Когда расширяемость проекта совершенно не важна.
● Когда контент вне региона с контентом никак не связан с основным
контентом.
● Когда не хотим писать свою тему, а используем какую нибудь базовую
(Zen, Omega, Adaptivetheme, etc.)
15. Как всё таки всё это сделать?
Прототипизирование
● Нудный процесс рисования прототипов
(мокапов, скетчей, и т.д.)
● Для чего:
○ Чтобы охватить как
можно
более оптимальное
количество элементов,
которые должны быть
внутри главной панели с
контентом.
16. Правки в теме
● Убираем ширину у страницы и региона с контентом
○ Легче всего использовать сетку
● Убираем в теме регионы с сайдбарами
17. Создание полей со ссылками
● Добавляем несколько block-reference полей
CONTENT (THEME’S REGION)
field_before_content
field_body field_sidebar_2
field_after_content
field_sidebar_1
31. Ссылки
● Курс по Panels + Panelizer от Drupalize.me
● Дистрибутив Drupal, придерживающийся идеи
“панели везде”: https://drupal.org/project/panopoly
● Куча готовых лейаутов:
https://drupal.org/sandbox/apmsooner/1805170
● Ещё больше лейаутов:
https://drupal.org/project/panels_extra_layouts
32. So long, and thanks for all the fish
RTFM
Александр Даниленко