Integrando AngularJS y drupal

31
Integrando AngularJS y Drupal Iván G. Campaña N. @icampana

Transcript of Integrando AngularJS y drupal

Page 1: Integrando AngularJS y drupal

Integrando AngularJS y DrupalIván G. Campaña N.@icampana

Page 2: Integrando AngularJS y drupal

¿Qué es AngularJS?

Framework Javascript MVC de código abierto desarrollado por Google

Utiliza HTML5, CSS3 + Javascript del lado del cliente.

Permite crear aplicaciones enriquecidas que pueden funcionar en el navegador o como apps híbridas.

Page 3: Integrando AngularJS y drupal

Conceptos básicos● Se basa en MVC, pero no restringe a ese esquema.● Elementos importantes:

○ Directivas○ Controladores○ Servicios (Factories)○ Scopes ($scope, $rootScope)

● El procesamiento, filtrado y manipulación de datos sucede del lado del cliente.

Page 4: Integrando AngularJS y drupal

Alternativas a AngularJS● Backbone.js● Ember.js● Knockout● Agility.js● KendoUI

Page 5: Integrando AngularJS y drupal

¿Para qué voy a mezclar Drupal con Angular?

Page 6: Integrando AngularJS y drupal

Razones para utilizar AngularJS

App. híbrida

Mejorar rendimiento de la web.

Crear una estructura decoupled

Page 7: Integrando AngularJS y drupal

¿Con qué trabajamos?

Page 8: Integrando AngularJS y drupal

Componentes en DrupalViews

Serviceshttps://www.drupal.org/project/services

Services Views https://www.drupal.org/project/services_views

CORShttps://www.drupal.org/project/cors

Image URL Formatterhttps://www.drupal.org/project/image_url_formatter

Page 9: Integrando AngularJS y drupal

¿Qué vamos a utilizar?Componentes de maquetación e interacción:

● Material Design Litehttp://www.getmdl.io/

● Angular Materialhttps://material.angularjs.org/

● AngularJS 1.4http://angularjs.org/

Page 10: Integrando AngularJS y drupal

¿Qué vamos a utilizar?

Page 11: Integrando AngularJS y drupal

¡Manos a la obra!

Page 12: Integrando AngularJS y drupal

Herramientas que simplifican el

trabajo- YeoMan- Bower- Grunt- Less- Sass- Ionic- Cordova

Page 13: Integrando AngularJS y drupal

Primeros pasos● Habilitar los módulos necesarios para exponer los datos a través de

servicios (con sus dependencias):○ Views○ Services○ Services Views○ CORS

● drush pm-enable -y cors views services services_views rest_server

Page 14: Integrando AngularJS y drupal

Crear una vista de datos● Creamos inicialmente una

vista regular, tal y como estamos acostumbrados.

Page 15: Integrando AngularJS y drupal

Crear una vista de datos● Services permite exponer

datos a través de módulos personalizados

● Services Views permite exponer esos datos como un servicio (Similar - no igual - a D8).

● El display de services utiliza en general los mismos formateadores

Page 16: Integrando AngularJS y drupal

Problemas comunes- Tipos de campos con formateadores no soportados

- Permisos al momento de conectarse con el servicio

- Resultados en caché para usuarios anónimos

Page 17: Integrando AngularJS y drupal

Crear un service endpoint● Nombre de máquina no

necesariamente es el expuesto a los servicios

● El Server (protocolo) debe ser habilitado antes de crear el endpoint

● Asegurar la ruta que utilizaremos para acceder

Page 18: Integrando AngularJS y drupal

Seleccionar qué se va a hacer público

Page 19: Integrando AngularJS y drupal

Primeras pruebas- Tratemos de consumir el servicio, en este caso la ruta es:

- /api/listar-noticias

- Resultado obtenido desde local:

Page 20: Integrando AngularJS y drupal

Seleccionar qué se va a hacer públicoEl módulo CORS habilita el crossdomain access.

Seleccionar específicamente qué rutas pueden ser accedidas y bajo qué parámetros.

Caso de prueba únicamente.

Page 22: Integrando AngularJS y drupal

Servidor listo, hora del cliente

- Podemos trabajar directamente con estructura HTML5 + CSS3, sin necesidad de PHP

Page 23: Integrando AngularJS y drupal

Estructura básica

Page 24: Integrando AngularJS y drupal

Estructura básicaControlador básico, pueden existir varios dentro de la misma aplicación encargándose de funcionalidades diferentes.

El controlador inicializa variables y controla el “flujo” de la aplicación.

Es recomendable establecer constantes que se puedan definir como parámetros para trabajar en diferentes ambientes (desarrollo, producción).

Page 25: Integrando AngularJS y drupal

Estructura básicaDirectivas de Angular que permiten hacer “binding” con el modelo de datos.

Una vez actualizado el modelo en el controlador, el template activa su funcionalidad asociada.

Las directivas de AngularMaterial se encargan de la presentación.

Podemos crear nuestras propias directivas.

Page 26: Integrando AngularJS y drupal

Estructura básicaCada elemento del arreglo es renderizado de forma independiente en base a sus datos y representado dentro de la plantilla.

Page 27: Integrando AngularJS y drupal

Agregando funcionalidad para el clientePodemos buscar, filtrar y manipular los datos que devolvió el servidor sin necesidad de reconección

Una variable determina la visibilidad de los elementos del arreglo.

Page 28: Integrando AngularJS y drupal

Proyecto javascript con backend Drupal

Page 29: Integrando AngularJS y drupal

Y si lo quiero hacer app móvil?

Page 30: Integrando AngularJS y drupal

Integraciones que incluye por defecto- Login

- Cambio de contraseña

- Recuperación de contraseña

- Registro de usuario

- Listado y consumo de nodos

Page 31: Integrando AngularJS y drupal

¿Preguntas?