Drupal architectures for flexible content - Drupalcon Barcelona
Transcript of Drupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content
Hernâni Borges de Freitas / @hernanibf
Site Building track
About meTechnical Team Lead Acquia EMEA.PT Drupal* many things
hernani.ptTwitter.com/hernanibf
A typical web site for a CMS:• Structured and fixed content: news items, job posts,
events.• Same content structure and typically same layout.
• Flexible content: home pages, landing pages, collection pages, rich pages.• Content structure and layout vary per item and can
be changed by editors.
Today’s session:• Architecture and patterns available for building a Drupal
site with flexible content:• Content Architecture• Layout Architecture• Workflow• Building an unified and comprehensible experience
for content editors
Meet the content editor:• Wants to control most of the details how content
appears on the web site. Flexible content is a major need.• He is a major stakeholder in websites where content is
king: media, entertainment, corporate websites.• Tech savvy on his own way - does not accept technical
limits - if the system does not allow something, he will find a way of doing it anyway.
Typical demands: Change website look and feel. Reuse content anywhere. Review / preview / approve / schedule content as it
will appear. Readapt site purpose on special events. CMS should be easy to understand, fast to
execute and free of problems
Problem in Drupal: Disconnection between content and layout. Disconnection between site building and
content edition. Drupal mantra of create content first, and it will
display on different sections “automagically”. Lack of revisioning system in many pieces of
the puzzle (menus, taxonomy, blocks).
Breaking the problem
Content Architecture
1Layout
Architecture
2Workflow and
preview
3Non-tech
considerations
4
How to create a rich page?
Content Architecture
1Layout
Architecture
2Workflow and
preview
3Non-tech
considerations
4
http://paragraphs.site-showcase.com/demos/creme-caramel
OptionsA. Free form HTML.B. Structured inclusive content including all items.C. Structured referenced content with references
among items.D. Unreferenced content being added through
layout.
Option A - Free form HTML Typically this is never a good solution, but in theory
can give a lot of flexibility. Hard to maintain consistency. Hard to reuse content. WYSIWYG hard to use and manage even with
placeholders. Hard to avoid errors from Content Editors (CE’s)
Option B – Inclusive contentAll content details are stored in the content item using complex fields. Good for pages with lots of details reused elsewhere.
Typical implementations:• Compound fields (custom or contributed).• Field collection module / Paragraphs module treat
the different entity as part of the host entity.
Option C – Referenced content
Different parts of content items are split in different entities which are referenced from the main entity.
Typical implementations: Entity reference field with inline entity form. Extra modules like references dialog module can
help on browsing existing content. Back references to help glue content (CER).
Option C – Referenced content
Different parts of content items are split in different entities which are referenced from the main entity.
Typical implementations: Entity reference field with inline entity form. Extra modules like references dialog module can
help on browsing existing content. Back references to help glue content (CER).
Breaking the problem
Content Architecture
1Layout
Architecture
2Workflow and
preview
3Non-tech
considerations
4
Manage individual page layout
How do I create a new rich page layout in Drupal?
Some options:A. Core template systemB. Display suiteC. Panels / Panelizer
Template system• Prepare different Drupal templates that are selected
depending on some attributes (node type, field, etc..).
• Use display modes and template suggestions to pick the correct template.
Display suiteView modes created by configuration. Drag and drop fields with different formatters for different regions.
Most of the layout/style can be done by site builders.
Good to maintain consistency between view modes.
Panels• Customized layouts for different means, including
for entity layout.• Support creation of pages with custom/fixed
layouts.• Fits well with the idea of widgets than can be drag
and dropped and configured in different regions.
How to create pages with panels?Different ways of creating pages:• Create independent panels.• Page manager with variants.• Panel nodes.• Panelizer
Panelizer• Panel display associated with an entity. • Panel displays available to be used as templates.• Panelize an entity and add panes and fields to
different regions.• Slick interface with Panels IPE.• You can try in Panopoly or Lightning distribution.
Panes• Configuration per instance where the pane is
present (e.g: A view that receives configuration that depends from page to page.
• Fieldable Panel Panes (FAPE)• Panels In place editor (IPE)• Panopoly magic• Panopoly widgets
Ctools content types
Breaking the problem
Content Architecture
1Layout
Architecture
2Workflow and
preview
3Non-tech
considerations
4
How to workflow content and layout together?• Content workflow is easy
• Workbench moderation / Workflow / … modules
• Layout workflow is harder (!)
How to preview?• Easier to achieve when rich content exists as a unit.• Harder to achieve with lots of referenced content.• Easier to achieve when layout stores all the needed
configuration and is associated with revisions (panelizer).
Workflow of flexible contentDirectly in production
• Limited if not well addressed.
• Dependency on revision system.
• Panelizer integrates with with workbench moderation (with patches)
Different environments
• Tricky balance between content and layout.
• Both need to be pushed amongst environments.
Workflow of complex itemsDirectly in production
Modules like:• Quick edit and panels in place
editor contextual links.• Workbench or workflow• Site Preview System.
Different environments
Modules like:• Deploy module and
associated suite can ship content together with associated items.
Breaking the problem
Content Architecture
1Layout
Architecture
2Workflow and
preview
3Non-tech
considerations
4
Non-tech considerations (1/2)
• Content editors are amongst the most important project’s stakeholders.
• They know the content and how the website will work after architects and developers leave.
• They care about what they see and not how does it work.• Should be involved from Discovery phase to User
Acceptance Testing.
Non-tech considerations (2/2)
• Content editors are used to previous systems and will want to keep some old habits.
• Pilots and POCs are very good ways to expose end users with what they will use.
• Distributions like lightning or panopoly are great inspirations and models to start with.
Holistic view
Content Architecture
1Layout
Architecture
2Workflow and
preview
3Non-tech
considerations
4
About my work @ acquiaAn architect in Acquia is responsible technical solutions for clients during different phases.
• Discovery• Solution/Specification• Development phase• Deployment
We are hiringhttp://www.acquia.com/careers