drupal architectures for flexible content - drupalcon barcelona

Post on 12-Apr-2017

570 Views

Category:

Internet

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related