4. ¿Qué es?
• Un sistema de gestión de contenidos
• Un marco de gestión de contenidos
• Una comunidad
CMS
CMF Software
libre
5. ¿Quién lo usa?
• 1.199.494 Webs
• Ejemplos:
• Drupal showcase (http://drupalshowcase.com)
• Drupal.org case studies (http://drupal.org/cases)
6.
7. • Sistema de módulos flexible
• Sistema de temas personalizable
• Sistema de contenidos y entidades extensible
• Optimización para buscadores inherente
• Permisos de acceso basado en roles
• Herramientas para la publicación y la colaboración
¿Cuáles son sus principales
características?
10. El marco mental nos puede limitar
example.com section
section
page
pagepage
page
Home page
About us
Team
Mission
News
Category
Category
News item
News item
Services
Your "mental"
site map
Imaginamos que las páginas están en carpetas físicas
11. ¿Cómo trabajan otros CMSs?
Añadimos la
página dentro de
la estructura del
site
Ejemplo con Typo3
14. Datos estructurados: Campos
In HTML:
Body text
Tags
Location
Media (video, images)
Title
Image upload
Title
Location
Tags
Body text
¿Cual de estas dos estructuras te ayuda a controlar mejor la entrada de contenidos y la forma en la
que mostramos los datos?
15. Tipos de contenidos y datos
Generic Content type settings
Title
Author
Date published
Comments
Menu options
Revisions
Article + fields:
Image
Body text
Tags
Tips + fields:
Video
Body text
Tags
Link
Tipos de contenidos: Definimos temas básicos y añadimos campos
17. Entidades en Drupal
Taxonomy termsUsers
E. Webb
Germany
J. Beeman
Spain
adventure
city break
sailing
shopping
city break
Comments
dwight
8 Sept
Wow, can't
wait to get
visit.
joe
8 Sept
Me too!
Content (nodes)
• Pet-friendly holidays
for the whole family.
• Drum and dance in
Mali.
• Indian adventure on a
river boat cruise.
• Mud baths and hot
springs of Beppu.
• Hidden Paris by night
in the winter.
Blocks
Block title
Block text here.
Some information
about something.
http://link123.com
Contact forms
Subject
Message text field.
Custom fields as
needed.
• Una entidad es una
instancia de un tipo de
entidad
• Cada entidad tiene un ID
único
• Podemos añadir campos
• Aquí tenemos algunos
ejemplos de entidades
en Drupal
18. Listas, listas, listas
• La mayoría de las webs tienen listados dinámicos de
contenido.
• Listamos usuarios, artículos por tipología, artículos más
visitados, más comentados, etc.
• Mostramos contenido por categoría (taxonomías)
46. Drupal 8 es mucho más
• Gestión de la configuración
• Migraciones de datos
• Integraciones con servicios propios y de terceros
• SEO
• Accesible (WAI-ARIA)
• Código alineado con la industria (OOP, PSR-4)
Gestor de contenidos: Una vez construida, una Web hecha con Drupal, se gestiona utilizando únicamente formularios en línea.
Marco: Además de herramientas para la construcción del sitio para administradores Web, Drupal permite a los programadores personalizarlo utilizando un sistema de módulos.
Comunidad: Más de 2.300 programadores han contribuido código a Drupal 8. Incontables contribuyen programando módulos y temas, traduciendo a más de 110 idiomas, organizando eventos, etc.
A fecha 10 de abril de 2016 según las estadísticas que recoge el módulo “Update” de forma anónima. Todas las páginas que no lo tengan activo no reportaran datos, así que realmente este número es un valor mínimo.
En vez de mostrar unos pantallazos de las típicas páginas hechas con Drupal como la de la Casa Blanca os vamos a mostrar un par de showcases para que vosotros mismos podais ver quién lo usa
En Drupal Showcase podeis encontrar multitud de ejemplos, ver las principales marcas que tienen Webs con Drupal y filtrar por sector o país
Para que una Web sea expuesta en Drupal.org case studies la candidature de su caso de studio debe pasar un proceso de aprobación. Así que no solo encontrareis ejemplos sinó descripciones muy completas de como se ha hecho cada Web, sus módulos principals y las motivaciones de su uso.
Drupal son menos webs pero más grandes.
¿Cuáles son sus principales características?
Sistema de módulos flexible: los módulos pueden modificar o añadir características a un sitio. Cualquier característica puede ser construida configurando uno o varios de ellos
Sistema de temas personalizable: todo el output que Drupal genera es personalizable, así es posible adaptarlo a las necesidades de cada sitio
Sistema de contenidos y entidades extensible: puedes definir nuevos tipos de contenidos y añadirles campos personalizados a cada uno de ellos. Algunos módulos contribuidos extienden esto creando nuevos tipos de campos y nuevas formas de manipularlos. Estos campos pueden adjuntarse a cualquier entidad del sistema, como usuarios, comentarios o términos de taxonomías
Optimización para buscadores inherente: Drupal soporta URLs legibles y todo el output que genera cumple los estándares; ambas cosas hacen que el sistema esté muy optimizado para buscadores. Otros módulos contribuidos permiten ir mucho más allá.
Permisos de acceso basado en roles: roles personalizados y un conjunto enorme de permisos permiten controlar con mucha precisión quien puede acceder a que en el sistema. Módulos contribuidos permiten extender esto aun más llegando a controlar esto a nivel de usuario.
Herramientas para la publicación y la colaboración: Drupal incluye soporte para blogs, comentarios, foros y perfiles de usuario. Casi cualquier otra característica que se pueda imaginar (como grupos o herramientas de moderación) solo están a una descarga de distancia.
Cuando pensamos en un site map, tenemos en mente que las páginas están en carpetas físicas.
Esto es una metáfora familiar, pero es una visión limitada.
Qué pasa si tus noticias aparecen en diferentes secciones? O los menús se muestran o no dependiendo en roles?
Aquí por ejemplo tenemos el ejemplo de otro CMS, Typo 3.
Modelo intuitivo pero que se qeuda corto.
Prompt: Ask the learners for their prior experience of using CMSs, what were they like?
Con Drupal pensamos diferente, pensamos en datos estructurados. Esto se llama Content entity types en Drupal 8.
Quiere decir que podremos añadir campos a estos elementos, y tener múltiples instancias de estos datos.
Por ejemplo, aquí tenemos un listado de contenido con ejemplos de páginas Drupal. Estas lista es generada, no es estática. Los editores sólo tendrán que añadir una nueva entidad y incluirla en dicha lista.
Si estructuramos el contenido tenemos un mayor control de cómo guardar los datos, y también de cómo mostrarlos.
Ejemplo: Artículo y tips
Tenemos campos básicos comunes como Título, autor, fecha de publicación.
También podemos poner cosas por defecto como comentarios, menú links, revisions, etc.
Después añadimos los campos.
Un contenido tiene diferentes view modes.
Ej:
The full article
A portion displaying on a section page as part of a more complex layout.
A search results page.
SELECT
WHERE
ORDER BY
Symfony: Conjunto de componentes PHP desacoplados y reutilizables.
Composer:
PHPUnit: Framework de pruebas unitarias para PHP
Twig: Motor de plantillas moderno para PHP.
CKEditor: Editor de texto HTML visual.
Backbone JS: ??
Todos los temas del nucleo son responsive
El módulo picture permite usar imágenes responsive de HTML5
El módulo breakpoint permite controlar los puntos de corte
La barra de navegación es responsive, oculta los textos al verse en pantallas pequeñas y la segunda barra pasa de ser horizontal a vertical.
Se utilizan tablas responsive
Multiidioma desde la instalación
Descarga automática de traducciones.
Drupal tiene una comunidad de traductores que crean y mantienen traducciones de los módulos a diferentes idiomas.
Traducción de entidades
Se puede traducir campo a campo y no solo contenidos, sino también bloques, términos, usuarios…
Sistema interno de caché
SmartCaché: Optimiza cómo se almacenan los elementos en caché y cómo se invalida esa caché cuando un elemento se ha cambido. Drupal 8 2x más rápido que Drupal 7.
Big Pipe
Agregación de CSS/Javascript
Demo en la página de proyecto
Drupal tiene su equipo de seguridad propio, responsable de detectar y corregir vulnerabilidades.
Componentes externos => Equipos de seguridad de los componentes de terceros
Pruebas unitarias hacen el código más seguro
Twig sanitiza los datos y no permite uso de código PHP ni consultas a BBDD (SQL injection)
Panama papers
Drupal tiene su equipo de seguridad propio, responsable de detectar y corregir vulnerabilidades.
Componentes externos => Equipos de seguridad de los componentes de terceros
Pruebas unitarias hacen el código más seguro
Twig sanitiza los datos y no permite uso de código PHP ni consultas a BBDD (SQL injection)
Apps, Otras Webs y/o Servicios
Drupal tiene su equipo de seguridad propio, responsable de detectar y corregir vulnerabilidades.
Componentes externos => Equipos de seguridad de los componentes de terceros
Pruebas unitarias hacen el código más seguro
Twig sanitiza los datos y no permite uso de código PHP ni consultas a BBDD (SQL injection)