Drupal 7: Creando un bloque con Views y Entity Reference
El concepto de entidad es algo que ya no es nuevo para nosotros, mucho hemos escrito ya sobre entidades y es que esta manera de trabajar o este “concepto” hace que nuestra vida sea mas feliz.
 
Aunque el echo de trabajar con entidades trae muchos beneficios en si, hoy nos pararemos en algo que seguro muchos ya hemos trabajado, las relaciones entre entidades.
 
Estoy seguro que muchos de vosotros, alguna vez, habéis relacionado nodos entre si mediante el entity reference y seguro que en alguna ocasión habéis querido mostrar que nodos o entidades tienen las mismas referencias que el nodo o entidad que se esta mostrando en ese momento.
 
Bien, pues hoy veremos como con views y con una serie de sencillas configuraciones en cuestión de minutos podemos tener esta información
 
CREAMOS LA VISTA
 
El primer paso es sin duda el mas sencillo, crearemos una vista de la forma que hemos echo siempre y seleccionaremos los campos que queramos mostrar. 
 
AÑADIMOS LAS RELACIONES 
 
Aquí es donde tenéis que prestar toda la atención, porque es donde reside la magia o el “truco” de este ejercicio.
 
Hemos de añadir dos relaciones o “relationships”, dependiendo en que idioma tengáis vuestro drupal y añadimos lo siguiente:
 
1- Entity Referenced: Referenced Entity
2- Entity Referencing: Referencing Entity
 
 
 
 
Exactamente, no entiendo porque hay que crear una relación de las relaciones, pero por eso lo llamo magia! 
 
No olvidar marcar “Require this relationship” en ambas
 
Y por supuesto, en la segunda relación “Entity Referencing…” diremos que tiene relacionado “Entity Referenced…” es muy importante este orden y estas relaciones o no funcionará
 
AÑADIMOS LOS FILTROS CONTEXTUALES
 
Para que la vista sepa de donde tiene que sacar la información la cual tiene que comprar le diremos que escoja el nodo que se esta visualizando.
 
Esto es tan sencillo como irnos a “contextual filter” y en el apartado “When the filter value is NOT available” escogeremos “provide default value” y seleccionaremos “Content ID from url”. No olvideis exigir la relación “content referencing”.
 
 
ojo! la segunda de las dos relaciones que hicimos anteriormente
 
ELIMINAR EL NODO VISUALIZADO
 
El probable que queráis que NO se muestre el nodo que estáis visualizando en ese momento para que se muestren solamente los otros.
 
Pues para esto repetiremos la opción anterior pero atención, esta vez no exigiremos ninguna relación y al final del cuadro de dialogo en “more” seleccionaremos “exclude
 
 
 
ELIMINAR REPETIDOS
 
Llegados a este punto, veréis que empieza a salir una lista que se acerca a lo que estamos buscando, pero es probable que si habéis permitido mas de una relación, os salgan nodos duplicados.
 
Para eliminar estos duplicado únicamente tendremos que ir a “query settings” que esta en el lateral derecho abajo de la vista y seleccionar “Distinct
 
 
 
GUARDAR Y PROBAR
 
Y esto es todo, simplemente tendremos que guardar nuestro bloque y situarlo en nuestra plantilla. Ojo que solo funcionara si el nodo donde se muestra el bloque tiene algún tipo de entidad relacionada.
 
Aunque esto es un poco de magia, me surge la duda de que pasaría si hubiera varios campos de entidades relacionadas, por cual de ellos filtraría? hummm.. es una gran pregunta y si tengo tiempo prometo responderla!
 
Espero que os haya gustado y no olvidéis comentar y compartir sobre todo si os atascáis en algún paso del tutorial.
 
Referencia e imagenes de: ericgilbertsen.com
Total de votos: 97

Entradas relacionadas

Comentarios (6)

  • Imagen de Maria Eva

    Maria Eva (no verificado)

    Hola!! Soy nueva en esto, disculpen si es muy tonta mi pregunta... Pero de qué parte es este artículo? Views? Home » Administration » Structure Muchas gracias!! Saludos desde Argentina

  • Imagen de admin

    admin

    Buenas maria, Es una view. sigue los pasos que dices que estan bien... dentro de structure hay quedarle a views y crear una nueva vista. Recuerda que tienes que tener los dos modulos que vienen aqui. https://www.drupal.org/project/views Saludos.

  • Imagen de Maria Eva Brizueña Brizueña

    Maria Eva Brizu...

    Gracias eternas por la pronta respuesta!! aunque no he tenido tiempo de ver lo que dices, veré si la semana que viene se porta bien conmigo y me da un ratito para respirar :)

  • Imagen de reparación ordenadores

    reparación orde... (no verificado)

    Cada vez más sorprendente de verdad, las miles de cosas que quedan por ver por aquí, a veces el tiempo de carga se me hace elevado, no se si sera mi conexión o el host.

  • Imagen de reparación ordenadores

    reparación orde... (no verificado)

    porcierto, podría ser link directo?

  • Imagen de admin

    admin

    Buenas, no acabo de comprender tu pregunta, cual es el tiempo de carga que comentas?

Deja un comentario