SlideShare a Scribd company logo
1 of 44
One Content Type
to Rule Them All
Case study of “Any Page”, a single-content
type implementation
CORNELL DRUPAL CAMP 2015
Presenter
Will Jackson - New Valley Media
Senior Drupal Developer
Resident Commerce Consultant
System Administrator
DevOps Engineer
New Valley Media
Drupal Development and Support
On-site/Remote Training
Supplemental Staffing
Drupal Consulting Services
Site Audits & Performance Reviews
UI/UX Responsive Enhancements
and much more...
Company
Introductions
Why single-content type?
Our model: Any Page
ECK and other construction
tips
The Future of Drupal
Who are you?
Site builders, developers,
themers, content
managers, etc
Most content types
on a site?
Why single-content type?
Problem 1: Content type overload
Advantage of Drupal: Add as many content
types and fields as needed
Disadvantage of Drupal: Add as many content
types and fields as you think you need
And content types are rigid!
How many content types are too many?
Traditional Content Models
Focus on “content types.”
Assume that unique content type is needed
for each page variation.
Still connect presentation to architecture.
(References:
http://pointnorth.io/#content-modeling
http://alistapart.com/article/content-modelling-a-master-skill)
Single-page and long-form pages.
Mix of visuals: images, videos, graphics.
Editors want to control order of elements.
Mix of default and custom sidebar blocks.
Problem 2: Design trends
Single-content type solution:
“Any Page”
Rather than content types, IA focuses on
content organization.
Complex pages (such as landing pages) can
be controlled by editors.
Easier flexibility for non-content regions, such
as sidebars.
Single-content type solutions
Single content type: Any Page
Content model
Content type
Fields
Custom Theming
⇒ Site structure
⇒ Page type tags
⇒ Reusable blocks
⇒ Built-in style options
Example: Events
Content type:
Title
Date
Location
Description
Type of event
Registration form
Photo, gallery, video
Speakers
Handouts
Single content type:
Title
Tag: Event, Types
Blocks:
Event, Text, Image,
Video, Person, Doc
Attachments, etc.
STRUCTURE
Entity Construction Kit
Entity Reference
Inline Entity Form
Context, Features
Views, View Field
Media
Automatic Entity Label
Any Page: Module magic
UX ENHANCEMENTS/PRESENTATION
Field Group
Multiple Selects
Display Suite / Extras
Fields Conditional
Field Formatter Settings
Field Formatter Conditions
Entity Construction Kit
Create/Manage entities and bundles from UI.
Manage properties and custom behaviors.
Create bundles to share entity configuration.
Thousands of compatible modules (Field UI).
Entity Construction Kit
Entity Construction Kit
Entity Construction Kit
Alternative tagging: Options entity
“Options” entity type with two bundles
Option Type: parent, such as Page Type
Option: child, such as Event, Blog, Product,
News, etc.
Also used for supporting options in the Any
Blocks: Layout Options, Link Style, Image
Style, Color Scheme, etc.
Option fields
Label: human-friendly description
Machine name:
CSS-friendly string
Applied as classes to streamline theming
Related to Bootstrap classes or variables
Example - Block Color Scheme:
Label: Purple background / white text
Machine name: color_brand_contrast_white
Option Types in use on Text Block style options
Any Page node fields
Title
Tags: Page type,
categories
Teaser and teaser
image
Entity reference fields:
Main content
Left sidebar
Right sidebar
Content top
Content bottom
Default globals
Any Page node fields
Title
Tags: Page type,
categories
Teaser and teaser
image
Entity reference fields:
Main content
Left sidebar
Right sidebar
Content top
Content bottom
Default globals
Page Type tag is
alternative to separate
content types. Can be
changed as node usage
changes.
Other functional or
presentation tagging
can be added as
needed.
Recommend using Teaser because
there is no standard Body field to
use as a fallback.
Any Block types
Each type based on functionality.
Most block types can be used in any field.
(AKA page region: main content, sidebar, etc.)
Limited field reuse.
Any Block types
Text block
Accordion block
Contact block
Document Attachments
block
Event block
Featured Media block
Form block
Image (grid / slideshow)
Link (menu-style)
Location block
Product
System block (blocks from
core and modules)
Video block
View / List block (blocks
from Views)
Any Block: Text block
Administrative Title
Display Title
(with optional link)
Style Options
(alignment, padding, color,
layout)
Body
Image
Options
(style, position, link)
Image
(base and hover)
Links
Link style
(text or button)
Title (optional link)
Links
Created by the Commerce Guys for Commerce Kickstart.
Create referenced entities inline without leaving the form.
Integrate with any new or pre-existing entity.
Streamline content forms
Inline Entity Form
Inline Entity Form
Life cycle of a page
1.Announcement: Text, images
2.Event: Retag. Add Event, Location blocks
3.Report: Retag. Add Video block.
4.Resource: Retag. Add Document
Attachment block.
Performance
Complex configurations may be resource intensive.
Commerce
Additional customization required for contrib displays
Search
Contributed Module Limitations
Technical considerations
Review
Advantages of a single content type
Content that evolves to what you need
Simplify the process for content editors
Condense Content Types
Solve the problem of “a content type for everything”
Questions
Are there any questions?
@willjackson00
Demonstration
SCREENSHOTS
Two custom entity types
Any Page uses two custom
entity types: Any Block and
Option Type
Related: Item Sets
used in block
Special Purpose
Parent Bundle (no blocks)
Container block
“Workhorse”
Any Block bundles
Any Block: parent bundle
Text Block: multi-purpose
“workhorse” also includes image
and links
Accordion Block: primary field is
multi-field Accordion Item Set.
Multi-Block Wrapper: allows other
blocks to be displayed in one row.
SEO Description: not available as
block; used separately.
Any Block properties
Administrative Title (instead of
Title) for easier labeling
All bundles have separate
Display Title field
Main content field
Create or reuse entities in
this region.
All blocks are displayed in a
vertical stack.
Left sidebar field
Create or reuse entities in
this region.
All blocks are displayed in a
vertical stack.
Option to override default
display settings on Global
sidebar blocks.
Right sidebar field
Create or reuse entities in
this region.
All blocks are displayed in a
vertical stack.
Content top field
Display options for blocks
displayed in Content Top
region.
Create or reuse entities in
this region.
Content bottom field
Display options for blocks
displayed in Content Bottom
region.
Create or reuse entities in
this region.

More Related Content

What's hot

BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog Template
BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog TemplateBP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog Template
BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog TemplateSean Burgess
 
Drupal as a Programmer-Friendly CMS at ConFoo
Drupal as a Programmer-Friendly CMS at ConFooDrupal as a Programmer-Friendly CMS at ConFoo
Drupal as a Programmer-Friendly CMS at ConFooSuzanne Dergacheva
 

What's hot (6)

Dhtml
DhtmlDhtml
Dhtml
 
BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog Template
BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog TemplateBP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog Template
BP304 - Blog It Up, Baby! Extending the new IBM Lotus Domino Blog Template
 
A First Look At Drupal
A First Look At DrupalA First Look At Drupal
A First Look At Drupal
 
Wa html5-pdf
Wa html5-pdfWa html5-pdf
Wa html5-pdf
 
Wa html5-pdf
Wa html5-pdfWa html5-pdf
Wa html5-pdf
 
Drupal as a Programmer-Friendly CMS at ConFoo
Drupal as a Programmer-Friendly CMS at ConFooDrupal as a Programmer-Friendly CMS at ConFoo
Drupal as a Programmer-Friendly CMS at ConFoo
 

Similar to CORNELL DRUPAL CAMP 2015: One Content Type to Rule Them All

Dita for the web: Make Adaptive Content Simple for Writers and Developer
Dita for the web: Make Adaptive Content Simple for Writers and DeveloperDita for the web: Make Adaptive Content Simple for Writers and Developer
Dita for the web: Make Adaptive Content Simple for Writers and DeveloperDon Day
 
DrupalCamp Florida 2015 - One Content Type to Rule Them All
DrupalCamp Florida 2015 - One Content Type to Rule Them AllDrupalCamp Florida 2015 - One Content Type to Rule Them All
DrupalCamp Florida 2015 - One Content Type to Rule Them AllWill Jackson
 
Meetup: The big change coming to WordPress in 2018 - Gutenberg
Meetup: The big change coming to WordPress in 2018 - GutenbergMeetup: The big change coming to WordPress in 2018 - Gutenberg
Meetup: The big change coming to WordPress in 2018 - GutenbergEvan Mullins
 
Meetup: The big change coming to WordPress in 2018 - Gutenberg
Meetup: The big change coming to WordPress in 2018 - GutenbergMeetup: The big change coming to WordPress in 2018 - Gutenberg
Meetup: The big change coming to WordPress in 2018 - GutenbergMickey Mellen
 
Overview of Using Wordpress for Web Site Design
Overview of Using Wordpress for Web Site DesignOverview of Using Wordpress for Web Site Design
Overview of Using Wordpress for Web Site DesignAmy Goodloe
 
Accessibility in Practice: Integrating Web Accessibility into Cascade Training
Accessibility in Practice:  Integrating Web Accessibility into Cascade TrainingAccessibility in Practice:  Integrating Web Accessibility into Cascade Training
Accessibility in Practice: Integrating Web Accessibility into Cascade Traininghannonhill
 
Html & CSS - Best practices 2-hour-workshop
Html & CSS - Best practices 2-hour-workshopHtml & CSS - Best practices 2-hour-workshop
Html & CSS - Best practices 2-hour-workshopVero Rebagliatte
 
Drupal Training
Drupal TrainingDrupal Training
Drupal TrainingSam Davis
 
[DCTPE2011] Drupal 7 的Fields/Views 運用
[DCTPE2011] Drupal 7 的Fields/Views 運用[DCTPE2011] Drupal 7 的Fields/Views 運用
[DCTPE2011] Drupal 7 的Fields/Views 運用Drupal Taiwan
 
Modernising AEM Sites Codebase (AEM Meetup 2019)
Modernising AEM Sites Codebase  (AEM Meetup 2019)Modernising AEM Sites Codebase  (AEM Meetup 2019)
Modernising AEM Sites Codebase (AEM Meetup 2019)Hanish Bansal
 
Marky Markup and the Funky Bunch
Marky Markup and the Funky BunchMarky Markup and the Funky Bunch
Marky Markup and the Funky Bunchdtraft
 
Design And Documentation
Design And DocumentationDesign And Documentation
Design And DocumentationMiles Price
 
Structuring Content in WordPress using Advanced Custom Fields
Structuring Content in WordPress using Advanced Custom FieldsStructuring Content in WordPress using Advanced Custom Fields
Structuring Content in WordPress using Advanced Custom FieldsJamie Schmid
 
Presentation kaushal
Presentation kaushalPresentation kaushal
Presentation kaushalAjay Yadav
 
Single sourcing to the max
Single sourcing to the maxSingle sourcing to the max
Single sourcing to the maxNeil Perlin
 
Accomplish It With Core: Sliders Galleries + More
Accomplish It With Core: Sliders Galleries + MoreAccomplish It With Core: Sliders Galleries + More
Accomplish It With Core: Sliders Galleries + MoreAndy Stratton
 

Similar to CORNELL DRUPAL CAMP 2015: One Content Type to Rule Them All (20)

Dita for the web: Make Adaptive Content Simple for Writers and Developer
Dita for the web: Make Adaptive Content Simple for Writers and DeveloperDita for the web: Make Adaptive Content Simple for Writers and Developer
Dita for the web: Make Adaptive Content Simple for Writers and Developer
 
DrupalCamp Florida 2015 - One Content Type to Rule Them All
DrupalCamp Florida 2015 - One Content Type to Rule Them AllDrupalCamp Florida 2015 - One Content Type to Rule Them All
DrupalCamp Florida 2015 - One Content Type to Rule Them All
 
Meetup: The big change coming to WordPress in 2018 - Gutenberg
Meetup: The big change coming to WordPress in 2018 - GutenbergMeetup: The big change coming to WordPress in 2018 - Gutenberg
Meetup: The big change coming to WordPress in 2018 - Gutenberg
 
Meetup: The big change coming to WordPress in 2018 - Gutenberg
Meetup: The big change coming to WordPress in 2018 - GutenbergMeetup: The big change coming to WordPress in 2018 - Gutenberg
Meetup: The big change coming to WordPress in 2018 - Gutenberg
 
Overview of Using Wordpress for Web Site Design
Overview of Using Wordpress for Web Site DesignOverview of Using Wordpress for Web Site Design
Overview of Using Wordpress for Web Site Design
 
Accessibility in Practice: Integrating Web Accessibility into Cascade Training
Accessibility in Practice:  Integrating Web Accessibility into Cascade TrainingAccessibility in Practice:  Integrating Web Accessibility into Cascade Training
Accessibility in Practice: Integrating Web Accessibility into Cascade Training
 
Html & CSS - Best practices 2-hour-workshop
Html & CSS - Best practices 2-hour-workshopHtml & CSS - Best practices 2-hour-workshop
Html & CSS - Best practices 2-hour-workshop
 
Drupal Training
Drupal TrainingDrupal Training
Drupal Training
 
[DCTPE2011] Drupal 7 的Fields/Views 運用
[DCTPE2011] Drupal 7 的Fields/Views 運用[DCTPE2011] Drupal 7 的Fields/Views 運用
[DCTPE2011] Drupal 7 的Fields/Views 運用
 
Modernising AEM Sites Codebase (AEM Meetup 2019)
Modernising AEM Sites Codebase  (AEM Meetup 2019)Modernising AEM Sites Codebase  (AEM Meetup 2019)
Modernising AEM Sites Codebase (AEM Meetup 2019)
 
Marky Markup and the Funky Bunch
Marky Markup and the Funky BunchMarky Markup and the Funky Bunch
Marky Markup and the Funky Bunch
 
Design And Documentation
Design And DocumentationDesign And Documentation
Design And Documentation
 
MMS2010
MMS2010MMS2010
MMS2010
 
Structuring Content in WordPress using Advanced Custom Fields
Structuring Content in WordPress using Advanced Custom FieldsStructuring Content in WordPress using Advanced Custom Fields
Structuring Content in WordPress using Advanced Custom Fields
 
Presentation kaushal
Presentation kaushalPresentation kaushal
Presentation kaushal
 
Single sourcing to the max
Single sourcing to the maxSingle sourcing to the max
Single sourcing to the max
 
Drupal Workshop
Drupal WorkshopDrupal Workshop
Drupal Workshop
 
Open Source CMS
Open Source CMSOpen Source CMS
Open Source CMS
 
Playing Tag: Managed Metadata and Taxonomies in SharePoint 2010
Playing Tag: Managed Metadata and Taxonomies in SharePoint 2010Playing Tag: Managed Metadata and Taxonomies in SharePoint 2010
Playing Tag: Managed Metadata and Taxonomies in SharePoint 2010
 
Accomplish It With Core: Sliders Galleries + More
Accomplish It With Core: Sliders Galleries + MoreAccomplish It With Core: Sliders Galleries + More
Accomplish It With Core: Sliders Galleries + More
 

Recently uploaded

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

CORNELL DRUPAL CAMP 2015: One Content Type to Rule Them All

  • 1. One Content Type to Rule Them All Case study of “Any Page”, a single-content type implementation CORNELL DRUPAL CAMP 2015
  • 2. Presenter Will Jackson - New Valley Media Senior Drupal Developer Resident Commerce Consultant System Administrator DevOps Engineer
  • 3. New Valley Media Drupal Development and Support On-site/Remote Training Supplemental Staffing Drupal Consulting Services Site Audits & Performance Reviews UI/UX Responsive Enhancements and much more... Company
  • 4. Introductions Why single-content type? Our model: Any Page ECK and other construction tips The Future of Drupal Who are you? Site builders, developers, themers, content managers, etc Most content types on a site?
  • 6. Problem 1: Content type overload Advantage of Drupal: Add as many content types and fields as needed Disadvantage of Drupal: Add as many content types and fields as you think you need And content types are rigid!
  • 7. How many content types are too many?
  • 8. Traditional Content Models Focus on “content types.” Assume that unique content type is needed for each page variation. Still connect presentation to architecture. (References: http://pointnorth.io/#content-modeling http://alistapart.com/article/content-modelling-a-master-skill)
  • 9. Single-page and long-form pages. Mix of visuals: images, videos, graphics. Editors want to control order of elements. Mix of default and custom sidebar blocks. Problem 2: Design trends
  • 11. Rather than content types, IA focuses on content organization. Complex pages (such as landing pages) can be controlled by editors. Easier flexibility for non-content regions, such as sidebars. Single-content type solutions
  • 12. Single content type: Any Page Content model Content type Fields Custom Theming ⇒ Site structure ⇒ Page type tags ⇒ Reusable blocks ⇒ Built-in style options
  • 13. Example: Events Content type: Title Date Location Description Type of event Registration form Photo, gallery, video Speakers Handouts Single content type: Title Tag: Event, Types Blocks: Event, Text, Image, Video, Person, Doc Attachments, etc.
  • 14. STRUCTURE Entity Construction Kit Entity Reference Inline Entity Form Context, Features Views, View Field Media Automatic Entity Label Any Page: Module magic UX ENHANCEMENTS/PRESENTATION Field Group Multiple Selects Display Suite / Extras Fields Conditional Field Formatter Settings Field Formatter Conditions
  • 15. Entity Construction Kit Create/Manage entities and bundles from UI. Manage properties and custom behaviors. Create bundles to share entity configuration. Thousands of compatible modules (Field UI).
  • 19. Alternative tagging: Options entity “Options” entity type with two bundles Option Type: parent, such as Page Type Option: child, such as Event, Blog, Product, News, etc. Also used for supporting options in the Any Blocks: Layout Options, Link Style, Image Style, Color Scheme, etc.
  • 20. Option fields Label: human-friendly description Machine name: CSS-friendly string Applied as classes to streamline theming Related to Bootstrap classes or variables Example - Block Color Scheme: Label: Purple background / white text Machine name: color_brand_contrast_white
  • 21. Option Types in use on Text Block style options
  • 22. Any Page node fields Title Tags: Page type, categories Teaser and teaser image Entity reference fields: Main content Left sidebar Right sidebar Content top Content bottom Default globals
  • 23. Any Page node fields Title Tags: Page type, categories Teaser and teaser image Entity reference fields: Main content Left sidebar Right sidebar Content top Content bottom Default globals
  • 24. Page Type tag is alternative to separate content types. Can be changed as node usage changes. Other functional or presentation tagging can be added as needed.
  • 25. Recommend using Teaser because there is no standard Body field to use as a fallback.
  • 26. Any Block types Each type based on functionality. Most block types can be used in any field. (AKA page region: main content, sidebar, etc.) Limited field reuse.
  • 27. Any Block types Text block Accordion block Contact block Document Attachments block Event block Featured Media block Form block Image (grid / slideshow) Link (menu-style) Location block Product System block (blocks from core and modules) Video block View / List block (blocks from Views)
  • 28. Any Block: Text block Administrative Title Display Title (with optional link) Style Options (alignment, padding, color, layout) Body Image Options (style, position, link) Image (base and hover) Links Link style (text or button) Title (optional link) Links
  • 29. Created by the Commerce Guys for Commerce Kickstart. Create referenced entities inline without leaving the form. Integrate with any new or pre-existing entity. Streamline content forms Inline Entity Form
  • 31. Life cycle of a page 1.Announcement: Text, images 2.Event: Retag. Add Event, Location blocks 3.Report: Retag. Add Video block. 4.Resource: Retag. Add Document Attachment block.
  • 32. Performance Complex configurations may be resource intensive. Commerce Additional customization required for contrib displays Search Contributed Module Limitations Technical considerations
  • 33. Review Advantages of a single content type Content that evolves to what you need Simplify the process for content editors Condense Content Types Solve the problem of “a content type for everything”
  • 34. Questions Are there any questions? @willjackson00
  • 37. Two custom entity types Any Page uses two custom entity types: Any Block and Option Type
  • 38. Related: Item Sets used in block Special Purpose Parent Bundle (no blocks) Container block “Workhorse” Any Block bundles Any Block: parent bundle Text Block: multi-purpose “workhorse” also includes image and links Accordion Block: primary field is multi-field Accordion Item Set. Multi-Block Wrapper: allows other blocks to be displayed in one row. SEO Description: not available as block; used separately.
  • 39. Any Block properties Administrative Title (instead of Title) for easier labeling All bundles have separate Display Title field
  • 40. Main content field Create or reuse entities in this region. All blocks are displayed in a vertical stack.
  • 41. Left sidebar field Create or reuse entities in this region. All blocks are displayed in a vertical stack. Option to override default display settings on Global sidebar blocks.
  • 42. Right sidebar field Create or reuse entities in this region. All blocks are displayed in a vertical stack.
  • 43. Content top field Display options for blocks displayed in Content Top region. Create or reuse entities in this region.
  • 44. Content bottom field Display options for blocks displayed in Content Bottom region. Create or reuse entities in this region.

Editor's Notes

  1. Add details on background. Will, can you add yours?
  2. Add details on background. Will, can you add yours?
  3. Add details on background. Will, can you add yours?
  4. Question for attendees: Prize for most?
  5. Design trend toward long, parallax scrolling pages. How can we provide editorial control? Sometimes that page calls for a single image, other times a gallery or slideshow, other times a video. How can we provide flexibility for building these pages? Editors don’t want to be stuck in a box or with static displays. They want to be able to reorder elements on the page. Editors also want more control over sidebar blocks. Drupal’s block configuration makes this difficult, even when using context instead.
  6. IA focuses on content organization, which means fewer one-off pages fall through the cracks. Designs are becoming more complex, with mixture of images and content blocks. Clients want granular control over sidebars
  7. Key differences between Any Page and content type for each presentation type -- content models focus on site structure rather than content types, which allows laser-focus on user needs. Instead of content types, use page type tags. Instead of an unending list of fields, implement reusable blocks.
  8. Conventional content type: starting adding fields. And even after adding fields, typically locked into a static layout. Single content type: Core fields, then flexible blocks. Event block includes date/time and location. Reusable, can be reordered.
  9. WILL: Can you flesh out this list? List modules in order of importance.
  10. WILL: Can you provide an overview of ECK, how it works, etc. Add supporting slides as needed.
  11. WILL: Can you provide an overview of ECK, how it works, etc. Add supporting slides as needed.
  12. WILL: Can you provide an overview of ECK, how it works, etc. Add supporting slides as needed.
  13. WILL: Can you provide an overview of ECK, how it works, etc. Add supporting slides as needed.
  14. Before we talk about fields in the Any Page content type, let’s look at a supporting entity type: Options
  15. Before we talk about fields in the Any Page content type, let’s look at a supporting entity type: Options
  16. Core fields on Any Page content type: title, tags (using Options entity reference), teaser and teaser image. Then the meat of Any Page: entity reference fields. Our structure is based on the regions in our standard page template.
  17. Core fields on Any Page content type: title, tags (using Options entity reference), teaser and teaser image. Then the meat of Any Page: entity reference fields. Our structure is based on the regions in our standard page template.
  18. Tags instead of page types. Allow multiple page type tags.
  19. Teaser: recommend requiring since there’s no body field to use as fallback for teaser.
  20. Now, we’ll turn our attention to the Any Blocks, the entities that are referenced in the Entity Reference fields.
  21. Except for Text block, each is focused on a single bit of functionality.
  22. Add features on text block, the workhorse of Any Page.
  23. WILL: can you add details on how it works, considerations in use, configuration, etc? Feel free to add supporting slides.
  24. WILL: can you add details on how it works, considerations in use, configuration, etc? Feel free to add supporting slides.
  25. WILL: can you add information on technical considerations, such as performance, search, commerce, data integrity
  26. Anypage Demo: http://bcns:bcnsdev@fldrupalcamp.bcns.devops.ourdrop.com/ Any Page content type Review Entity reference fields Note default fields for sidebars and content top Briefly review display Introduce two entity types Any Block bundles Review Any Text block: show fields groups, usability for content editor, layout and styling options for each group Review Any Text display: use of Display Suite, different display modes available for regions and/or views