the state of drupal 8
DESCRIPTION
Drupal 8 development is underway, and there are some very exciting things coming down the pipe. I'll bring you up to speed with what's going on in the major Drupal 8 Core initiatives and by the time we're finished, you will have tangible ways to get involved in the next iteration of Drupal.This presentation is based on webchick's Drupal 8 slides. Since Drupal 8 is under very active development, the slides/presentation will change between now and the time I give it. I will upload the new version too.TRANSCRIPT
hook_future_alter()hook_future_alter()A preview of Drupal 8, and how you can help. A preview of Drupal 8, and how you can help. June 22,2012 - Drupaldelphia June 22,2012 - Drupaldelphia
AgendaAgenda
Drupal 8 timelineDrupal 8 timeline
What’s planned for Drupal 8 for...What’s planned for Drupal 8 for...
End Users and Clients?End Users and Clients?
Site Builders?Site Builders?
Designers and Themers?Designers and Themers?
Developers?Developers?
How can YOU help?How can YOU help?
WaT?WaT?
A Drupal 8 talk?! A Drupal 8 talk?!
But I just started using But I just started using Drupal 7!Drupal 7!
Drupal 8 TimelineDrupal 8 Timeline
Feature freezeFeature freezeFeature freezeFeature freeze
Dec 1, 2012Dec 1, 2012
Drupal 7.0Drupal 7.0Drupal 7.0Drupal 7.0
Jan 5, 2011Jan 5, 2011
Mar 10, 2011Mar 10, 2011
Development Development BeginsBegins
Development Development BeginsBegins Code freezeCode freezeCode freezeCode freeze
Feb 1, 2013Feb 1, 2013
Drupal 8.0Drupal 8.0Drupal 8.0Drupal 8.0
Aug, 2013Aug, 2013
nownownownow
June, 2012June, 2012
Feature freezeFeature freezeFeature freezeFeature freeze
Disclaimer: This stuff is actively undergoing development. Disclaimer: This stuff is actively undergoing development. 100% accuracy not guaranteed.100% accuracy not guaranteed.
Remember:Remember:None of this happens None of this happens without YOUR help!without YOUR help!
Time to kick ass Time to kick ass with Drupal 8!with Drupal 8!
End Users and End Users and ClientsClients
In Development forIn Development for
MobileMobile
MobileMobile25X growth 25X growth
over next 5 years!over next 5 years!
All Drupal All Drupal sitessites
All CMS All CMS sitessites
All sitesAll sites
What problems are we trying to What problems are we trying to solve?solve?
Ooglay! :(Ooglay! :(
Responsive Design - Mobile Responsive Design - Mobile FirstFirst
http://groups.drupal.org/node/232653
Source: Source: http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/
http://drupal.org/project/issues/search/drupal?issue_tags=frontend+performance
Front-end Performance++Front-end Performance++
How can I help?How can I help?
LeadLead John Albin WilkinsJohn Albin Wilkins
Issue tagIssue tag mobilemobile
NewsNews http://groups.drupal.org/mohttp://groups.drupal.org/mobilebile
IRCIRC #drupal-mobile#drupal-mobile
MeetingsMeetings Every other Every other WednesdayWednesday
Authoring Experience Authoring Experience ImprovementsImprovements
20122012 20132013
AugAugFeb 1Feb 1Dec 1Dec 1Feature freezeFeature freeze Code freezeCode freeze
Authoring experience Authoring experience timelinetimeline
Analysisphase
Apr-May
Analysisphase
Apr-May
Designphase
Jun-July
Designphase
Jun-July
Implementationphase
Aug-Nov
Implementationphase
Aug-Nov
ReleaseRelease
Authoring experience Authoring experience timelinetimeline
Content creation page++Content creation page++http://drupal.org/node/1510532
http://buytaert.net/spark-update-in-line-editing-in-drupal
In-place EditingIn-place Editing
How can I help?How can I help?
LeadsLeads Bojhan Somers & Bojhan Somers & Roy ScholtenRoy Scholten
Issue tagIssue tag UsabilityUsability
NewsNews http://groups.drupal.org/http://groups.drupal.org/usabilityusability
IRCIRC #drupal-usability#drupal-usability
MeetingsMeetings Every other Every other MondayMonday
Proposed Proposed changes for changes for site builderssite builders
MultilingualMultilingualIt’s like i18n in core, but betterIt’s like i18n in core, but betterIt’s like i18n in core, but betterIt’s like i18n in core, but better
What’s the plan for What’s the plan for Drupal 8?Drupal 8?
What’s the plan for Drupal What’s the plan for Drupal 8?8?
How can I help?How can I help?
LeadLead Gábor HojstyGábor Hojsty
Issue tagIssue tag d8mid8mi
NewsNews http://groups.drupal.org/ihttp://groups.drupal.org/i18n18n
IRCIRC #drupal-i18n#drupal-i18n
MeetingsMeetings Every other Every other WednesdayWednesday
Blocks and Layouts Blocks and Layouts (SCOTCH)(SCOTCH)
It’s like Panels in core, but betterIt’s like Panels in core, but better
What problems are we What problems are we trying to solve?trying to solve?
Inconsistency; some stuff Inconsistency; some stuff on page is blocks, others on page is blocks, others special theme variables, special theme variables, and then “content” area.and then “content” area.
Only one (bendy) layout.Only one (bendy) layout.
Layout built “inside out”; Layout built “inside out”; blocks lack context of blocks lack context of overall pageoverall page
Blocks can’t be re-used in Blocks can’t be re-used in multiple instancesmultiple instances
What’s the plan for Drupal What’s the plan for Drupal 8?8?
Layout built “outside Layout built “outside in”; necessary context in”; necessary context provided to blocksprovided to blocks
EverythingEverything on page is a on page is a block (or a layout, or a block (or a layout, or a nested layout)nested layout)
Blocks rendered Blocks rendered independently, independently, supporting ESI cachingsupporting ESI caching
What’s the plan for Drupal What’s the plan for Drupal 8?8?
Panels in core; well, more or lessPanels in core; well, more or less
Page managerPage manager
Plugins system - CToolsPlugins system - CTools
Content types, access, context, relationshipContent types, access, context, relationship
See the code: See the code: http://drupal.org/sandbox/eclipsegc/1441840http://drupal.org/sandbox/eclipsegc/1441840
How can I help?How can I help?
LeadLead Kris “EclipseGc” Kris “EclipseGc” VanderwaterVanderwater
Issue tagIssue tag scotchscotch
NewsNews http://groups.drupal.org/http://groups.drupal.org/scotchscotch
IRCIRC #drupal-scotch#drupal-scotch
MeetingsMeetings Every Friday, all Every Friday, all dayday
ViewsViewsOMG Views in OMG Views in CORECORE!!!!!!
What problems are we trying to What problems are we trying to solve?solve?
Drupal 7 releasedDrupal 7 releasedDrupal 7 releasedDrupal 7 released
January 2011January 2011
People start using People start using itit
People start using People start using itit
July 2011July 2011
......
Surpasses Drupal Surpasses Drupal 66
Surpasses Drupal Surpasses Drupal 66
February 2012February 2012
13 months!13 months!
What problems are we trying to What problems are we trying to solve?solve?
What’s the plan for Drupal What’s the plan for Drupal 8?8?
It already works - 8.x branches alive and kicking!It already works - 8.x branches alive and kicking!
Major parts of CTools in coreMajor parts of CTools in core
API hardening: Ensure configuration and plugin systems API hardening: Ensure configuration and plugin systems work for Views’s use casework for Views’s use case
Incorporate Views UI patterns for coreIncorporate Views UI patterns for core
How can I help?How can I help?
http://www.angrydonuts.com/help-fund-views-in-core
LeadLead Earl MilesEarl Miles
Issue tagIssue tag vdcvdc
NewsNews http://drupal.org/commuhttp://drupal.org/community-initiatives/drupal-cornity-initiatives/drupal-core/vdce/vdc
IRCIRC #drupal-vdc#drupal-vdc
MeetingsMeetings Every Friday, all Every Friday, all dayday
Changes for designers and Changes for designers and front-end developersfront-end developers
HTML5 Form ElementsHTML5 Form Elements
$form['telephone'] = array( ''#type#type' ' =>=> ' 'teltel',', ''#title#title' ' =>=> tt((''PhonePhone'')),, );
$form['telephone'] = array( ''#type#type' ' =>=> ' 'teltel',', ''#title#title' ' =>=> tt((''PhonePhone'')),, );
$$formform[[''websitewebsite'']] == arrayarray(( ''#type#type' ' =>=> ' 'urlurl',', ''#title#title' ' =>=> tt((''WebsiteWebsite'')),, ));;
$$formform[[''websitewebsite'']] == arrayarray(( ''#type#type' ' =>=> ' 'urlurl',', ''#title#title' ' =>=> tt((''WebsiteWebsite'')),, ));;
$$formform[[''emailemail'']] == arrayarray(( ''#type#type' ' =>=> ' 'emailemail',', ''#title#title' ' =>=> tt((''EmailEmail'')),, ));;
$$formform[[''emailemail'']] == arrayarray(( ''#type#type' ' =>=> ' 'emailemail',', ''#title#title' ' =>=> tt((''EmailEmail'')),, ));;
$$formform[[''ticketstickets'']] == arrayarray(( ''#type#type' ' =>=> ' 'numbernumber',', ''#title#title' ' =>=> tt((''Tickets requiredTickets required ' ')),, ));;
$$formform[[''ticketstickets'']] == arrayarray(( ''#type#type' ' =>=> ' 'numbernumber',', ''#title#title' ' =>=> tt((''Tickets requiredTickets required ' ')),, ));;
<!DOCTYPE html><!DOCTYPE html><<htmlhtml<?php<?php print print $$html_attributeshtml_attributes;; ?>?>>> <<headhead>> <?php<?php print print $$headhead; ; ?>?> <?php<?php if if (($$default_mobile_metatagsdefault_mobile_metatags)):: ?>?> <<metameta namename=="MobileOptimized""MobileOptimized" contentcontent=="width""width" />/> <<meta meta namename=="HandheldFriendly""HandheldFriendly" contentcontent=="true""true" />/> <<meta meta namename=="viewport""viewport" contentcontent=="width=device-width""width=device-width" />/> <<meta meta http-equivhttp-equiv=="cleartype""cleartype" contentcontent=="on" "on" />/> <?php <?php endifendif; ; ?>?> <<titletitle>> <?php <?php print print $$head_titlehead_title; ; ?>?></</titletitle>> <?php<?php print print $$stylesstyles; ; ?>?> <?php<?php print print $$scriptsscripts; ; ?>?> </</headhead>> <body <body class="<?php print $classes; ?>" <?php print class="<?php print $classes; ?>" <?php print $body_attributes;?>> <div id="skip-link"> <a $body_attributes;?>> <div id="skip-link"> <a href="#main-content" class="element-invisible element-href="#main-content" class="element-invisible element-focusable"><?php print t('Skip to main content'); ?></a> focusable"><?php print t('Skip to main content'); ?></a> </div> <?php print $page_top; ?> <?php print $page; ?> </div> <?php print $page_top; ?> <?php print $page; ?> <?php print $page_bottom; ?> </body></html><?php print $page_bottom; ?> </body></html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language; ?>" version="XHTML+RDFa 1.0" dir="<?php print $language->dir; ?>"<?php print $rdf_namespaces; ?>><head profile="<?php print $grddl_profile; ?>"> <?php print $head; ?> <title> <?php print $head_title; ?></title> <?php print $styles; ?> <?php print $scripts; ?></head><body class="<?php print $classes; ?>" <?php print $attributes;?>> <div id="skip-link"> <a href="#main-content" class="element-invisible element-focusable"><?php print t('Skip to main content'); ?></a> </div> <?php print $page_top; ?> <?php print $page; ?> <?php print $page_bottom; ?></body></html>
Drupal 7Drupal 7 Drupal 8Drupal 8
Markup cleanupMarkup cleanup
Standard Standard ComponentsComponents
http://jacine.github.com/drupal/demo/
TwigTwig
http://drupal.org/node/1499460
Drupal Drupal 77
<?php<?php if if ( ($$contentcontent)):: ?> ?> <<divdiv classclass==""<?<?phpphp printprint $$classesclasses;; ?>?>"">> <?php <?php printprint $$contentcontent;; ?> ?> </</divdiv>><?php <?php endifendif;; ?> ?>
region.tpl.phregion.tpl.phpp
Drupal 8Drupal 8
{% {% ifif contentcontent %} %} <<divdiv {{ {{ attributesattributes }} }}>> {{ {{ contentcontent }} }} </</divdiv>>{% {% endifendif %} %}
region.twigregion.twig
http://symfony.com/doc/current/book/templating.html
Changes for Changes for coderscoders
01110111 01101001 01101100 01101100 00100000 01100011 01101111 01100100 01100101 00100000 01110000 01101000 01110000 00100000 01100110 01101111 01110010 00100000 01100110 01101111 01101111 01100100
01110111 01101001 01101100 01101100 00100000 01100011 01101111 01100100 01100101 00100000 01110000 01101000 01110000 00100000 01100110 01101111 01110010 00100000 01100110 01101111 01101111 01100100
Warning:Warning:Things are about to get... Things are about to get... geekygeeky..
Web Services (WSCCI)Web Services (WSCCI)
It’s like Services It’s like Services module in core, only module in core, only better.better.
What problems are we What problems are we trying to solve?trying to solve?
What problems are we trying to What problems are we trying to solve?solve?
What’s the What’s the plan for plan for Drupal 8?Drupal 8?
Tutorial: Tutorial: http://fabien.potencier.org/article/50/create-your-own-framework-on-top-of-the-symfony2-components-part-1
Web ServicesWeb Services
LeadLead Larry “Larry “CrellCrell” ” GarfieldGarfield
Issue tagIssue tag WSCCIWSCCI
NewsNews http://groups.drupal.org/http://groups.drupal.org/wscciwscci
IRCIRC #drupal-wscci#drupal-wscci
MeetingsMeetings Every other Every other TuesdayTuesday
Configuration ManagementConfiguration ManagementIt’s like Features module in core, only better.It’s like Features module in core, only better.
What problems are we trying to What problems are we trying to solve?solve?
node/4node/4 node/4node/4
DangerDanger!!
What problems are we trying to What problems are we trying to solve?solve?
variable_set()variable_set()variable_get()variable_get()
ctools_export_object()ctools_export_object()ctools_export_load_object()ctools_export_load_object()
db_select()db_select()db_update()db_update()db_delete()db_delete()
$conf[...];$conf[...];
hook_update_N()hook_update_N()
drush fudrush fu
What’s the plan for Drupal What’s the plan for Drupal 8?8?
http://heyrocker.com/how-use-drupal-8-configuration-system
What’s the plan for Drupal 8?What’s the plan for Drupal 8?
http://heyrocker.com/how-use-drupal-8-configuration-system
Configuration Configuration ManagementManagement
LeadLead Greg “Greg “heyrockerheyrocker” ” DunlapDunlap
Issue tagIssue tag Configuration systeConfiguration systemm
NewsNews http://groups.drupal.org/http://groups.drupal.org/cmicmi
IRCIRC #drupal-cmi#drupal-cmi
MeetingsMeetings Every other Every other TuesdayTuesday
Other stuffOther stuff
PSR-0PSR-0
Getting OOPy with it!Getting OOPy with it!
Entity API++Entity API++
More fasterer testbot!More fasterer testbot!
File/Media API improvementsFile/Media API improvements
and more!and more!
Gotta catch ‘em all!Gotta catch ‘em all!
http://drupal.org/list-changes
Huge round of applauseHuge round of applause
...to ...to OverOver 600600 contributors contributors so far!so far!
Obligatory picture ofObligatory picture of scary cloudsscary clouds andand
dire dire warningswarnings..
Join us!Join us!
Anytime, in Anytime, in #drupal-contribute#drupal-contribute on IRC! on IRC!
Tuesdays and Wednesdays in #drupalTuesdays and Wednesdays in #drupal★ Hand-holding for all of your newbie questions!Hand-holding for all of your newbie questions!★ Tasks for non-coders as well!Tasks for non-coders as well!
http://drupal.org/core-mentoring-hourshttp://drupal.org/core-mentoring-hours
Fridays in #drupalFridays in #drupal★ WWork on most important tasks for each ork on most important tasks for each
initiative with really smart people.initiative with really smart people.http://drupal.org/core-windsprintshttp://drupal.org/core-windsprints
Most Important StuffMost Important Stuff
http://drupal.org/community-initiatives/drupal-corehttp://drupal.org/community-initiatives/drupal-core
Time to kick ass Time to kick ass with Drupal 8!with Drupal 8!
Slide CreditsSlide Credits
Angela “webchick” ByronAngela “webchick” Byron
Kristof De JaegerKristof De Jaeger
Jen LamptonJen Lampton
Dries BuytaertDries Buytaert
Gábor HojtsyGábor Hojtsy
Larry GarfieldLarry Garfield
Thank you!Thank you!Questions? :)Questions? :)