Drupal 8
                           features


keynotes by

Andriy Podanenko http://dgo.to/@podarok
and
Andy Postnikov http://dgo.to/@andypost
15.09.2012
Core initiatives
http://drupal.org/community-initiatives/drupal-core
D8 Theming - {{ TWIG }}
http://drupal.org/sandbox/pixelmord/1750250 - Twig sandbox
     <!DOCTYPE html>
     <html>
       <head>
         <title>My Webpage</title>
       </head>
       <body>
         <ul id="navigation">
         {% for item in navigation %}
            <li><a href="{{ item.href }}">{{ item.caption }}</a></li>
         {% endfor %}
         </ul>

          <h1>My Webpage</h1>
          {{ a_variable }}
       </body>
     </html>
http://drupal.org/node/1499460 - first steps
http://groups.drupal.org/node/234793 - Twig benefits and small how-to http://twig.sensiolabs.org/doc
http://munich2012.drupal.org/content/new-theme-layer-drupal-8
http://munich2012.drupal.org/content/responsive-design-mobile-admin-front-end-performance-
updates-mobile-initiative - mobile
http://munich2012.drupal.org/content/better-javascript
Drupal 7 - before (http://groups.drupal.org/node/234793)
Drupal after 7 :) (http://groups.drupal.org/node/234793)
Plugin System (Layouts aka
SKOTCH)
http://drupal.org/node/1704454 - Plugin system

http://drupal.org/node/1637614 - D8 Plugin system docs

http://drupal.org/sandbox/eclipsegc/1441840 - Drupal 8
Blocks Everywhere sandbox by http://dgo.to/@EclipseGc

http://munich2012.drupal.org/content/drupal-blocks-layouts-initiative-scotch-
update
http://drupal.org/node/1535868 Blocks as plugins http:
//drupal.org/node/1743686 - Condition Plugin System
Drupal 7 (http://drupal.org/node/1704454)
<?php
function hook_aggregator_fetch_info() {
  return array(
     'title' => t('Default fetcher'),
     'description' => t('Default fetcher for resources available by
URL.'),
  );
}

function hook_aggregator_fetch($feed) {
  $feed->source_string = mymodule_fetch($feed->url);
}
?>
Drupal 8 (CTools)        (http://drupal.
org/node/1704454)

<?php
/**
 * @Plugin(
 * id = "aggregator",
 * title = @Translation("Default fetcher"),
 * description = @Translation("Downloads data
from a URL using Drupal's HTTP request handler.")
 *)
 */
class DefaultFetcher implements FetcherInterface {
?>
Drupal 8 blocks (needs work)                               (http:
//drupal.org/node/1535868)

<?php
namespace Drupalaggregator;

use DrupalCorePluginPluginDerivativeInterface;
use DrupalblockAbstractBlock;

class FeedBlock extends AbstractBlock implements
PluginDerivativeInterface {

public   function   access() {... }
public   function   info() {...}
public   function   configure($form, &$form_state) {..}
public   function   configureSubmit($form, &$form_state) {...}
public   function   build() {...}
?>
Language System
1.   Translations storage, batch-import
2.   Extends:
●    language,
●    locale_translation,
●    10n_update


http://munich2012.drupal.org/content/drupal-8s-
multilingual-wonderland
Entity API
http://drupal.org/node/1668820
Entity + Storable => Configurable

http://munich2012.drupal.org/content/new-
entity-and-property-api
http://drupal.org/node/1696640 - схема
http://munich2012.drupal.
org/content/importupgrade-api-core
Configuration System
http://drupal.org/node/1560060 - META
http://drupal.org/node/1667896
http://drupal.org/node/1668806

Configurable Thingies!!! commited.
http://munich2012.drupal.org/content/status-configuration-
management-initiative
System Changes
http://drupal.org/node/1703168#comment-6344116 config system

+   $config = config('locale.settings'); // Drupal 8

+   $config->set('translation.check_disabled_modules', TRUE)->save(); //D8

-   variable_set('locale_translation_check_disabled', TRUE); // Drupal 7

http://munich2012.drupal.org/program/sessions/drupal-8-what-you-need-
know
http://munich2012.drupal.org/content/improved-file-management-core
Disabled & new modules
Removed
 ● blog, profile, trigger

Changed
 ● list => options http://drupal.org/node/1691614

Added
 ● config, entity, language, xmlrpc, (ban)

node module optional
http://drupal.org/node/1183208 clean url removed

http://drupal.org/node/1782838 WYSIWYG in core
D8 & Symphony2
Symphony & PSR-0 approach
http://drupal.org/node/335411 sessions
http://groups.drupal.org/node/220269 routing (kills
hook_menu)
Dependency Injection(WSCII) http://drupal.
org/node/1539454

http://munich2012.drupal.org/content/web-services-and-
symfony-core-initiative
{{ Namespaced }} core structure




http://drupal.org/node/1724216 install profiles moved into
/core/profiles
Mobile & responsive
Documentation
http://drupal.org/documentation/mobile

UI: toolbar, wysiwyg, layout, edit, aloha,
form_builder
Drupal 8 other initiatives
●   Clean up core initative
●   Contribute to accessibility
●   Design Initiative
●   Drupal 8 User Experience
●   DrupalWTFs
●   File management (File entity in core)
●   Form API
●   HTML5 Initiative
●   Help and Curated/Official Documentation System
●   JavaScript
●   Learnability
●   Path and Path API
●   Pathauto in core
●   Performance
●   Responsive Design
●   Search module as API framework
●   Statistics
●   Testing
●   Views in Drupal Core
●   WYSIWYG
●   Useful tags/components
●   Previous Initiatives
Drupal features BoF
  http://dgo.to/@andypost
  http://dgo.to/@podarok

Drupal 8 what to wait from

  • 1.
    Drupal 8 features keynotes by Andriy Podanenko http://dgo.to/@podarok and Andy Postnikov http://dgo.to/@andypost 15.09.2012
  • 2.
  • 3.
    D8 Theming -{{ TWIG }} http://drupal.org/sandbox/pixelmord/1750250 - Twig sandbox <!DOCTYPE html> <html> <head> <title>My Webpage</title> </head> <body> <ul id="navigation"> {% for item in navigation %} <li><a href="{{ item.href }}">{{ item.caption }}</a></li> {% endfor %} </ul> <h1>My Webpage</h1> {{ a_variable }} </body> </html> http://drupal.org/node/1499460 - first steps http://groups.drupal.org/node/234793 - Twig benefits and small how-to http://twig.sensiolabs.org/doc http://munich2012.drupal.org/content/new-theme-layer-drupal-8 http://munich2012.drupal.org/content/responsive-design-mobile-admin-front-end-performance- updates-mobile-initiative - mobile http://munich2012.drupal.org/content/better-javascript
  • 4.
    Drupal 7 -before (http://groups.drupal.org/node/234793)
  • 5.
    Drupal after 7:) (http://groups.drupal.org/node/234793)
  • 6.
    Plugin System (Layoutsaka SKOTCH) http://drupal.org/node/1704454 - Plugin system http://drupal.org/node/1637614 - D8 Plugin system docs http://drupal.org/sandbox/eclipsegc/1441840 - Drupal 8 Blocks Everywhere sandbox by http://dgo.to/@EclipseGc http://munich2012.drupal.org/content/drupal-blocks-layouts-initiative-scotch- update http://drupal.org/node/1535868 Blocks as plugins http: //drupal.org/node/1743686 - Condition Plugin System
  • 7.
    Drupal 7 (http://drupal.org/node/1704454) <?php functionhook_aggregator_fetch_info() { return array( 'title' => t('Default fetcher'), 'description' => t('Default fetcher for resources available by URL.'), ); } function hook_aggregator_fetch($feed) { $feed->source_string = mymodule_fetch($feed->url); } ?>
  • 8.
    Drupal 8 (CTools) (http://drupal. org/node/1704454) <?php /** * @Plugin( * id = "aggregator", * title = @Translation("Default fetcher"), * description = @Translation("Downloads data from a URL using Drupal's HTTP request handler.") *) */ class DefaultFetcher implements FetcherInterface { ?>
  • 9.
    Drupal 8 blocks(needs work) (http: //drupal.org/node/1535868) <?php namespace Drupalaggregator; use DrupalCorePluginPluginDerivativeInterface; use DrupalblockAbstractBlock; class FeedBlock extends AbstractBlock implements PluginDerivativeInterface { public function access() {... } public function info() {...} public function configure($form, &$form_state) {..} public function configureSubmit($form, &$form_state) {...} public function build() {...} ?>
  • 10.
    Language System 1. Translations storage, batch-import 2. Extends: ● language, ● locale_translation, ● 10n_update http://munich2012.drupal.org/content/drupal-8s- multilingual-wonderland
  • 11.
    Entity API http://drupal.org/node/1668820 Entity +Storable => Configurable http://munich2012.drupal.org/content/new- entity-and-property-api http://drupal.org/node/1696640 - схема http://munich2012.drupal. org/content/importupgrade-api-core
  • 12.
    Configuration System http://drupal.org/node/1560060 -META http://drupal.org/node/1667896 http://drupal.org/node/1668806 Configurable Thingies!!! commited. http://munich2012.drupal.org/content/status-configuration- management-initiative
  • 13.
    System Changes http://drupal.org/node/1703168#comment-6344116 configsystem + $config = config('locale.settings'); // Drupal 8 + $config->set('translation.check_disabled_modules', TRUE)->save(); //D8 - variable_set('locale_translation_check_disabled', TRUE); // Drupal 7 http://munich2012.drupal.org/program/sessions/drupal-8-what-you-need- know http://munich2012.drupal.org/content/improved-file-management-core
  • 14.
    Disabled & newmodules Removed ● blog, profile, trigger Changed ● list => options http://drupal.org/node/1691614 Added ● config, entity, language, xmlrpc, (ban) node module optional http://drupal.org/node/1183208 clean url removed http://drupal.org/node/1782838 WYSIWYG in core
  • 15.
    D8 & Symphony2 Symphony& PSR-0 approach http://drupal.org/node/335411 sessions http://groups.drupal.org/node/220269 routing (kills hook_menu) Dependency Injection(WSCII) http://drupal. org/node/1539454 http://munich2012.drupal.org/content/web-services-and- symfony-core-initiative
  • 16.
    {{ Namespaced }}core structure http://drupal.org/node/1724216 install profiles moved into /core/profiles
  • 17.
    Mobile & responsive Documentation http://drupal.org/documentation/mobile UI:toolbar, wysiwyg, layout, edit, aloha, form_builder
  • 18.
    Drupal 8 otherinitiatives ● Clean up core initative ● Contribute to accessibility ● Design Initiative ● Drupal 8 User Experience ● DrupalWTFs ● File management (File entity in core) ● Form API ● HTML5 Initiative ● Help and Curated/Official Documentation System ● JavaScript ● Learnability ● Path and Path API ● Pathauto in core ● Performance ● Responsive Design ● Search module as API framework ● Statistics ● Testing ● Views in Drupal Core ● WYSIWYG ● Useful tags/components ● Previous Initiatives
  • 19.
    Drupal features BoF http://dgo.to/@andypost http://dgo.to/@podarok