THE LEADER IN DRUPAL PLATFORM DESIGN AND …commons.esipfed.org/sites/default/files/Energy.gov...

Post on 04-Jun-2020

2 views 0 download

Transcript of THE LEADER IN DRUPAL PLATFORM DESIGN AND …commons.esipfed.org/sites/default/files/Energy.gov...

THE LEADER IN DRUPAL PLATFORM DESIGN AND DEVELOPMENT

Wednesday, September 19, 12

ENERGY.GOV

Wednesday, September 19, 12

WHO IS PHASE2?

Wednesday, September 19, 12

PLATFORM SPECIALISTS

Wednesday, September 19, 12

PLATFORM SPECIALISTS

Wednesday, September 19, 12

DRUPAL COMMUNITY

55 12 50+ 4Involved Drupal

Professionals

Speakers atDrupalCon

Denver

Key ModulesMaintained

DistributionsMaintained

Wednesday, September 19, 12

THE NEW ENERGY.GOVWednesday, September 19, 12

PRIMARY PROJECT GOALS• Consolidation of 100’s of office sites

• Technology

• Hosting

• Design

• Content

• Maintenance

Wednesday, September 19, 12

TECHNOLOGY GOALS• Choose the right technology for the future.

• Transform technology exercises into content exercises, especially the creation of office sites.

• Empower the content creators

Wednesday, September 19, 12

FUTURE-PROOFING THE STACK

Wednesday, September 19, 12

“”Tim O’Reilly

An invention has to make sense in the world it finishes in, not in the world it started.

Wednesday, September 19, 12

DRUPAL 7• January 5, 2011

Drupal 7 released

• April 8, 2011Energy.gov development started

• August 3, 2011Energy.gov launched

• August 2013Drupal 8 released / Drupal 6 EOL

Wednesday, September 19, 12

NEW IN DRUPAL 7• Entities and fields

• DB API and EntityFieldQuery

• Image styles

• UX improvements for administrators

• Scalability & Performance enhancements

Wednesday, September 19, 12

DRUPAL CONTRIB• Organic Groups

• Context

• Field modules (Address, Link, Date, Refereneces, etc.)

• Media

• and many, many more

Wednesday, September 19, 12

SUPPORTING TECHNOLOGY• Apache SOLR

• Memcached

• Jenkins

Wednesday, September 19, 12

OFFICE SITES

Wednesday, September 19, 12

OFFICESWednesday, September 19, 12

OFFICE SITE REQUIREMENTS• Creation & maintenance without additional

development or infrastructure.

• Separate teams for each office.

• Shared content between offices.

Wednesday, September 19, 12

ORGANIC GROUPS

Wednesday, September 19, 12

ORGANIC GROUPS• Create groups

• Content is added to groups

• Users are members of groups

• Membership-based access control

• Any fieldable entity can be a group or a member of a group.

Wednesday, September 19, 12

GROUP TYPEWednesday, September 19, 12

GROUP MEMBERSHIPWednesday, September 19, 12

OFFICES AS ORGANIC GROUPS• Each office is a taxonomy term in the

“Offices” vocabulary

• Each office can be enabled as a group

• Group-enabled offices are fully managed from this platform.

• Non-group offices contain links and information about the external site.

Wednesday, September 19, 12

OFFICESWednesday, September 19, 12

OFFICE CREATION• Create the Office taxonomy term

• Create the “Home page” node

• Create the “News page” node

• Create the “Contact Us” node

• ...

Wednesday, September 19, 12

OG TASKSWednesday, September 19, 12

EMPOWERING CONTENT CREATORS

Wednesday, September 19, 12

HURDLES• Page vs Node

• Block creation vs Block placement

• Revisions vs Drafts

Wednesday, September 19, 12

PAGES VS NODES

Wednesday, September 19, 12

PAGES VS NODES• Users think about Pages

• Pages with only blocks

• Publishing workflow doesn’t include block placements

Wednesday, September 19, 12

BLOCK REFERENCES• Block reference fields to emulate regions

• “Landing page” node types for each page layout

• Can be combined with other methods (context, core block module, etc.)

Wednesday, September 19, 12

BLOCK PLACEMENT WITHIN A PAGE NODEWednesday, September 19, 12

BLOCK PLACEMENT WITHIN A PAGE NODEWednesday, September 19, 12

BLOCK REFERENCES ALONG SIDE OTHER FIELDSWednesday, September 19, 12

Block reference fields

BLOCK REFERENCES ALONG SIDE OTHER FIELDSWednesday, September 19, 12

Text fields

BLOCK REFERENCES ALONG SIDE OTHER FIELDSWednesday, September 19, 12

BLOCK REFERENCES ON THE PAGE FORMWednesday, September 19, 12

BLOCK REFERENCES ON THE PAGE FORMWednesday, September 19, 12

BLOCK REFERENCES COMBINED WITH CONTEXTWednesday, September 19, 12

Block Reference fields

BLOCK REFERENCES COMBINED WITH CONTEXTWednesday, September 19, 12

Context

BLOCK REFERENCES COMBINED WITH CONTEXTWednesday, September 19, 12

BLOCK CREATION VS

BLOCK PLACEMENT

Wednesday, September 19, 12

USER GENERATED BLOCKS• Node-like blocks

• Fields

• Templates

• Listing blocks

• User-defined filters

• Pre-defined styles

Wednesday, September 19, 12

USER-GENERATED BLOCKSWednesday, September 19, 12

USER-GENERATED BLOCKSWednesday, September 19, 12

USER-GENERATED BLOCKSWednesday, September 19, 12

USER-GENERATED BLOCKSWednesday, September 19, 12

BEANS(BLOCK ENTITIES)

Wednesday, September 19, 12

BLOCK ENTITIES• Block types

• Fieldable

• Simple data storage for settings

• Non-admin permissions

• Data entry is familiar to users

Wednesday, September 19, 12

Wednesday, September 19, 12

Wednesday, September 19, 12

Input form for a listing bean. Explain how non-field beans work.

Wednesday, September 19, 12

Wednesday, September 19, 12

VIEW MODES• Previously called “Build modes”

• Provides multiple display options

• Out of the box

• Full content

• Teaser

• RSS

Wednesday, September 19, 12

NAMED STYLESBlock TeaserRelated Items

Wednesday, September 19, 12

EDITORIAL LISTINGS• Hand-selected listings of nodes

• Multiple Node Reference field

• View mode set in the Node Reference field settings

• Additional fields

• More link, Header text, etc.

Wednesday, September 19, 12

DATA VISUALIZATIONS

Wednesday, September 19, 12

LIBRARIES• jqPlot

http://jqplot.com/

• The Jithttp://thejit.org/

• High Chartshttp://highcharts.com/

Wednesday, September 19, 12

DataVis formatted

data

JSON

Wednesday, September 19, 12

DataVis formatted

data

JSON

DataVisAdapter

Javascript

Wednesday, September 19, 12

DataVis formatted

data

JSON

DrupalModule

PHP

DataVisAdapter

Javascript

Wednesday, September 19, 12

Wednesday, September 19, 12

Wednesday, September 19, 12

Wednesday, September 19, 12

REVISIONS VS DRAFTS

Wednesday, September 19, 12

STANDARD WORKFLOW• Draft

• Needs Review

• Approved

• Published

• Unpublished

Wednesday, September 19, 12

OTHER REQUIREMENTS• Workflow setup in code

• Exportable, API, etc.

• Multiple concurrent revisions

• Draft revisions subject to workflow

• Published revision is not editable

Wednesday, September 19, 12

OPTIONS• Workflow

• Rules

• Workbench moderation

Wednesday, September 19, 12

STATEFLOW

Wednesday, September 19, 12

REVISIONS• New nodes start as Drafts

• Published revisions are not editable

• Editing a published node creates a new draft revision

• Publishing a revision archives the current

Wednesday, September 19, 12

Wednesday, September 19, 12

API FIRST• 100% implementable from code

• State Machine

• Customize by extending

• Workflow

• States

• Events

Wednesday, September 19, 12

LARGE SCALE DRUPAL - CONTENT STAGING INITIATIVEWednesday, September 19, 12

ITERATING

Wednesday, September 19, 12

POST-LAUNCH ADDITIONS• Bean usage report

• Node Bundles

• Event Calendars

• Group Privacy

• Automatic Sitemap

• Improved Media Library

Wednesday, September 19, 12

RESOURCES• Bean

http://drupal.org/project/bean

• OG Taskshttp://drupal.org/project/og_tasks

• DataViz Javascript Adaptershttp://github.com/treehouseagency/dataviz-adapters

• Data Visualization API for Drupalhttp://drupal.org/project/data_visualization

Wednesday, September 19, 12

rlopez@phase2technology.com

Director of Engineering

ROGER LÓPEZ

QUESTIONS?

Wednesday, September 19, 12