SlideShare uma empresa Scribd logo
1 de 88
Baixar para ler offline
Drupal 8 WorkShop
Ruben Egiguren (keopx)
2015-09-11
Acerca de keopx
Drupal Developer, Software Libre enthusiast, new technologies and geek
Ruben Egiguren a.k.a. keopx
Profesional: www.isarea.com
Blog: www.keopx.net
Drupal: www.drupal.org/u/keopx
Miembro de:
• Drupal Association
• Asociación Española de Drupal
• G.D.O Basque Country
• …
Freelance
Drupal Developer
Fuente original
Thanks Ruben Teijeiro
@rteijeiro
Ruben Teijeiro - Drupal Hero at Tieto
1st Computer: MSX SVI-728
1st 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 Solutions
Senior Software Architect
http://www.tieto.com/
Thanks Tieto!
¿Qué es Drupal?
¿Qué es Drupal?
80% CMS*
* Content Management System
¿Qué es Drupal?
20% CMF*
80% CMS
* Content Management Framework
¿Qué es Drupal?
100%
Software Libre
Drupal en números
Uso semanal del proyecto
https://www.drupal.org/project/usage/drupal
Uso de proyectos
Drupal 8 Beta Release
en la
DrupalCon Amsterdam
https://www.drupal.org/project/usage/drupal
http://w3techs.com/technologies/history_overview/content_management/all/y
Tendencias de uso CMS
http://w3techs.com/technologies/history_overview/content_management/ms/y
Cuota de mercado CMS
Posición de mercado
http://w3techs.com/technologies/market/content_management
Menos sitios,
pero el tráfico
más alto
Lenguaje de programación de servidor
http://w3techs.com/technologies/history_overview/programming_language/ms/y
Comunidad
https://www.drupal.org/home
¿Quién usa Drupal?
Administración
Administración
Administración
Medios
Medios
Empresas
Empresas
Finanzas
Finanzas
Industria
Industria
Educación
Educación
Entretenimiento
Entretenimiento
¿Por qué Drupal es
bueno para ti?
Tecnologías de vanguardia
Symfony 2
● Conjunto de componentes PHP
desacoplados y reutilizables.
● Drupal 8 ha incluido los
siguientes componentes en el
núcleo:
○ HttpFoundation
○ HttpKernel
○ Routing
○ EventDispatcher
○ DependencyInjection
○ ClassLoader
○ Serializer
○ Validator
○ Yaml
http://symfony.com
Composer
https://getcomposer.org
● Herramienta para la gestión de
la dependencia en PHP.
● Inspirado node npm y bundler
de ruby.
● Permite declarar las librerías
de su proyecto de forma
dependiente e instalarlas.
● Drupal 8 se puede instalar con
todas sus dependencias
utilizando Composer:
http://drupal-composer.org
Guzzle
http://guzzlephp.org
● Cliente PHP HTTP que abstrae
la capa de transporte HTTP.
● Soporta diferentes métodos
HTTP como cURL, sockets, PHP
stream wrapper…
● Gestiona las conexiones
persistentes y simplifica las
peticiones POST con los campos
y archivos.
● Puede enviar peticiones
síncronas y asíncronas
utilizando la misma interfaz.
● Útil para la integración con las
API RESTful.
PHPUnit
https://phpunit.de
● Framework de pruebas
unitarias para PHP.
● El core de Drupal 8 dispone de
pruebas unitarias para
garantizar la consistencia de su
código.
● Integración sencilla para IDEs
como NetBeans, Eclipse e
IntelliJ IDEA.
● Soporte para servidores de
integracion continua (CI) como
Jenkins, Hudson y Sonar.
Twig
http://twig.sensiolabs.org
● Motor de plantillas moderno para
PHP, escrito por el creador del
framework Symfony.
● Compilador de plantillas en
texto plano, código PHP
optimizado, por lo que es rápido
y seguro.
● Utiliza una sintaxis simple,
orientada a plantilla, familiar
para los front-end developers.
● Dispone de un lexer flexible y un
parseador que permiten la
definición de etiquetas
personalizadas, filtros y un DSL
personalizado.
jQuery
https://jquery.com
● Libreria JavaScript rápida,
ligera y rica en funciones para
recorrer y manipular
documentos HTML.
● API de uso sencilla para
animaciones
● Manejo de eventos y AJAX para
multitud de navegadores.
● Drupal 8 core incluye jQuery 2,
jQuery UI y otras librerías para
construir sobre la tecnología
jQuery.
Backbone.js
http://backbonejs.org
● Provee de estructura a las aplicaciones web a través de
modelos con asociación de eventos personalizados
mediante estructuras clave-valor, colecciones con una
API rica en funciones, vistas con manejo de eventos y
conecta todo con tu API existente mediante un interfaz
RESTful JSON.
● Varios componentes de Drupal 8, como la barra de
herramientas de administración, se han desarrollado
utilizando Backbone.js.
Underscore.js
http://underscorejs.org
● Librería JavaScript que provee de un montón de
funciones de utilidades (manejo de colecciones, arrays,
objetos y otras funciones y utilidades)
● Incluye más de 100 funciones como los helpers: map,
filter, invoke — as como funciones de binding, plantillas
javascript, creación rápida de índices, etc.
Modernizr
http://modernizr.com
● Librería JavaScript que detecta características HTML5 y
CSS3 en el navegador del usuario.
● Hace que sea fácil escribir JavaScript y CSS, adaptándolo
dependiendo de si el navegador soporta o no la
característica.
CKEditor
http://ckeditor.com
● CKEditor es un editor de texto HTML visual, diseñado
para simplificar la creación de contenidos web. Es un
editor WYSIWYG que trae las características más
comunes de un procesador de texto (negrita, subrayado,
listas, etc).
● Drupal 8 contiene CKEditor como el editor WYSIWYG por
defecto.
Rendimiento
Rendimiento
● Drupal 8 cuenta con un sistema de almacenamiento interno de
caché que permite generar y almacenar las páginas con
diferentes elementos para que puedan ser servidas más rápido
en futuras peticiones.
● SmartCache optimiza cómo se almacenan los elementos en
caché y cómo se invalida esa caché cuando un elemento se ha
cambiado, por lo que Drupal 8 es dos veces más rápido.
● La estrategia del renderizado de Drupal 8 sigue el modelo de
Facebook BigPipe, que permite la entrega de páginas de
forma asíncrona, paralelizando el renderizado del navegador y
el procesamiento del servidor.
● El Javascript no se carga por defecto para usuarios anónimos y
los assets de CSS/JS pueden ser agregados y minimizados.
Escalabilidad
Escalabilidad
● Drupal 8 es el primer CMS que una base de datos NoSQL
como MongoDB. También permite una fácil integración
con otros sistemas de almacenamiento.
● Drupal permite gestionar muchos sitios de su
organización utilizando el mismo core con un proceso
fácil de creación de sitios e implementación.
● Drupal 8 se integra con la mayoría de las tecnologías de
alta disponibilidad y escalabilidad comunes como proxies
inversos, balanceadores de carga, la replicación de bases
de datos, sistemas de archivos distribuidos ...
● También permite la integración con los sistemas
empresariales de búsqueda como Elastic Search y Apache
Solr.
Seguridad
● Drupal tiene su propio equipo de seguridad, responsable
de detectar y corregir vulnerabilidades.
● Drupal 8 incluye varios componentes de terceros que se
mantienen por las comunidades externas con sus propios
equipos de seguridad.
● El nuevo código de Drupal 8 sigue el enfoque estándar de
la industria y está cubierto por las pruebas unitarias, lo
que es más fiable y seguro.
● Twig, el sistema de plantillas en Drupal 8, sanitiza los
datos utilizados en las plantillas y no permite el uso de
código PHP ni consultas a bases de datos, reduciendo las
vulnerabilidades debido a la inyección de SQL o mala
programación.
Seguridad
Mobile Friendly
Mobile Friendly
● Los temas predeterminados de Drupal 8 son totalmente
responsive las áreas de usuario y de la administración.
● La nueva barra de herramientas de administración ha
sido rediseñado para adaptarse perfectamente a
cualquier tamaño de pantalla.
● Las imágenes subidas, incluyendo las imágenes subidas
usando el editor WYSIWYG, se adaptan automáticamente
a cualquier dispositivo.
● Todos los elementos de front-end como formularios y
tablas siguen las mejores prácticas para el diseño
responsive para ofrecer la mejor experiencia de usuario
móvil.
Temas por defecto responsive
● Desktop
● Tablet
● Smartphone
Tema admin por defecto responsive
● Desktop
● Tablet
● Smartphone
Barra de administración responsive
● Desktop
● Tablet
● Smartphone
Creación fácil de contenidos
Creación fácil de contenidos
● Drupal 8 incluye como editor WYSIWYG por defecto
CKEditor que es totalmente personalizable para
satisfacer todas las necesidades.
● Para mejorar la experiencia de creación de contenido,
incluye funciones de edición de contenido en contexto.
● La nueva interfaz de edición utiliza un diseño de dos
columnas para separar el contenido del artículo de los
ajustes de configuración.
● Los editores pueden crear fácilmente revisiones de
contenido para mantener diferentes versiones de un
mismo artículo que se puede restaurar cuando sea
necesario.
Editor WYSIWYG personalizable
Edición de contenido en contexto
Interface de edición en dos columnas
Arquitectura flexible de
contenidos
Arquitectura flexible de contenidos
● Drupal 8 permite la creación de tipos de contenido
personalizados utilizando diferentes tipos de campo para
almacenar texto, fechas, números, archivos, etc. Un campo
puede mostrarse de muchas formas diferentes utilizando
formateadores de campos personalizados.
● El contenido puede ser categorizado utilizando taxonomías,
que apoyan a los campos y permite la jerarquización.
● Un nuevo sistema de bloques, que también apoyan los
campos, permite presentar el contenido en diferentes
regiones de la disposición.
● El módulo Views Drupal permite listados de contenido
personalizado. Es una GUI completa para consultas a la base
de datos que permite el filtrado personalizada, ordenación y
relaciones.
Tipos de contenidos y campos
personalizados
● Content Type Edit
● Content Create
● Content View
Categorización de contenidos con taxonomía
Disposición de bloques en regiones
Localización de bloques
Views como una SQL GUI simple
● SELECT title, image, body
● WHERE status=1 AND type=’Article’
● ORDER BY authored DESC
Views es más que una simple SQL GUI
● 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
Listado de contenidos y bloques
Multilenguaje
Multilenguaje
● Drupal tiene una comunidad de traductores que crean y
mantienen traducciones de los módulo a diferentes
idiomas.
● Drupal 8 ofrece out-of-the-box las herramientas
necesarias para traducir el contenido y la interfaz y
diferentes métodos para la detección automática y
selección del idioma.
● Contenido, menús, bloques y otros elementos se pueden
traducir a cualquier idioma instalado.
● Las diferentes traducciones se pueden instalar
fácilmente, modificar y exportar cuando sea necesario.
Traducciones en números
https://localize.drupal.org
Interfaz de traducciones
● Enable Modules
● Add New Languages
● Select Default Language
Detección de idiomas
Traducción de contenidos
Selección de idiomas ● Spanish
● Finnish
● Hindi
Soluciones ilimitadas para
empresas
Soluciones ilimitadas para empresas
● Drupal 8 incluye la tecnología necesaria para
proporcionar una API RESTful que permite el acceso al
contenido, los usuarios y otros elementos en un formato
estándar HAML/JSON. También es compatible con
diferentes métodos de autenticación.
● El proceso de despliegue/desarrollo en Drupal 8 es más
fácil gracias a la nueva gestión de la configuración que
permite exportar todos los cambios de configuración en
archivos que se pueden implementar con un CVS.
● Drupal 8 incluye una herramienta de migración que
permite no sólo para migrar sitios de Drupal 6 y 7 sino
también cualquier otra plataforma.
● Drupal 8 también un framework de pruebas unitarias y
provee una batería de pruebas del Core.
Módulos adicionales
Módulos adicionales incluidos en el Core
● Actions: Realizar tareas en determinados eventos
desencadenados dentro del sistema.
● Activity Tracker: Permite el seguimiento de los
contenidos recientes para los usuarios.
● Aggregator: Agregadores de contenido sindicado (RSS,
RDF y Atom) de fuentes externas.
● Ban: Permite la prohibición de direcciones IP.
● Book: Permite a los usuarios crear y organizar el
contenido relacionado en un esquema.
● Forum: Proporciona un foro de discusión.
● Statistics: Registros de las estadísticas de contenido.
● Syslog: Registro de logs y eventos del sistema para syslog.
● Tour: Tour guiado.
Comunidad Open Source
Isarea también
contribuye a
Drupal Core!!!
● Drupal cuenta con miles
de voluntarios de todo el
mundo.
● Gracias a sus
contribuciones Drupal es
cada vez más fácil de
usar y está adoptando
rápidamente nuevas
tecnologías que hacen
crecer el proyecto.
● La Comunidad también
ayuda a las personas para
empezar y contribuir.
Vista de comunidad
¿Preguntas?
Eskerrik asko
Licencia
Fuente original:
http://www.slideshare.net/rteijeiro/drupal-46481935
Ruben Teijeiro
https://www.drupal.org/u/rteijeiro
@rteijeiro
Experts in Drupal solutions | Web: www.isarea.com | Telefono: +34.630.100.444 | Email: isarea@isarea.com
Freelance
Drupal Developer
Ruben Egiguren (keopx)

Mais conteúdo relacionado

Semelhante a Drupal 8 WorkShop

Inciación a Drupal 8
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8Julian Valero
 
Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2SEAT, S.A.
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Ianpierr Miranda
 
Características de 10 lenguajes de programación
Características de 10 lenguajes de programaciónCaracterísticas de 10 lenguajes de programación
Características de 10 lenguajes de programaciónAlexa Chisaguano
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .netJefersonGuevara1
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .netJefersonGuevara1
 
Manual de instalación
Manual de instalación Manual de instalación
Manual de instalación Mafer Pinto
 
Arquitectura de referencia corregido
Arquitectura de referencia corregidoArquitectura de referencia corregido
Arquitectura de referencia corregidoJose Torres Gonzales
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidadRaelyx Cordero
 
HTML Practica de CLase PW[Repaired].pptx
HTML Practica de CLase PW[Repaired].pptxHTML Practica de CLase PW[Repaired].pptx
HTML Practica de CLase PW[Repaired].pptxJUANANTONIOMACKLISHG
 
El universo JavaScript en Drupal 8
El universo JavaScript en Drupal 8El universo JavaScript en Drupal 8
El universo JavaScript en Drupal 8Ymbra
 

Semelhante a Drupal 8 WorkShop (20)

Conociendo drupal
Conociendo drupalConociendo drupal
Conociendo drupal
 
DRUPAL
DRUPALDRUPAL
DRUPAL
 
Inciación a Drupal 8
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8
 
Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Características de 10 lenguajes de programación
Características de 10 lenguajes de programaciónCaracterísticas de 10 lenguajes de programación
Características de 10 lenguajes de programación
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
Presentación taller aplicaciones
Presentación  taller aplicacionesPresentación  taller aplicaciones
Presentación taller aplicaciones
 
Herramientas Digitales
Herramientas DigitalesHerramientas Digitales
Herramientas Digitales
 
Drupal - Introducción
Drupal - IntroducciónDrupal - Introducción
Drupal - Introducción
 
Manual de instalación
Manual de instalación Manual de instalación
Manual de instalación
 
Arquitectura de referencia corregido
Arquitectura de referencia corregidoArquitectura de referencia corregido
Arquitectura de referencia corregido
 
avanttic - webinar: WebCenter Portal (14-06-2017)
avanttic - webinar: WebCenter Portal (14-06-2017)avanttic - webinar: WebCenter Portal (14-06-2017)
avanttic - webinar: WebCenter Portal (14-06-2017)
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 
Introduccion drupal
Introduccion drupalIntroduccion drupal
Introduccion drupal
 
HTML Practica de CLase PW[Repaired].pptx
HTML Practica de CLase PW[Repaired].pptxHTML Practica de CLase PW[Repaired].pptx
HTML Practica de CLase PW[Repaired].pptx
 
Sgbd y tecnologias usadas por aplicaciones web 2
Sgbd y tecnologias usadas por aplicaciones web 2Sgbd y tecnologias usadas por aplicaciones web 2
Sgbd y tecnologias usadas por aplicaciones web 2
 
El universo JavaScript en Drupal 8
El universo JavaScript en Drupal 8El universo JavaScript en Drupal 8
El universo JavaScript en Drupal 8
 

Mais de Keopx

[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10Keopx
 
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9Keopx
 
Fucking copyright
Fucking copyrightFucking copyright
Fucking copyrightKeopx
 
Segurtasuna sarean
Segurtasuna sareanSegurtasuna sarean
Segurtasuna sareanKeopx
 
[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCI[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCIKeopx
 
[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remoto[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remotoKeopx
 
[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a Drupal[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a DrupalKeopx
 
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.orgDrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.orgKeopx
 
El poder de webform (antes yaml form)
El poder de webform (antes yaml form)El poder de webform (antes yaml form)
El poder de webform (antes yaml form)Keopx
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Keopx
 
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100Keopx
 
Contribuir a Drupal
Contribuir a DrupalContribuir a Drupal
Contribuir a DrupalKeopx
 
Contribuir a Drupal - Entorno
Contribuir a Drupal - EntornoContribuir a Drupal - Entorno
Contribuir a Drupal - EntornoKeopx
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de gitKeopx
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GITKeopx
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPKeopx
 
Drupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierreDrupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierreKeopx
 
Drupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de aperturaDrupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de aperturaKeopx
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a gitKeopx
 
Business inteligence
Business inteligenceBusiness inteligence
Business inteligenceKeopx
 

Mais de Keopx (20)

[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
 
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
 
Fucking copyright
Fucking copyrightFucking copyright
Fucking copyright
 
Segurtasuna sarean
Segurtasuna sareanSegurtasuna sarean
Segurtasuna sarean
 
[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCI[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCI
 
[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remoto[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remoto
 
[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a Drupal[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a Drupal
 
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.orgDrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
 
El poder de webform (antes yaml form)
El poder de webform (antes yaml form)El poder de webform (antes yaml form)
El poder de webform (antes yaml form)
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
 
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
 
Contribuir a Drupal
Contribuir a DrupalContribuir a Drupal
Contribuir a Drupal
 
Contribuir a Drupal - Entorno
Contribuir a Drupal - EntornoContribuir a Drupal - Entorno
Contribuir a Drupal - Entorno
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de git
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
 
Drupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierreDrupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierre
 
Drupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de aperturaDrupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de apertura
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Business inteligence
Business inteligenceBusiness inteligence
Business inteligence
 

Drupal 8 WorkShop

  • 1. Drupal 8 WorkShop Ruben Egiguren (keopx) 2015-09-11
  • 2. Acerca de keopx Drupal Developer, Software Libre enthusiast, new technologies and geek Ruben Egiguren a.k.a. keopx Profesional: www.isarea.com Blog: www.keopx.net Drupal: www.drupal.org/u/keopx Miembro de: • Drupal Association • Asociación Española de Drupal • G.D.O Basque Country • … Freelance Drupal Developer
  • 5. Ruben Teijeiro - Drupal Hero at Tieto 1st Computer: MSX SVI-728 1st 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 Solutions Senior Software Architect
  • 8. ¿Qué es Drupal? 80% CMS* * Content Management System
  • 9. ¿Qué es Drupal? 20% CMF* 80% CMS * Content Management Framework
  • 12. Uso semanal del proyecto https://www.drupal.org/project/usage/drupal
  • 13. Uso de proyectos Drupal 8 Beta Release en la DrupalCon Amsterdam https://www.drupal.org/project/usage/drupal
  • 17. Lenguaje de programación de servidor http://w3techs.com/technologies/history_overview/programming_language/ms/y
  • 35. ¿Por qué Drupal es bueno para ti?
  • 37. Symfony 2 ● Conjunto de componentes PHP desacoplados y reutilizables. ● Drupal 8 ha incluido los siguientes componentes en el núcleo: ○ HttpFoundation ○ HttpKernel ○ Routing ○ EventDispatcher ○ DependencyInjection ○ ClassLoader ○ Serializer ○ Validator ○ Yaml http://symfony.com
  • 38. Composer https://getcomposer.org ● Herramienta para la gestión de la dependencia en PHP. ● Inspirado node npm y bundler de ruby. ● Permite declarar las librerías de su proyecto de forma dependiente e instalarlas. ● Drupal 8 se puede instalar con todas sus dependencias utilizando Composer: http://drupal-composer.org
  • 39. Guzzle http://guzzlephp.org ● Cliente PHP HTTP que abstrae la capa de transporte HTTP. ● Soporta diferentes métodos HTTP como cURL, sockets, PHP stream wrapper… ● Gestiona las conexiones persistentes y simplifica las peticiones POST con los campos y archivos. ● Puede enviar peticiones síncronas y asíncronas utilizando la misma interfaz. ● Útil para la integración con las API RESTful.
  • 40. PHPUnit https://phpunit.de ● Framework de pruebas unitarias para PHP. ● El core de Drupal 8 dispone de pruebas unitarias para garantizar la consistencia de su código. ● Integración sencilla para IDEs como NetBeans, Eclipse e IntelliJ IDEA. ● Soporte para servidores de integracion continua (CI) como Jenkins, Hudson y Sonar.
  • 41. Twig http://twig.sensiolabs.org ● Motor de plantillas moderno para PHP, escrito por el creador del framework Symfony. ● Compilador de plantillas en texto plano, código PHP optimizado, por lo que es rápido y seguro. ● Utiliza una sintaxis simple, orientada a plantilla, familiar para los front-end developers. ● Dispone de un lexer flexible y un parseador que permiten la definición de etiquetas personalizadas, filtros y un DSL personalizado.
  • 42. jQuery https://jquery.com ● Libreria JavaScript rápida, ligera y rica en funciones para recorrer y manipular documentos HTML. ● API de uso sencilla para animaciones ● Manejo de eventos y AJAX para multitud de navegadores. ● Drupal 8 core incluye jQuery 2, jQuery UI y otras librerías para construir sobre la tecnología jQuery.
  • 43. Backbone.js http://backbonejs.org ● Provee de estructura a las aplicaciones web a través de modelos con asociación de eventos personalizados mediante estructuras clave-valor, colecciones con una API rica en funciones, vistas con manejo de eventos y conecta todo con tu API existente mediante un interfaz RESTful JSON. ● Varios componentes de Drupal 8, como la barra de herramientas de administración, se han desarrollado utilizando Backbone.js.
  • 44. Underscore.js http://underscorejs.org ● Librería JavaScript que provee de un montón de funciones de utilidades (manejo de colecciones, arrays, objetos y otras funciones y utilidades) ● Incluye más de 100 funciones como los helpers: map, filter, invoke — as como funciones de binding, plantillas javascript, creación rápida de índices, etc.
  • 45. Modernizr http://modernizr.com ● Librería JavaScript que detecta características HTML5 y CSS3 en el navegador del usuario. ● Hace que sea fácil escribir JavaScript y CSS, adaptándolo dependiendo de si el navegador soporta o no la característica.
  • 46. CKEditor http://ckeditor.com ● CKEditor es un editor de texto HTML visual, diseñado para simplificar la creación de contenidos web. Es un editor WYSIWYG que trae las características más comunes de un procesador de texto (negrita, subrayado, listas, etc). ● Drupal 8 contiene CKEditor como el editor WYSIWYG por defecto.
  • 48. Rendimiento ● Drupal 8 cuenta con un sistema de almacenamiento interno de caché que permite generar y almacenar las páginas con diferentes elementos para que puedan ser servidas más rápido en futuras peticiones. ● SmartCache optimiza cómo se almacenan los elementos en caché y cómo se invalida esa caché cuando un elemento se ha cambiado, por lo que Drupal 8 es dos veces más rápido. ● La estrategia del renderizado de Drupal 8 sigue el modelo de Facebook BigPipe, que permite la entrega de páginas de forma asíncrona, paralelizando el renderizado del navegador y el procesamiento del servidor. ● El Javascript no se carga por defecto para usuarios anónimos y los assets de CSS/JS pueden ser agregados y minimizados.
  • 50. Escalabilidad ● Drupal 8 es el primer CMS que una base de datos NoSQL como MongoDB. También permite una fácil integración con otros sistemas de almacenamiento. ● Drupal permite gestionar muchos sitios de su organización utilizando el mismo core con un proceso fácil de creación de sitios e implementación. ● Drupal 8 se integra con la mayoría de las tecnologías de alta disponibilidad y escalabilidad comunes como proxies inversos, balanceadores de carga, la replicación de bases de datos, sistemas de archivos distribuidos ... ● También permite la integración con los sistemas empresariales de búsqueda como Elastic Search y Apache Solr.
  • 52. ● Drupal tiene su propio equipo de seguridad, responsable de detectar y corregir vulnerabilidades. ● Drupal 8 incluye varios componentes de terceros que se mantienen por las comunidades externas con sus propios equipos de seguridad. ● El nuevo código de Drupal 8 sigue el enfoque estándar de la industria y está cubierto por las pruebas unitarias, lo que es más fiable y seguro. ● Twig, el sistema de plantillas en Drupal 8, sanitiza los datos utilizados en las plantillas y no permite el uso de código PHP ni consultas a bases de datos, reduciendo las vulnerabilidades debido a la inyección de SQL o mala programación. Seguridad
  • 54. Mobile Friendly ● Los temas predeterminados de Drupal 8 son totalmente responsive las áreas de usuario y de la administración. ● La nueva barra de herramientas de administración ha sido rediseñado para adaptarse perfectamente a cualquier tamaño de pantalla. ● Las imágenes subidas, incluyendo las imágenes subidas usando el editor WYSIWYG, se adaptan automáticamente a cualquier dispositivo. ● Todos los elementos de front-end como formularios y tablas siguen las mejores prácticas para el diseño responsive para ofrecer la mejor experiencia de usuario móvil.
  • 55. Temas por defecto responsive ● Desktop ● Tablet ● Smartphone
  • 56. Tema admin por defecto responsive ● Desktop ● Tablet ● Smartphone
  • 57. Barra de administración responsive ● Desktop ● Tablet ● Smartphone
  • 58. Creación fácil de contenidos
  • 59. Creación fácil de contenidos ● Drupal 8 incluye como editor WYSIWYG por defecto CKEditor que es totalmente personalizable para satisfacer todas las necesidades. ● Para mejorar la experiencia de creación de contenido, incluye funciones de edición de contenido en contexto. ● La nueva interfaz de edición utiliza un diseño de dos columnas para separar el contenido del artículo de los ajustes de configuración. ● Los editores pueden crear fácilmente revisiones de contenido para mantener diferentes versiones de un mismo artículo que se puede restaurar cuando sea necesario.
  • 61. Edición de contenido en contexto
  • 62. Interface de edición en dos columnas
  • 64. Arquitectura flexible de contenidos ● Drupal 8 permite la creación de tipos de contenido personalizados utilizando diferentes tipos de campo para almacenar texto, fechas, números, archivos, etc. Un campo puede mostrarse de muchas formas diferentes utilizando formateadores de campos personalizados. ● El contenido puede ser categorizado utilizando taxonomías, que apoyan a los campos y permite la jerarquización. ● Un nuevo sistema de bloques, que también apoyan los campos, permite presentar el contenido en diferentes regiones de la disposición. ● El módulo Views Drupal permite listados de contenido personalizado. Es una GUI completa para consultas a la base de datos que permite el filtrado personalizada, ordenación y relaciones.
  • 65. Tipos de contenidos y campos personalizados ● Content Type Edit ● Content Create ● Content View
  • 67. Disposición de bloques en regiones
  • 69. Views como una SQL GUI simple ● SELECT title, image, body ● WHERE status=1 AND type=’Article’ ● ORDER BY authored DESC
  • 70. Views es más que una simple SQL GUI ● 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
  • 73. Multilenguaje ● Drupal tiene una comunidad de traductores que crean y mantienen traducciones de los módulo a diferentes idiomas. ● Drupal 8 ofrece out-of-the-box las herramientas necesarias para traducir el contenido y la interfaz y diferentes métodos para la detección automática y selección del idioma. ● Contenido, menús, bloques y otros elementos se pueden traducir a cualquier idioma instalado. ● Las diferentes traducciones se pueden instalar fácilmente, modificar y exportar cuando sea necesario.
  • 75. Interfaz de traducciones ● Enable Modules ● Add New Languages ● Select Default Language
  • 78. Selección de idiomas ● Spanish ● Finnish ● Hindi
  • 80. Soluciones ilimitadas para empresas ● Drupal 8 incluye la tecnología necesaria para proporcionar una API RESTful que permite el acceso al contenido, los usuarios y otros elementos en un formato estándar HAML/JSON. También es compatible con diferentes métodos de autenticación. ● El proceso de despliegue/desarrollo en Drupal 8 es más fácil gracias a la nueva gestión de la configuración que permite exportar todos los cambios de configuración en archivos que se pueden implementar con un CVS. ● Drupal 8 incluye una herramienta de migración que permite no sólo para migrar sitios de Drupal 6 y 7 sino también cualquier otra plataforma. ● Drupal 8 también un framework de pruebas unitarias y provee una batería de pruebas del Core.
  • 82. Módulos adicionales incluidos en el Core ● Actions: Realizar tareas en determinados eventos desencadenados dentro del sistema. ● Activity Tracker: Permite el seguimiento de los contenidos recientes para los usuarios. ● Aggregator: Agregadores de contenido sindicado (RSS, RDF y Atom) de fuentes externas. ● Ban: Permite la prohibición de direcciones IP. ● Book: Permite a los usuarios crear y organizar el contenido relacionado en un esquema. ● Forum: Proporciona un foro de discusión. ● Statistics: Registros de las estadísticas de contenido. ● Syslog: Registro de logs y eventos del sistema para syslog. ● Tour: Tour guiado.
  • 83. Comunidad Open Source Isarea también contribuye a Drupal Core!!!
  • 84. ● Drupal cuenta con miles de voluntarios de todo el mundo. ● Gracias a sus contribuciones Drupal es cada vez más fácil de usar y está adoptando rápidamente nuevas tecnologías que hacen crecer el proyecto. ● La Comunidad también ayuda a las personas para empezar y contribuir. Vista de comunidad
  • 88. Experts in Drupal solutions | Web: www.isarea.com | Telefono: +34.630.100.444 | Email: isarea@isarea.com Freelance Drupal Developer Ruben Egiguren (keopx)