Acceder a los datos del usuario en drupal 8 y a su imagen – Clases File, Node y User

Acceder a los datos del usuario en drupal 8 es muy fácil, en este artículo veremos cómo crear objetos tipo User, File y Node. Cómo acceder a sus campos (field), cómo crear url’s y como manejar el THEME_preprocess_HOOK() de drupal 8 para pasar datos a nuestro theme.

En drupal 8 está todo muy verde todavía, y para cualquier cosa hay que hacer una investigación en solitario de un par de días y armarse de paciencia. El otro día, sin más, quise imprimir la imagen que el usuario sube en su perfil de drupal 8 en la zona del usuario y mostrar la imagen en una zona determianda de drupal 8. Esto lo quería hacer en un nuevo proyecto que estoy iniciando que está muy verde todavía pero si queréis verlo aquí está la aplicación de gastos.

En este artículo os voy a mostrar algunas funciones y clases que nos harán la vida mas fácil a la hora de crear un módulo en drupal 8, vamos a ello.

Crear un objeto File con drupal 8

Con los archivos e imágenes pasa lo mismo hay la función estática load para cargar el archivo.

Crear un objeto Node en drupal 8 y acceder a sus datos.

También podemos crear un objeto Node de la misma forma.

Bueno ya sabemos cargar objetos tipo User, Node y File, ahora para acceder a los datos de usuario, los field, también tenemos la función get(), se usa de la siguiente forma.

Para acceder a los datos normales usamos la propiedad value y si estamos referenciando a otro objeto tenemos que usar tarbet_id para que nos devuelva el id del objeto o tipo de contenido.

Acceder a los datos del usuario en drupal 8

Podemos acceder a los datos del usuario de varias maneras con drupal, en drupal 7 podíamos hacerlo de la siguiente forma:

Pero en drupal 8 se ha adaptado un poco a objetos y para acceder a los datos del usuario y crear el objeto user se hace de la siguiente forma.

Ahora que tenemos hemos accedido al usuario en drupal 8 y usamos el objeto User podemos acceder a los datos, fields, a través del método get() de la siguiente manera.

Ahora que sabemos todo esto, vamos un paso más allá, vamos a poner la foto del usuario en drupal 8 en el menú “User account menu”. de esta manera conseguimos que nuestra aplicación sea mas personalizada.

imagen usuario en drupal 8

Con el código anterior conseguimos el id del objeto File  que es la imagen del usuario, buenos pues solo queda cargar el objeto File, coger el uri, crear la url y transformarla en relativa todo esto en la función theme_preprocess_hook() de drupal 8 y meter la url en las variables que envía a los themes para cogerla y maquetar nuestro theme…. es muy fácil, os muestro a continuación el código completo.

Este código no necesita mucho comentario, ya que se ha explicado todo anteriormente, vamos a pasar a nuestro archivo twig, en concreto he creado un archivo para el bloque menu-acount.

En este artículo hemos accedido a los datos del usuario, y mandado datos a nuestro theme a través del theme_preprocess_hook(), mirar aquí su funcionamiento.

 

 

 

 

About ignacio Farré

Técnico en programación web, amigo de MVC y experto en Drupal, Symfony, Prestashop y bootstrap.

Check Also

construir módulo en drupal 8

Cómo crear un módulo en drupal 8 con una página de ejemplo

Drupal en su última versión viene con muchos cambios y uno de ellos es la …

Formularios hechos con ajax en drupal

Ejemplo básico de formulario Ajax en drupal 7

Si queremos utilizar Drupal para realizar páginas web, hay algunas funcionalidades que son fundamentales saber hacer …

drupal-8

Instalar Drupal 8 en un ubuntu server por consola

Drupal 8 ya está aquí, y está siendo una revolución en cuanto a estructura de …