1 of 71

hook_future_alter()

A preview of Drupal 8, and how you can help.

June 2 2012, DrupalCamp Vancouver

2 of 71

About me

@webchick

3 of 71

Agenda

  • Drupal 8 timeline
  • What’s planned for Drupal 8 for...
    • End users and clients?
    • Site builders?
    • Designers and themers?
    • Developers?
  • How can YOU help?

4 of 71

WAT?

A Drupal 8 talk?! But I just started using Drupal 7!

5 of 71

Drupal 8 Timeline

Drupal 7.0

Jan 5, 2011

Development begins

Mar 10, 2011

Feature freeze

Dec 1, 2012

Code freeze

Feb 1, 2013

Drupal 8.0

Aug, 2013

6 of 71

Drupal 8 Timeline

Drupal 7.0

Development begins

Jan 5, 2011

Mar 10, 2011

Dec 1, 2012

Code freeze

Feb 1, 2013

Drupal 8.0

Aug, 2013

now

June, 2012

Feature freeze

7 of 71

Time to kick ass

with Drupal 8!

8 of 71

Disclaimer: This stuff is actively undergoing development. 100% accuracy not guaranteed.

9 of 71

Remember: None of this happens without YOUR help!

10 of 71

Major Initiatives

Analysis

Design

Development

Config Mgmt

Web services LayoutsMultilingualMobile

11 of 71

Proposed changes for end-users and clients

12 of 71

Mobile

13 of 71

Mobile

25X growth

over next 5 years!

All Drupal sites

All CMS sites

All sites

14 of 71

What problems are we trying to solve?

Ooglay! :(

15 of 71

Responsive Design, Mobile First

16 of 71

Front-end Performance++

17 of 71

How can I help?

Lead

John Albin Wilkins

Issue tag

News

IRC

#drupal-mobile

Meetings

Every other Wednesday

18 of 71

Authoring experience improvements

19 of 71

Authoring experience timeline

2012

2013

DrupalCon

Denver

Aug

Feb 1

Dec 1

Feature freeze

Code freeze

Authoring experience timeline

Analysis

phase

Apr-May

Design

phase

Jun-July

Implementation

phase

Aug-Nov

Release

DrupalCon

Munich

20 of 71

Content creation page++

http://drupal.org/node/1510532

21 of 71

Spark

22 of 71

In-place Editing

23 of 71

How can I help?

Leads

Bojhan Somers & Roy Scholten

Issue tag

News

IRC

#drupal-usability

Meetings

Every other Monday

24 of 71

Proposed changes for site builders

25 of 71

Multilingual

It’s like i18n in core, but better

26 of 71

What’s the plan for Drupal 8?

27 of 71

What’s the plan for Drupal 8?

28 of 71

How can I help?

Lead

Gábor Hojsty

Issue tag

News

IRC

#drupal-i18n

Meetings

Every other Wednesday

29 of 71

Blocks and Layouts

(SCOTCH)

It’s like Panels in core, but better

30 of 71

What problems are we trying to solve?

  • Inconsistency; some stuff on page is blocks, others special theme variables, and then “content” area.
  • Only one (bendy) layout.
  • Layout built “inside out”; blocks lack context of overall page
  • Blocks can’t be re-used in multiple instances

31 of 71

What’s the plan for Drupal 8?

  • Layout built “outside in”; necessary context provided to blocks
  • Everything on page is a block (or a layout, or a nested layout)
  • Blocks rendered independently, supporting ESI caching

32 of 71

UI?

33 of 71

What’s the plan for Drupal 8?

  • Panels in core; well, more or less
  • Page manager
  • Plugins system - CTools
  • Content types, access, context, relationship
  • See the code: http://drupal.org/sandbox/eclipsegc/1441840

34 of 71

How can I help?

Lead

Kris “EclipseGc” Vanderwater

Issue tag

News

IRC

#drupal-scotch

Meetings

Every Friday, all day

35 of 71

Mother bleeping Views in mother bleeping core!

36 of 71

What problems are we trying to solve?

Drupal 7 released

January 2011

People start using it

July 2011

...

Surpasses Drupal 6

February 2012

13 months!

37 of 71

What problems are we trying to solve?

38 of 71

What’s the plan for Drupal 8?

  • It already works - 8.x branches alive and kicking!
  • Major parts of CTools in core
  • API hardening: Ensure configuration and plugin systems work for Views’s use case
  • Incorporate Views UI patterns for core

39 of 71

How can I help?

40 of 71

Changes for designers and front-end developers

41 of 71

42 of 71

HTML5 Form Elements

$form['telephone'] = array(

'#type' => 'tel',

'#title' => t('Phone'),

);

$form['website'] = array(

'#type' => 'url',

'#title' => t('Website'),

);

$form['email'] = array(

'#type' => 'email',

'#title' => t('Email'),

);

$form['tickets'] = array(

'#type' => 'number',

'#title' => t('Tickets required'),

);

43 of 71

<!DOCTYPE html><html<?php print $html_attributes; ?>> <head> <?php print $head; ?> <?php if ($default_mobile_metatags): ?> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width" /> <meta http-equiv="cleartype" content="on" /> <?php endif; ?> <title><?php print $head_title; ?></title> <?php print $styles; ?> <?php print $scripts; ?> </head> <body class="<?php print $classes; ?>" <?php print $body_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>

<!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 7

Drupal 8

44 of 71

Markup cleanup

45 of 71

Standard Components

46 of 71

Twig

Drupal 7

<?php if ($content): ?> <div class="<?php print $classes; ?>"> <?php print $content; ?> </div><?php endif; ?>

region.tpl.php

Drupal 8

{% if content %} <div {{ attributes }}> {{ contents }} </div>{% endif %}

region.twig

47 of 71

48 of 71

Changes for coders

01110111 01101001 01101100 01101100 00100000 01100011 01101111 01100100 01100101 00100000 01110000 01101000 01110000 00100000 01100110 01101111 01110010 00100000 01100110 01101111 01101111 01100100

49 of 71

Warning:

Things are about to get... geeky.

50 of 71

Web Services

(WSCCI)

It’s like Services module in core, only better.

51 of 71

What problems are we trying to solve?

52 of 71

What problems are we trying to solve?

53 of 71

54 of 71

What’s the plan for Drupal 8?

55 of 71

Web Services

Lead

Larry “Crell” Garfield

Issue tag

News

IRC

#drupal-wscci

Meetings

Every other Tuesday

56 of 71

Configuration Management

It’s like Features module in core, only better.

57 of 71

What problems are we trying to solve?

58 of 71

What problems are we trying to solve?

59 of 71

What problems are we trying to solve?

variable_set()/variable_get()

ctools_export_object()/ctools_export_load_object()

db_select()/db_update()/db_delete()

$conf[...];

hook_update_N()

drush fu

60 of 71

What’s the plan for Drupal 8?

61 of 71

What’s the plan for Drupal 8?

62 of 71

Configuration Management

Lead

Greg “heyrocker” Dunlap

Issue tag

News

IRC

#drupal-cmi

Meetings

Every other Tuesday

63 of 71

Other stuff

  • PSR-0
  • Getting OOPy with it!
  • Entity API++
  • More fasterer testbot!
  • File/Media API improvements
  • and more!

64 of 71

Gotta catch ‘em all!

65 of 71

Huge round of applause to over 600 contributors!

Over 600 contributors so far!

66 of 71

Obligatory picture of scary clouds and dire warnings.

67 of 71

Join us!

Tuesdays and Wednesdays in #drupal

Hand-holding for all of your newbie questions!

Tasks for non-coders as well!

Fridays in #drupal

Work on most important tasks for each initiative with really smart people. :)

Anytime, in #drupal-contribute!

68 of 71

Most important stuff at any given time

69 of 71

Time to kick ass

with Drupal 8!

70 of 71

Slide Credits

  • Angela “webchick” Byron
  • Kristof De Jaeger
  • Jen Lampton
  • Dries Buytaert
  • Gábor Hojtsy
  • Larry Garfield

71 of 71

Thank you!

Questions? :)