entity-framework drupal entity views

entity framework - Vista de contenido de Drupal Mostrar entidades a las que se hace referencia mediante el campo de referencia del usuario



entity-framework views (1)

Después de tomar un largo descanso y volver al problema, logré resolverlo.

Para cualquier persona que pueda quedar atrapada en un problema similar: estaba usando demasiado una relación.

Mi vista muestra todo el contenido de tipo Software . El software se referencia en múltiples paquetes de software (field_included_software) y el perfil de usuario tiene un campo de referencia (field_software_pack) para 1 paquete de software .

Para filtrar la vista del tipo de contenido Software , primero se requiere establecer una relación con los paquetes de software que hacen referencia al software .

  • Un puente hacia la entidad de contenido que hace referencia al contenido a través de field_included_software

Luego necesita otra relación con el perfil de usuario que hace referencia a qué paquete de software tiene el usuario.

  • Un puente hacia la entidad de usuario que hace referencia al contenido a través de field_software_pack

Para obtener la ID de usuario del usuario conectado para limitar los resultados solo al Software en el paquete de software del usuario, se necesita un filtro contextual.

  • Usuario: Uid

El filtro contextual está configurado para proporcionar un valor predeterminado del código PHP:

$uid = $GLOBALS[''user'']->uid; return $uid;

La relación para el filtro contextual se establece en la referencia del usuario.

Todas las relaciones deben establecerse como REQUERIDO.

Una vez que configuré mi vista de esta manera, todo funcionó según lo planeado.

Utilizando Drupal 7, Views y Entity API, intento crear una vista que muestre todas las descargas del usuario que ha iniciado sesión y que están disponibles para él.

Yo uso los siguientes tipos de contenido:

  • Software
  • Paquete de software

El usuario tiene un campo de referencia de entidad que acepta 1 valor para hacer referencia a un paquete de software . user_software_pack

Los paquetes de software incluyen un campo de referencia de entidad que acepta valores ilimitados para referenciar el software incluido en el paquete. field_included_software

Para la Vista, estoy creando una lista sin formato de Content Teasers of Type Software

Al hacer esto, me muestra todo el software que está publicado, ahora estoy intentando filtrar la lista solo al software disponible para el usuario utilizando las siguientes relaciones.

  • Un puente hacia la entidad de usuario que hace referencia al contenido a través de field_software_pack
  • Un puente hacia la entidad de contenido a la que se hace referencia mediante field_software_pack
  • Un puente hacia la entidad de contenido al que se hace referencia mediante field_included_software

Para mí, esto traería consigo al usuario y luego usarlo para hacer referencia al paquete de software y luego hacer referencia al software en ese paquete. La vista me muestra todas las entidades de Software. ¿Me estoy perdiendo de algo?

Establecer la configuración de Mostrar: contenido para usar la relación me da una vista vacía, establecer una relación como se requiere proporciona una vista vacía también.