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

Como crear formulario en drupal 8

Cómo crear un formulario en drupal 8 e insertarlo en un bloque o una página

En este artículo os voy a enseñar como crear un formulario en drupal 8 para …

Como crear una página en drupal 8 y maquetar en un theme

Crear una página en Drupal 8 y maquetar en un template

Es muy fácil crear una página en drupal 8, pero lo interesante es poder maquetarla …

programar un bloque con drupal

Crear un bloque en drupal 8 y maquetar en un theme

Os voy a mostrar como crear un bloque en drupal 8 y lo mas importante, …