Proposed sessions

List of the 14 proposed sessions ordered by submission time.

  • Title: Responsive Images and Art Direction in Drupal 8
    Speaker: Cristina Chumillas
    Level: Begginer
    Languages: EN, ES, CA
    Description:

    Optimizing images can drastically decrease the page load time because, on average, 60% of a website’s page weight is made up of them. Responsive Web Design has changed how the web is built and that includes images too, because the aim is to deliver the highest quality image supported and nothing more. So today we have new standard elements and attributes to work with images widely supported by browsers (and polyfills for the rest) and Drupal has incorporated them.

    In Drupal 8 the Responsive Image module is in core and is prepared to solve a wide range of needs. And, as usually happens in Drupal, there are several contributed modules that help us to improve the basic needs or to solve the special ones, like Art Direction.

    I’ll start this session with a quick introduction about the different existing solutions for responsive images to be sure we are all at the same page. I’ll explain the difference between viewport sizing and Art Direction and how we are supposed to work with Drupal for each one, including demos. I’ll share tips and contrib modules that can make the developer and the final user lives easier.

    When you leave this session you’ll have an idea about the options offered by Drupal and enough knowledge to choose the correct one for your project.

  • Title: Nadie quiere trabajar conmigo
    Speaker: Samuel Solís
    Level: Begginer
    Languages: ES
    Description:

    No importa lo bonito que sea tu código y las capas de abstracción que tenga que si nadie quiere trabajar contigo eres un mal desarrollador.

    Al final, gran parte de nuestro trabajo está basado en la comunicación y las relaciones interpersonales: tenemos que entender unos requisitos, organizarnos con otros departamentos, colaborar con otros desarrolladores (internos o externos), etc. Si no conseguimos que estos puntos sean satisfactorios, difícilmente vamos a conseguir que nuestro código cumpla su objetivo a todos los niveles.”

    Trataremos algunos ejemplos que nos encontramos en nuestro día a día: comentar código, resolver conflictos, exponer ideas, etc.

    Esta sesión es un remix de estas dos sesiones:

    ambas impartidas en codemotinos 2016.

  • Title: Extreme page composition with Paragraphs
    Speaker: Siddharta Navarro Castellar
    Level: Begginer
    Languages: EN
    Description:

    Have you ever wanted to create a very dynamic content, with many different relative sections, but do not want a HTML guru to create this. A novice content editor may make something that looks good once but just try to make this responsive.

    The paragraphs module is changing the way we think about assembling content within Drupal. It provides a powerful tool for doing content-first based design and content management in Drupal 7 and 8.

    In this session will provide an overview of Paragraphs and show some real examples of the use of this module.

  • Title: Gestión de configuraciones con CMI (Drupal 8)
    Speaker: Robert Menetray Caballero
    Level: Intermediate
    Languages: CA, ES
    Description:

    CMI (Configuration Management Initiative) es el sustituto de Features en Drupal 8, mucho mas potente y mucho más fácil de usar.

    El beneficio de usar estas herramientas es no tener que hacer los cambios manualmente en todos los entornos en los que se trabaja (servidores de desarrollo, de test y de producción).

    Algunos temas que se tratarán serán:

    • Cómo usarlo desde interfaz y desde drush.
    • Módulos que ayudan a simplificar el trabajo.
    • Cómo sobrescribir valores para poder tener configuraciones distintas entre entornos.
    • Cómo evitar que se exporten configuraciones de algunos módulos y evitar que se activen módulos que solo deben de estar en el entorno de desarrollo.

    Se explicará qué es CMI y se hará una breve demo en vivo si hay tiempo.

  • Title: Externalizando los estáticos de Drupal 8 con Amazon S3
    Speaker: Juanen Bernal
    Level: Advanced
    Languages: ES
    Description:

    A veces por necesidades del proyecto tenemos que cambiar la forma en la que almacenamos los estáticos de nuestro Drupal.

    En esta charla veremos qué cosas debemos tener en cuenta en nuestro proyecto para realizar dicho proceso, utilizando como ejemplo el sistema de almacenamiento de Amazon S3 y Drupal 8 dando un repaso a los diferentes flujos de trabajo relacionados con el manejo de ficheros en ambos casos.

    Abordaremos los siguientes puntos:

    • Breve introducción sobre Amazon S3.
    • StreamWrappers#58; ¿Qué son y cómo nos pueden ayudar?
    • Cómo implementar nuestro nuevo sistema de almacenamiento en Drupal.
    • Migrando nuestros ficheros.
    • Adaptando nuestro proyecto#58; Buenas prácticas para manejar ficheros.
    • Cómo gestionar nuestros entornos.
    • Posibles problemas y estrategias para solucionarlos.
  • Title: Hacia rutas salvajes
    Speaker: Juanen Bernal
    Level: Intermediate
    Languages: ES
    Description:

    Routes, Controllers, Symfony, Programación Orientada a Objetos… todas estas novedades y muchas más se han encargado de dejar atrás a nuestro viejo compañero de viaje hook_menu().

    En esta charla nos adentraremos de lleno en el sistema de Routing de Drupal 8 que está basado en el potente componente de Routing de Symfony, empezando desde lo más sencillo hasta llegar a las partes más avanzadas. En esta odisea no caminaremos solos, ya que nos acompañarán diferentes ejemplos de código y diagramas de flujo para poder llegar a nuestro destino sanos y salvos :)

    Hablaremos sobre los siguientes puntos:

    • Rutas y controladores.
    • Entendiendo en profundidad los routing.yml.
    • Alterando rutas existentes.
    • Usando parámetros en las rutas.
    • Definiendo nuestro propios Parameter Converters.
    • Rutas dinámicas con Route Callbacks.
    • Rutas complejas ayudándonos con los PathProcessors.
    • Objetos relacionados con el sistema de Routing.
  • Title: Making content editors happy in D8 with Entity Browser
    Speaker: Marcos Cano
    Level: Intermediate
    Languages: ES, EN
    Description:

    Often content editors are faced with the problem of having to switch the context of their content edition to be able to create / find / select another piece of content that needs to be related to the main content they are working on. This problem in Drupal 7 was mainly treated by several different solutions, each attempting to solve it case per case.

    Entity Browser is a contrib module that was created to solve this problem in a very generic way. Developers and site-builders can leverage this module to create tools that will allow the content editor to:

    • upload multiple images / files at once;
    • select and re-use an image / file already present on the server, creating easy-to-use media libraries;
    • select a related content from an abritrary view;
    • create a related content without having to exit the main content form;
    • etc.

    In this session we will:

    • explain the basic architecture of the module;
    • see how to configure it from scratch to solve different use-cases (with some demos!);
    • check what we can copy or re-use from some existing “example” contrib modules;
    • see that it isn’t difficult to extend parts of the module to customize it to our own specific needs.

    Although not mandatory, people attending this session are expected to have basic site-building experience with Drupal 8, which will allow them to follow the demos and configuration steps more easily.

  • Title: Ultimate embedding in Drupal 8 with Entity Embed and Url Embed
    Speaker: Marcos Cano
    Level: Intermediate
    Languages: ES, EN
    Description:

    Embedding media assets (images, videos, etc) in a WYSIWYG text is a long-standing problem that was dealt with in Drupal 7 in many different (and sometimes competing) ways. Drupal 8 core comes with a very basic support for embedding images out-of-the-box, but websites nowadays need to go beyond that and provide editors with a powerful tool capable of handling any type of local or remote media assets.

    This is where the Entity Embed + Url Embed modules come to play. They were designed to be a standardized solution for embedding any entity or remote URL content in any WYSIWYG area in Drupal 8.

    In this session we will cover the architecture of these modules, benefits of having a unified solution, how to configure them, and possible integrations with other modules of the media ecosystem, such as “Media Entity” or “Entity Browser”.

    Although not mandatory, people attending this session are expected to have basic site-building experience with Drupal 8, which will allow them to follow the demos and configuration steps more easily.

  • Title: The lazy way to production
    Speaker: Carlos Jimenez
    Level: Intermediate
    Languages: EN
    Description:

    I’ll show how to deploy to production when you only press the button merge pull request.

    The tools I will explain in this session will be:

    • https://concourse.ci/ for build the pipeline
    • https://platform.sh/ for deploying environment
    • tests performance, behavior, visual regression, security or whatever you want!
    • syncs & backups/snapshots
  • Title: Better dependency management: leverage composer for good
    Speaker: Rodrigo Aguilera
    Level: Intermediate
    Languages: ES, EN
    Description:

    Drush make days are over. Drupal in its effort to “get off the island” has adopted a new but popular tool for dependency management in the PHP ecosystem: composer.

    I will go through the basics of how to use this tool quickly and some interesting features like caching, semantic versioning, class autoloading, etc.

    The I will folllow with the main ways I found to leverage composer and do more with it:

    • Scaffold your Drupal project (initializing)
    • Apply patches from the community to Drupal core and modules
    • Differentiate dependencies for development from the rest
    • Get exact same version of libraries for all developers
    • Download frontend libraries
    • Download compiled binary tools for my machine.

    And if the time allows we can open a discussion about good practices and tricks to make our composer experience better.

  • Title: SEO y marketing para Drupal
    Speaker: Cinta Màdico
    Level: Begginner
    Languages: CA, ES
    Description:

    Drupal cuenta con un montón de módulos que permiten optimizar el posicionamiento en buscadores de los sites construidos en Drupal.

    El módulo SEO checklist nos puede ayudar a llevar el control de qué módulos hemos instalado y configurado en nuestro site.

    En la sesión revisaremos algunas de las herramientas disponibles para Drupal 8, repasaremos las recomendaciones más importantes para el posicionamiento en buscadores y ofreceremos también algunos tips sobre la medición de resultados mediante Google Tag Manager y Google Analytics. También daremos una pincelada sobre lo que es AMP y cómo puede ayudarnos a un buen posicionamiento de nuestra web para móviles.

    Esta es una sesión pensada tanto para desarrolladores y sitebuilders Drupal que quieran conocer las herramientas SEO como para responsables de contenidos o de marketing que trabajan con Drupal u otros CMS y con Google Analytics.

  • Title: Jugando con Form API en D8
    Speaker: Samuel Solís
    Level: Intermediate
    Languages: ES
    Description:

    Form API es una de las cosas que menos ha evolucionado desde Drupal 6 y el principal motivo es que funciona y que lo hace bien y rápido. Además el código es claro y sencillo de leer lo que hace que sea mantenible en el tiempo.

    Pero que no haya cambiado en forma no significa que no haya evolucionado ni presentado novedades, ¡Ni mucho menos! Form API en D8 es mucho más que un array con el tipo de campo y el valor por defecto.

    El objetivo de la sesión es mostrar el abanico de herramientas que ofrece Form API en Drupal 8. Comenzaremos viendo la creación de un formulario simple desde 0 (cosa que lleva 15 minutos) y acabaremos explorando las opciones que ofrece haciendo especial hincapié en Ajax api, la nueva awesónica manera de hacer un formulario dinámico y personalizado sin tirar ni una línea de Javascript (sí, en versiones anteriores también se podía, pero).

    ¿A quién va dirigida esta sesión? Está pensada para todo aquel que tenga experiencia tocando código pero no conozca las bondades de Drupal 8 en lo que a formularios se refiere. Incluso si no tocas código demasiado a menudo posíblemente captes el mensaje, ¡aunque igual cuando te pongas a probar tardes un pelín más en hacerlo funcionar! Eso sí, primero veremos código, después más código, y terminaremos viendo un poco más de código (y quizá algún gatito).

  • Title: Layout Discovery: el nuevo estándar para el registro de layouts en el núcleo de Drupal
    Speaker: Luis Ortiz Ramos
    Level: Intermediate
    Languages: CA, ES
    Description:

    Desde la versión 8.3.0, el núcleo de Drupal incluye el módulo Layout Discovery de forma experimental.

    Este módulo nos permite crear nuevos layouts de una forma sencilla, simplemente incluyendo un archivo YAML y una plantilla en nuestro módulo o tema.

    Luego, otros módulos como Display Suite, Panels o el nuevo Field Layout (también en el núcleo) los utilizan, permitiendo al administrador configurar como se muestran diferentes elementos que elementos del sitio.

    En esta sesión:

    • Contaremos la historia de los módulos que utilizan Layout Discovery
    • Explicaremos que es un Plugin, como se utilizan y que tiene que ver con Layout Discovery
    • Crearemos nuestro propio Layout sencillo
    • Repasaremos como crear Layouts avanzados
  • Title: Integrando Drupal con el ERP/CRM Dolibarr: la Alianza del OpenSource
    Speaker: Oriol Diez - Josep Lluís Amador
    Level: Intermediate
    Languages: CA, ES
    Description:

    Introducción al ERP/CRM Dolibarr, proyecto libre con licencia GPL, desarrollado con PHP, Javascript y MySQL, y con diferentes posibilidades para integrarse con Drupal para compartir datos de clientes, contactos, productos o servicios de una empresa o asociación.