drupal

85
Drupal Ruben Teijeiro - @rteijeiro

Upload: ruben-teijeiro

Post on 16-Jul-2015

356 views

Category:

Technology


0 download

TRANSCRIPT

Drupal

Ruben Teijeiro - @rteijeiro

Who am I?

©Tieto Corporation

Ruben Teijeiro - Drupal Hero at Tieto

1st Computer: MSX SVI-7281st Language: Logo (at age 8)

From Spain, where I worked on relevant Drupal projects like Unicef and Telefonica.

Moved to Stockholm two years ago to work on Ericsson Intranet project built with Drupal.

Joined Tieto in November 2014.

Ruben Teijeiro - @rteijeiro

CEM SolutionsSenior Software Architect

What is Drupal?

©Tieto Corporation

What is Drupal?

Ruben Teijeiro - @rteijeiro

80% CMS*

* Content Management System

©Tieto Corporation

What is Drupal?

Ruben Teijeiro - @rteijeiro

20% CMF*

80% CMS

* Content Management Framework

©Tieto Corporation

What is Drupal?

Ruben Teijeiro - @rteijeiro

100% Open Source

Drupal in Numbers

©Tieto Corporation

Weekly Project Usage

Ruben Teijeiro - @rteijeiro

https://www.drupal.org/project/usage/drupal

©Tieto Corporation

Project Usage

Ruben Teijeiro - @rteijeiro

Drupal 8 Beta Releaseat

DrupalCon Amsterdam

https://www.drupal.org/project/usage/drupal

©Tieto Corporation Ruben Teijeiro - @rteijeiro

http://w3techs.com/technologies/history_overview/content_management/all/y

CMS Usage Trends

©Tieto Corporation Ruben Teijeiro - @rteijeiro

http://w3techs.com/technologies/history_overview/content_management/ms/y

CMS Market Share

©Tieto Corporation

Market Position

Ruben Teijeiro - @rteijeiro

http://w3techs.com/technologies/market/content_management

Fewer sites but highest traffic

©Tieto Corporation

Server Side Programming Languages

Ruben Teijeiro - @rteijeiro

http://w3techs.com/technologies/history_overview/programming_language/ms/y

©Tieto Corporation

Community

Ruben Teijeiro - @rteijeiro

https://www.drupal.org/home

Who uses Drupal?

Government

©Tieto Corporation

Government

Ruben Teijeiro - @rteijeiro

Media

©Tieto Corporation

Media

Ruben Teijeiro - @rteijeiro

Retail

©Tieto Corporation

Retail

Ruben Teijeiro - @rteijeiro

Finance

©Tieto Corporation

Finance

Ruben Teijeiro - @rteijeiro

Industry

©Tieto Corporation

Industry

Ruben Teijeiro - @rteijeiro

Education

©Tieto Corporation

Education

Ruben Teijeiro - @rteijeiro

Entertainment

©Tieto Corporation

Entertainment

Ruben Teijeiro - @rteijeiro

Why Drupal isGood for You?

Cutting-edge Technologies

©Tieto Corporation

Symfony 2

Ruben Teijeiro - @rteijeiro

● Set of decoupled and reusable PHP components.

● Drupal 8 has included the following components in core:○ HttpFoundation○ HttpKernel○ Routing○ EventDispatcher○ DependencyInjection○ ClassLoader○ Serializer○ Validator○ Yaml

http://symfony.com

©Tieto Corporation

Composer

Ruben Teijeiro - @rteijeiro

https://getcomposer.org

● Tool for dependency management in PHP.

● Inspired by node’s npm and ruby’s bundler.

● Allows you to declare the libraries your project is dependant on and install them.

● Drupal 8 can be installed with all of its dependencies using Composer:

http://drupal-composer.org

©Tieto Corporation

Guzzle

Ruben Teijeiro - @rteijeiro

http://guzzlephp.org

● PHP HTTP Client that abstracts away the HTTP transport layer.

● Supports different HTTP methods like cURL, sockets, PHP’s stream wrapper...

● Manages persistent connections and simplifies POST requests with fields and files.

● Can send both synchronous and asynchronous requests using the same interface.

● Useful for integration with RESTful APIs.

©Tieto Corporation

PHPUnit

Ruben Teijeiro - @rteijeiro

https://phpunit.de

● Programmer-oriented unit testing framework for PHP.

● Drupal 8 core development is supported by multiple unit tests that verifies the consistency of the codebase.

● Easy integration with IDEs like NetBeans, Eclipse and IntelliJ IDEA.

● Supported by Continuous Integration servers like Jenkins, Hudson and Sonar.

©Tieto Corporation

Twig

Ruben Teijeiro - @rteijeiro

http://twig.sensiolabs.org

● Modern template engine for PHP, written by the creator of the Symfony framework.

● Compiles templates into plain, optimized PHP code, making it fast and secure.

● Uses a simple, template-oriented syntax, familiar to front-end developers.

● Powered by a flexible lexer and parser that allows definition of custom tags and filters and creation of a custom DSL.

©Tieto Corporation

jQuery

Ruben Teijeiro - @rteijeiro

https://jquery.com

● Fast, lightweight and feature-rich JavaScript library for easy HTML document traversal and manipulation.

● Easy-to-use API for animations, event handling and AJAX that function across a multitude of browsers.

● Drupal 8 core includes jQuery 2, jQuery UI and other libraries which are built on top of jQuery.

©Tieto Corporation

Backbone.js

Ruben Teijeiro - @rteijeiro

http://backbonejs.org

● Gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.

● Several components in Drupal 8, such as the administration toolbar, have been developed using Backbone.js.

©Tieto Corporation

Underscore.js

Ruben Teijeiro - @rteijeiro

http://underscorejs.org

● JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects.

● Ships with over 100 functions like the functional helpers: map, filter, invoke — as well as more specialized goodies like function binding, javascript templating, creating quick indexes, deep equality testing, and so on.

©Tieto Corporation

Modernizr

Ruben Teijeiro - @rteijeiro

http://modernizr.com

● JavaScript library that detects HTML5 and CSS3 features in the user’s browser.

● Makes it easy to write conditional JavaScript and CSS to handle each situation, depending on whether a browser supports a feature or not. It’s perfect for doing progressive enhancement easily.

©Tieto Corporation

CKEditor

Ruben Teijeiro - @rteijeiro

http://ckeditor.com

● CKEditor is a ready-for-use HTML text editor designed to simplify web content creation. It's a WYSIWYG editor that brings common word processor features directly to your web pages.

● Drupal 8 ships with CKEditor as the default WYSIWYG editor.

Performance

©Tieto Corporation

Performance

● Drupal 8 has an internal caching system that makes it possible to generate and store pages with different elements one time so they can be served faster in future requests.

● SmartCache optimizes how the elements are cached and how that cache is invalidated when an element has been changed, making Drupal 8 twice as fast.

● Drupal 8 rendering strategy follows the model behind Facebook BigPipe, which allows delivery of pages asynchronously, parallelizing browser rendering and server processing.

● No Javascript is loaded by default for anonymous users and CSS/JS assets can be easily aggregated and minified.

Ruben Teijeiro - @rteijeiro

Scalability

©Tieto Corporation

Scalability

● Drupal 8 is the first CMS to run on a NoSQL database such as MongoDB. It also allows for easy integration with other storage systems.

● Multisite features in Drupal make it possible to manage many sites across your organization using the same core with an easy site creation and deployment process.

● Drupal 8 integrates with most common high-availability and scalability technologies such as reverse proxies, load balancers, database replication, distributed file systems...

● It also allows for integration with Enterprise Search systems such as Elastic Search and Apache Solr.

Ruben Teijeiro - @rteijeiro

Security

©Tieto Corporation

Security

● Drupal has his own security team, responsible for detecting and fixing vulnerabilities.

● Drupal 8 includes several third-party components which are maintained by external communities with their own security teams.

● The new codebase in Drupal 8 follows the industry standard approach and is covered by unit tests, making it more reliable and secure.

● Twig, the template system in Drupal 8, sanitizes the data used in the templates and doesn’t allow the use of PHP code and database queries, reducing vulnerabilities due to SQL injection or bad programming.

Ruben Teijeiro - @rteijeiro

Mobile Friendly

©Tieto Corporation

Mobile Friendly

● Drupal 8 default themes are fully-responsive in both user and administration areas.

● The new administration toolbar has been redesigned to fit perfectly in any screen size.

● Uploaded images, including images uploaded using the WYSIWYG editor, are automatically adapted to any device.

● All the front-end elements such as forms and tables follow the best practices for responsive design to offer the best mobile-enabled user experience.

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

Responsive Default Theme

Ruben Teijeiro - @rteijeiro

● Desktop● Tablet● Smartphone

©Tieto Corporation

Responsive Admin Theme

Ruben Teijeiro - @rteijeiro

● Desktop● Tablet● Smartphone

©Tieto Corporation

Responsive Administration Toolbar

Ruben Teijeiro - @rteijeiro

● Desktop● Tablet● Smartphone

Easy Content Authoring

©Tieto Corporation

Content Authoring Made Easy

● Drupal 8 includes CKEditor as the default WYSIWYG editor that is fully customizable to fulfill all the needs.

● The improved content authoring experience includes in-place content editing features.

● The new editing interface uses a two-column layout to separate the article content from the configuration settings.

● Editors can easily create content revisions to maintain different versions of the same article that can be restored when needed.

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

Customizable WYSIWYG Editor

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

In-place Content Editing

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

Two-columns Layout Edit Interface

Ruben Teijeiro - @rteijeiro

Flexible Content Architecture

©Tieto Corporation

Flexible Content Architecture

● Drupal 8 allows creation of custom content types using different field types to store text, dates, numbers, files, etc. One field can be displayed in many different ways using custom field formatters.

● Content can be categorised using Taxonomy vocabularies, that support fields and allows term hierarchy.

● A new block system, that also support fields, allows to present content positioned in different regions of the layout.

● Custom content listings are provided by Drupal Views module, that is a complete GUI for database queries, and allows custom filtering, sorting and relationships.

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

Custom Content Types and Fields

Ruben Teijeiro - @rteijeiro

● Content Type Edit● Content Create● Content View

©Tieto Corporation

Content categorisation with Taxonomy Terms

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

Block Layout Regions

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

Block Location

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

Views as a simple SQL GUI

Ruben Teijeiro - @rteijeiro

● SELECT title, image, body● WHERE status=1 AND type=’Article’● ORDER BY authored DESC

©Tieto Corporation

Views is more than a simple SQL GUI

Ruben Teijeiro - @rteijeiro

● Define a custom Path, Menu Item and Access Permissions● Customize Pager style and items Pagination● Contextual Filters, Relationships and Exposed Filters in a Form

Content Listings in Blocks

©Tieto Corporation

Content Listings and Blocks

Ruben Teijeiro - @rteijeiro

Multilingual

©Tieto Corporation

Multilingual

● Drupal has a community of translators that create and maintain module translations to different languages.

● Drupal 8 provides out-of-the-box the necessary tools for content and interfaz translation and different methods for automatic language detection and selection.

● Content, menus, blocks and other elements can be translated to any installed language.

● Different language translations can be easily installed, modified and exported when needed.

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

Translations in Numbers

Ruben Teijeiro - @rteijeiro

https://localize.drupal.org

©Tieto Corporation

Interface Translation

Ruben Teijeiro - @rteijeiro

● Enable Modules● Add New Languages● Select Default Language

©Tieto Corporation

Language Detection

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

Content Translation

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

Language Selection

Ruben Teijeiro - @rteijeiro

● Spanish● Finnish● Hindi

Unlimited Enterprise Solutions

©Tieto Corporation

Unlimited Enterprise Solutions

● Drupal 8 includes the technology necessary to provide a RESTful API that allows for access to content, users and other elements in an standard HAML/JSON format. It also supports different authentication methods.

● The Development/Deployment process in Drupal 8 is easier thanks to the new Configuration Management that allows to export every configuration change in files that can be easily deployed using a CVS.

● Drupal 8 includes a migration tool that allows not only to migrate from Drupal 6 and 7 sites but any other platform.

● An Unit Testing framework is included in Drupal 8 and provides testing coverage to Core codebase.

Ruben Teijeiro - @rteijeiro

Additional Modules

©Tieto Corporation

Additional Modules included in Core

● Actions: Perform tasks on specific events triggered within the system.

● Activity Tracker: Enables tracking of recent content for users.

● Aggregator: Aggregates syndicated content (RSS, RDF, and Atom feeds) from external sources.

● Ban: Enables banning of IP addresses.● Book: Allows users to create and organize related

content in an outline.● Forum: Provides discussion forums.● Statistics: Logs content statistics for your site.● Syslog: Logs and records system events to syslog.● Tour: Provides guided tours.

Ruben Teijeiro - @rteijeiro

Open Source Community

Tieto also contributes to Drupal Core!!

©Tieto Corporation

Community Overview

● Drupal is run by thousands of volunteers around the world.

● Thanks to their contributions Drupal is becoming easier to use and is faster adopting new technologies that makes the project grow.

● The Community also helps people to get started and contribute.

Ruben Teijeiro - @rteijeiro

©Tieto Corporation

Tieto Contributors

● Tieto Drupal Team has five contributors to Drupal core and expects to have more due to the weekly internal training sessions.

● During these sessions the team members learn different techniques and methodologies to contribute to an Open Source project.

● The team stays updated on the latest technologies, good programming practices and coding standards.

Ruben Teijeiro - @rteijeiro

Questions?

Thanks!

Changing Perspectives