SlideShare a Scribd company logo
1 of 64
Layout discovery
Drupal Summer Barcelona 2017
Luis Ortiz Ramos
Luis Ortiz Ramos
CTO de Atenea tech
●luis@ateneatech.com
●@luisortizramos
● Somos expertos en Drupal desde 2007
● Somos Siddharta, Oriol, Robert, David,
Patricia, Xavi, Rubén, Pepe, Miguel y Luis.
● Trabajamos para La Vanguardia, Thermomix,
Dexeus, Estrella Damm, Amnistía
Internacional, Médicos Sin Fronteras, Infojobs,
Greenpeace, Chupa Chups, Ayuntamiento de
Barcelona, Torres, la CUP…
● Estamos en el Citilab de Cornellà, Barcelona
● Puedes contactar con nosotros en
hola@ateneatech.com
Layout initiative
… nombre en clave “SCOTCH”
En marzo de 2012, Dries Buytaert anuncia una
nueva iniciativa: Layouts.
El líder de la iniciativa es Kris “EclipseGC”
Vanderwater
“The goal of the Layout initiative is to make all
elements on the page into contextual blocks that
can be rearranged and organized into flexible
layouts (and even layouts within layouts) through
a drag and drop interface.”
1.Contextual blocks
2.Blocks everywhere
3.Multiple page layouts
4.Partial page rendering
5.Better UI/UX to manage blocks
En marzo de 2012:
●El componente de Symfony HttpKernel no
estaba en el core
●CMI no estaba completado
●El sistema de Plugins estaba en desarrollo
En octubre de 2012 se commitean los primeros
cambios...
El ciclo de desarrollo de
Drupal 8...
...hasta 8.0.0
Algo pasó en la
Drupalcon de Barcelona
...en 2015
1.Crear una branch por cada característica
2.Solo hacer merge con la branch principal
cuando la característica esté finalizada
3. Lanzar nuevas versiones de Drupal
periódicamente
Layout Discovery está en
Drupal 8.3.0 (experimental)
...y Field Layout también
Layout Discovery
“Provides a way for modules or themes to
register layouts.”
Registrando Layouts
El caso más simple
1.Creamos el archivo
my_custom_module.layouts.yml
2. Creamos una plantilla
two_column:
label: 'Two column'
category: 'My Layouts'
template: templates/two-column
default_region: main
regions:
main:
label: Main content
sidebar:
label: Sidebar
<div class="two-column">
<div class="main-region">
{{ content.main }}
</div>
<div class="sidebar-region">
{{ content.sidebar }}
</div>
</div>
Registrando nuestra propia plantilla usando
theme
1.Registramos la plantilla usando hook_theme
2.Creamos la plantilla
3.Registramos el layout en el archivo
my_custom_module.layouts.yml
function MY_MODULE_OR_THEME_theme() {
return [
'advanced_layout_1' => [
'template' => 'templates/advanced-layout-1',
// layout_plugin expects the theme hook to be declared
with this:
'render element' => 'content',
],
];
}
advanced_layout_1:
label: Advanced Layout 1
category: My Layouts
theme: advanced_layout_1
regions:
main:
label: Main content
alternate_advanced_layout_1:
label: Advanced Layout 1
category: My Layouts
theme: advanced_layout_1__alternate
regions:
main:
label: Main content
Utilizando una clase alternativa
advanced_layout_3:
label: Advanced Layout 3
category: My Layouts
class: 'Drupalmy_custom_moduleMyLayoutClass'
template: templates/advanced-layout-3
library: my_custom_module/advanced-layout-library
regions:
main:
label: Main content
<?php
namespace Drupalmy_custom_module;
use DrupalCoreFormFormStateInterface;
use DrupalCoreLayoutLayoutDefault;
class MyLayoutClass extends LayoutDefault {
…
…
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return parent::defaultConfiguration() + [
'extra_classes' => 'Default',
];
}
…
…
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form,
FormStateInterface $form_state) {
$configuration = $this->getConfiguration();
$form['extra_classes'] = [
'#type' => 'textfield',
'#title' => $this->t('Extra classes'),
'#default_value' => $configuration['extra_classes'],
];
return $form;
}
…
…
/**
* {@inheritdoc}
*/
public function submitConfigurationForm(array &$form,
FormStateInterface $form_state) {
parent::submitConfigurationForm($form, $form_state);
$this->configuration['extra_classes'] = $form_state-
>getValue('extra_classes');
}
}
<div class="my-advanced-layout {{ settings.extra_classes }}">
<div class="main-region">
{{ content.main }}
</div>
</div>
Registrando layouts como un plugin
namespace Drupalmy_custom_modulePluginLayout;
use DrupalCoreLayoutLayoutDefault;
/**
* A very advanced custom layout.
*
* @Layout(
* id = "advanced_layout_4",
* label = @Translation("Advanced Layout 4"),
* template = "templates/advanced-layout-4",
* regions = {
* "main" = {
* "label" = @Translation("Main content"),
* }
* }
* )
*/
class AdvancedLayout4 extends LayoutDefault {
// Override any methods you'd like to customize here!
}
Registrando layouts usando derivatives
namespace Drupalmy_custom_modulePluginLayout;
use DrupalCoreLayoutLayoutDefault;
/**
* A layout from our flexible layout builder.
*
* @Layout(
* id = "flexible_layout",
* deriver = "Drupalmy_custom_modulePluginDeriverFlexibleLayoutDeriver"
* )
*/
class FlexibleLayout extends LayoutDefault {
/**
* {@inheritdoc}
*/
public function build(array $regions) {
$render_array = parent::build($regions);
…
return $render_array;
}
}
namespace Drupalmy_custom_modulePluginDeriver;
use DrupalComponentPluginDerivativeDeriverBase;
use DrupalCoreLayoutLayoutDefinition;
/**
* Makes a flexible layout for each layout config entity.
*/
class FlexibleLayoutDeriver extends DeriverBase {
…
…
/**
* {@inheritdoc}
*/
public function getDerivativeDefinitions($base_plugin_definition) {
$config_entities = [];
…
foreach ($config_entities as $entity) {
// Here we fill in any missing keys on the layout annotation.
$this->derivatives[$entity->id()] = new LayoutDefinition([
'label' => $entity->label(),
'category' => $entity->getCategory(),
'regions' => $entity->getRegions(),
]);
}
return $this->derivatives;
}
}
Utilizando Layouts
…con código
Instanciando el layout plugin manager
$layoutPluginManager = Drupal::service('plugin.manager.core.layout');
Listando layouts
$layoutPluginManager = Drupal::service('plugin.manager.core.layout');
$layoutDefinitions = $layoutPluginManager->getDefinitions();
$definedLayouts = [];
foreach ($layoutDefinitions as $key => $layoutDefinition) {
$definedLayouts[] = $layoutDefinition->getLabel();
}
return [
'#theme' => 'item_list',
'#items' => $definedLayouts,
];
Instanciando un layout
$layoutPluginManager = Drupal::service('plugin.manager.core.layout');
// Provide any configuration to the layout plugin if necessary.
$layoutInstanceConfiguration = [];
$layoutInstance = $layoutPluginManager->createInstance('layout_twocol',
$layoutInstanceConfiguration);
Renderizando layouts
$layoutPluginManager = Drupal::service('plugin.manager.core.layout');
// Provide any configuration to the layout plugin if necessary.
$layoutInstanceConfiguration = [];
$layoutInstance = $layoutPluginManager->createInstance('layout_twocol',
$layoutInstanceConfiguration);
// Build the content for your regions.
$regions = [
'top' => [
'#markup' => 'Lorem ipsum dolor sit amet...',
],
'left' => [
'#markup' => 'Stet clita kasd gubergren...',
],
'right' => [
'#markup' => 'At vero eos et accusam et justo duo dolores et ea rebum...',
],
'bottom' => [
'#markup' => 'At vero eos et accusam et justo duo dolores et ea rebum...',
],
];
// This builds the render array.
return $layoutInstance->build($regions);
Utilizando Layouts
…el resto del tiempo
●Field layouts
●Display Suite > 8.3.x
●Panels > 8.4.x
●Bootstrap layouts > 8.5.x
Futuro
1. Regiones configurables
2. Bloques como campos
3. Genera iconos de layouts automáticamente
4.Multiple page layouts
…
¡Gracias!
¿Preguntas?

More Related Content

What's hot

jQuery UI Widgets, Drag and Drop, Drupal 7 Javascript
jQuery UI Widgets, Drag and Drop, Drupal 7 JavascriptjQuery UI Widgets, Drag and Drop, Drupal 7 Javascript
jQuery UI Widgets, Drag and Drop, Drupal 7 JavascriptDarren Mothersele
 
Drupal 9 training ajax
Drupal 9 training ajaxDrupal 9 training ajax
Drupal 9 training ajaxNeelAndrew
 
Javascript foundations: variables and types
Javascript foundations: variables and typesJavascript foundations: variables and types
Javascript foundations: variables and typesJohn Hunter
 
Business News, Personal Finance and Money News
Business News, Personal Finance and Money NewsBusiness News, Personal Finance and Money News
Business News, Personal Finance and Money Newsacousticassista07
 
Business News, Personal Finance and Money News
Business News, Personal Finance and Money NewsBusiness News, Personal Finance and Money News
Business News, Personal Finance and Money Newseminentoomph4388
 
Drupal Step-by-Step: How We Built Our Training Site, Part 1
Drupal Step-by-Step: How We Built Our Training Site, Part 1Drupal Step-by-Step: How We Built Our Training Site, Part 1
Drupal Step-by-Step: How We Built Our Training Site, Part 1Acquia
 
The City Bars App with Sencha Touch 2
The City Bars App with Sencha Touch 2The City Bars App with Sencha Touch 2
The City Bars App with Sencha Touch 2James Pearce
 
Modularity and Layered Data Model
Modularity and Layered Data ModelModularity and Layered Data Model
Modularity and Layered Data ModelAttila Jenei
 
Business News, Personal Finance and Money News
Business News, Personal Finance and Money NewsBusiness News, Personal Finance and Money News
Business News, Personal Finance and Money Newsnichevidswilson85
 
Drupal Field API. Practical usage
Drupal Field API. Practical usageDrupal Field API. Practical usage
Drupal Field API. Practical usagePavel Makhrinsky
 
"Android Data Binding в массы" Михаил Анохин
"Android Data Binding в массы" Михаил Анохин"Android Data Binding в массы" Михаил Анохин
"Android Data Binding в массы" Михаил АнохинFwdays
 
Business News, Personal Finance and Money News
Business News, Personal Finance and Money NewsBusiness News, Personal Finance and Money News
Business News, Personal Finance and Money Newsblogginatl1963
 
Михаил Анохин "Data binding 2.0"
Михаил Анохин "Data binding 2.0"Михаил Анохин "Data binding 2.0"
Михаил Анохин "Data binding 2.0"Fwdays
 
Extjsslides 091216224157-phpapp02
Extjsslides 091216224157-phpapp02Extjsslides 091216224157-phpapp02
Extjsslides 091216224157-phpapp02Charles Ferentchak
 
Migrating to-Drupal-8 by Bryan Manalo
Migrating to-Drupal-8 by Bryan ManaloMigrating to-Drupal-8 by Bryan Manalo
Migrating to-Drupal-8 by Bryan ManaloPromet Source
 

What's hot (20)

Jquery
JqueryJquery
Jquery
 
jQuery UI Widgets, Drag and Drop, Drupal 7 Javascript
jQuery UI Widgets, Drag and Drop, Drupal 7 JavascriptjQuery UI Widgets, Drag and Drop, Drupal 7 Javascript
jQuery UI Widgets, Drag and Drop, Drupal 7 Javascript
 
Drupal 9 training ajax
Drupal 9 training ajaxDrupal 9 training ajax
Drupal 9 training ajax
 
Javascript foundations: variables and types
Javascript foundations: variables and typesJavascript foundations: variables and types
Javascript foundations: variables and types
 
Business News, Personal Finance and Money News
Business News, Personal Finance and Money NewsBusiness News, Personal Finance and Money News
Business News, Personal Finance and Money News
 
Business News, Personal Finance and Money News
Business News, Personal Finance and Money NewsBusiness News, Personal Finance and Money News
Business News, Personal Finance and Money News
 
Drupal Step-by-Step: How We Built Our Training Site, Part 1
Drupal Step-by-Step: How We Built Our Training Site, Part 1Drupal Step-by-Step: How We Built Our Training Site, Part 1
Drupal Step-by-Step: How We Built Our Training Site, Part 1
 
JQuery
JQueryJQuery
JQuery
 
Jquery introduction
Jquery introductionJquery introduction
Jquery introduction
 
The City Bars App with Sencha Touch 2
The City Bars App with Sencha Touch 2The City Bars App with Sencha Touch 2
The City Bars App with Sencha Touch 2
 
Modularity and Layered Data Model
Modularity and Layered Data ModelModularity and Layered Data Model
Modularity and Layered Data Model
 
Business News, Personal Finance and Money News
Business News, Personal Finance and Money NewsBusiness News, Personal Finance and Money News
Business News, Personal Finance and Money News
 
Jquery
JqueryJquery
Jquery
 
Drupal Field API. Practical usage
Drupal Field API. Practical usageDrupal Field API. Practical usage
Drupal Field API. Practical usage
 
"Android Data Binding в массы" Михаил Анохин
"Android Data Binding в массы" Михаил Анохин"Android Data Binding в массы" Михаил Анохин
"Android Data Binding в массы" Михаил Анохин
 
Business News, Personal Finance and Money News
Business News, Personal Finance and Money NewsBusiness News, Personal Finance and Money News
Business News, Personal Finance and Money News
 
Jquery Basics
Jquery BasicsJquery Basics
Jquery Basics
 
Михаил Анохин "Data binding 2.0"
Михаил Анохин "Data binding 2.0"Михаил Анохин "Data binding 2.0"
Михаил Анохин "Data binding 2.0"
 
Extjsslides 091216224157-phpapp02
Extjsslides 091216224157-phpapp02Extjsslides 091216224157-phpapp02
Extjsslides 091216224157-phpapp02
 
Migrating to-Drupal-8 by Bryan Manalo
Migrating to-Drupal-8 by Bryan ManaloMigrating to-Drupal-8 by Bryan Manalo
Migrating to-Drupal-8 by Bryan Manalo
 

Similar to Layout discovery. Drupal Summer Barcelona 2017

Speed up the site building with Drupal's Bootstrap Layout Builder
Speed up the site building with Drupal's Bootstrap Layout BuilderSpeed up the site building with Drupal's Bootstrap Layout Builder
Speed up the site building with Drupal's Bootstrap Layout BuilderDrupalCamp Kyiv
 
Extending and Customizing Open Atrium
Extending and Customizing Open AtriumExtending and Customizing Open Atrium
Extending and Customizing Open AtriumNuvole
 
Workflow Essentials for Web Development
Workflow Essentials for Web DevelopmentWorkflow Essentials for Web Development
Workflow Essentials for Web DevelopmentXavier Porter
 
D7 theming what's new - London
D7 theming what's new - LondonD7 theming what's new - London
D7 theming what's new - LondonMarek Sotak
 
Drupal Module Development - OSI Days 2010
Drupal Module Development - OSI Days 2010Drupal Module Development - OSI Days 2010
Drupal Module Development - OSI Days 2010Siva Epari
 
Drupal Module Development
Drupal Module DevelopmentDrupal Module Development
Drupal Module Developmentipsitamishra
 
Drupal vs WordPress
Drupal vs WordPressDrupal vs WordPress
Drupal vs WordPressWalter Ebert
 
8 things to know about theming in drupal 8
8 things to know about theming in drupal 88 things to know about theming in drupal 8
8 things to know about theming in drupal 8Logan Farr
 
Drupal 7 Theming - Behind the scenes
Drupal 7 Theming - Behind the scenes Drupal 7 Theming - Behind the scenes
Drupal 7 Theming - Behind the scenes ramakesavan
 
Your Entity, Your Code
Your Entity, Your CodeYour Entity, Your Code
Your Entity, Your CodeDrupalDay
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with FeaturesNuvole
 
Display Suite: A Themers Perspective
Display Suite: A Themers PerspectiveDisplay Suite: A Themers Perspective
Display Suite: A Themers PerspectiveMediacurrent
 
First Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven DevelopmentFirst Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven DevelopmentNuvole
 
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICESONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICESDrupalCamp Kyiv
 
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and BeyondDrupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and BeyondDrupalDay
 
Extending CMS Made Simple
Extending CMS Made SimpleExtending CMS Made Simple
Extending CMS Made Simplecmsmssjg
 

Similar to Layout discovery. Drupal Summer Barcelona 2017 (20)

Speed up the site building with Drupal's Bootstrap Layout Builder
Speed up the site building with Drupal's Bootstrap Layout BuilderSpeed up the site building with Drupal's Bootstrap Layout Builder
Speed up the site building with Drupal's Bootstrap Layout Builder
 
Extending and Customizing Open Atrium
Extending and Customizing Open AtriumExtending and Customizing Open Atrium
Extending and Customizing Open Atrium
 
Workflow Essentials for Web Development
Workflow Essentials for Web DevelopmentWorkflow Essentials for Web Development
Workflow Essentials for Web Development
 
D7 theming what's new - London
D7 theming what's new - LondonD7 theming what's new - London
D7 theming what's new - London
 
Drupal Module Development - OSI Days 2010
Drupal Module Development - OSI Days 2010Drupal Module Development - OSI Days 2010
Drupal Module Development - OSI Days 2010
 
Drupal Module Development
Drupal Module DevelopmentDrupal Module Development
Drupal Module Development
 
Drupal vs WordPress
Drupal vs WordPressDrupal vs WordPress
Drupal vs WordPress
 
8 things to know about theming in drupal 8
8 things to know about theming in drupal 88 things to know about theming in drupal 8
8 things to know about theming in drupal 8
 
Drupal 7 Theming - Behind the scenes
Drupal 7 Theming - Behind the scenes Drupal 7 Theming - Behind the scenes
Drupal 7 Theming - Behind the scenes
 
Your Entity, Your Code
Your Entity, Your CodeYour Entity, Your Code
Your Entity, Your Code
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with Features
 
Display Suite: A Themers Perspective
Display Suite: A Themers PerspectiveDisplay Suite: A Themers Perspective
Display Suite: A Themers Perspective
 
First Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven DevelopmentFirst Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven Development
 
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICESONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
 
Alfredo-PUMEX
Alfredo-PUMEXAlfredo-PUMEX
Alfredo-PUMEX
 
Alfredo-PUMEX
Alfredo-PUMEXAlfredo-PUMEX
Alfredo-PUMEX
 
Alfredo-PUMEX
Alfredo-PUMEXAlfredo-PUMEX
Alfredo-PUMEX
 
Alfredo-PUMEX
Alfredo-PUMEXAlfredo-PUMEX
Alfredo-PUMEX
 
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and BeyondDrupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
Drupal Day 2012 - Automating Drupal Development: Make!les, Features and Beyond
 
Extending CMS Made Simple
Extending CMS Made SimpleExtending CMS Made Simple
Extending CMS Made Simple
 

More from Atenea tech

Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018
Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018
Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018Atenea tech
 
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8Atenea tech
 
Entidades en drupal 8
Entidades en drupal 8Entidades en drupal 8
Entidades en drupal 8Atenea tech
 
Extreme page composition with paragraphs
Extreme page composition with paragraphsExtreme page composition with paragraphs
Extreme page composition with paragraphsAtenea tech
 
Composición de páginas complejas con paragraphs
Composición de páginas complejas con paragraphsComposición de páginas complejas con paragraphs
Composición de páginas complejas con paragraphsAtenea tech
 
¿Qué es drupal?
¿Qué es drupal? ¿Qué es drupal?
¿Qué es drupal? Atenea tech
 
Entidades en drupal 8
Entidades en drupal 8Entidades en drupal 8
Entidades en drupal 8Atenea tech
 
Cultura empresarial, Open Source y Drupal
Cultura empresarial, Open Source y DrupalCultura empresarial, Open Source y Drupal
Cultura empresarial, Open Source y DrupalAtenea tech
 
Formularios en Drupal 8
Formularios en Drupal 8Formularios en Drupal 8
Formularios en Drupal 8Atenea tech
 
Introduciendo drupal 8
Introduciendo drupal 8Introduciendo drupal 8
Introduciendo drupal 8Atenea tech
 
Contratos y presupuestos en proyectos Drupal - Drupal Camp Spain 2014
Contratos y presupuestos en proyectos Drupal - Drupal Camp Spain 2014Contratos y presupuestos en proyectos Drupal - Drupal Camp Spain 2014
Contratos y presupuestos en proyectos Drupal - Drupal Camp Spain 2014Atenea tech
 
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...Atenea tech
 
Drupal: Funcionalitats i mòduls
Drupal: Funcionalitats i mòdulsDrupal: Funcionalitats i mòduls
Drupal: Funcionalitats i mòdulsAtenea tech
 
Drupal: Posada en Funcionament
Drupal: Posada en FuncionamentDrupal: Posada en Funcionament
Drupal: Posada en FuncionamentAtenea tech
 
Introducció a Drupal
Introducció a DrupalIntroducció a Drupal
Introducció a DrupalAtenea tech
 
Context vs panels
Context vs panelsContext vs panels
Context vs panelsAtenea tech
 
Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Atenea tech
 

More from Atenea tech (20)

Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018
Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018
Qué he aprendido durante 10 años vendiendo Drupal - DrupalCamp Spain 2018
 
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8
Casos de éxito con Drupal. Eada: escuela de negocios con drupal 8
 
Let’s encrypt
Let’s encryptLet’s encrypt
Let’s encrypt
 
Entidades en drupal 8
Entidades en drupal 8Entidades en drupal 8
Entidades en drupal 8
 
Extreme page composition with paragraphs
Extreme page composition with paragraphsExtreme page composition with paragraphs
Extreme page composition with paragraphs
 
Composición de páginas complejas con paragraphs
Composición de páginas complejas con paragraphsComposición de páginas complejas con paragraphs
Composición de páginas complejas con paragraphs
 
Cmi en drupal 8
Cmi en drupal 8Cmi en drupal 8
Cmi en drupal 8
 
¿Qué es drupal?
¿Qué es drupal? ¿Qué es drupal?
¿Qué es drupal?
 
Entidades en drupal 8
Entidades en drupal 8Entidades en drupal 8
Entidades en drupal 8
 
Cultura empresarial, Open Source y Drupal
Cultura empresarial, Open Source y DrupalCultura empresarial, Open Source y Drupal
Cultura empresarial, Open Source y Drupal
 
Formularios en Drupal 8
Formularios en Drupal 8Formularios en Drupal 8
Formularios en Drupal 8
 
Introduciendo drupal 8
Introduciendo drupal 8Introduciendo drupal 8
Introduciendo drupal 8
 
Contratos y presupuestos en proyectos Drupal - Drupal Camp Spain 2014
Contratos y presupuestos en proyectos Drupal - Drupal Camp Spain 2014Contratos y presupuestos en proyectos Drupal - Drupal Camp Spain 2014
Contratos y presupuestos en proyectos Drupal - Drupal Camp Spain 2014
 
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...
Éxitos y desastrosas experiencias con el agilismo en la gestión de proyectos ...
 
Drupal: Funcionalitats i mòduls
Drupal: Funcionalitats i mòdulsDrupal: Funcionalitats i mòduls
Drupal: Funcionalitats i mòduls
 
Drupal: Posada en Funcionament
Drupal: Posada en FuncionamentDrupal: Posada en Funcionament
Drupal: Posada en Funcionament
 
Introducció a Drupal
Introducció a DrupalIntroducció a Drupal
Introducció a Drupal
 
Context vs panels
Context vs panelsContext vs panels
Context vs panels
 
Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012
 
Xarxes socials
Xarxes socialsXarxes socials
Xarxes socials
 

Recently uploaded

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Recently uploaded (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Layout discovery. Drupal Summer Barcelona 2017