it-swarm-es.com

Entidad API y módulos de contribución.

Cuando se usa la API de la Entidad, ¿es bastante sencillo interactuar con la taxonomía, la ruta/pathauto, el mapa del sitio XML y las vistas? Si es así, ¿qué partes de la API debo estar mirando?

2
Kevin

Su pregunta es un poco confusa porque Entity API es en realidad un módulo aportado separado que funciona con la entidad núcleo/campos API's

He estado trabajando con el núcleo EntityFieldQuery clase y lo he estado usando para consultar los nodos (y otras entidades), sus campos y propiedades con un gran éxito. Puede pagar otra pregunta que está construyendo algunos ejemplos en: ¿cuál es el uso adecuado de EntityFieldQuyery?

Sobre todo, encontré que la API de la entidad era muy útil para crear mis propias entidades, pero no encontré la documentación tan grande para hacer consultas en el contenido de mi sitio.

nota, ese nodo/usuario ahora son entidades y tipos de nodos/etc. ahora se consideran "paquetes".

Otras lecturas:

3
electblake

En respuesta a la pregunta original y a la respuesta alectada, lo segundo en el hecho de que el módulo apligido de la API de la entidad es separada y distinta del sistema de entidades centrales. Está destinado a aumentar el sistema central al proporcionar un controlador de entidad más robusto (la pieza de código utilizada para crear, cargar, guardar y eliminar entidades), proporcionar una generación de token automática y permitir que los módulos definen los metadatos para las propiedades de sus entidades. .

electblake mencionó que el sistema de entidades centrales incluye una clase para las entidades de consulta en la base de datos basada en su propiedad y datos de campo llamados EntityFieldQuyery. De hecho, esta es de hecho la forma recomendada para hacer consultas de la entidad. La API de la entidad no está destinada a ser una herramienta de consulta. Sin embargo, proporciona en mi opinión la otra pieza faltante para construir módulos aportados robustos utilizando entidades y campos: la envoltura de metadatos de la entidad.

Como mencioné, el módulo API de Entity proporciona un gancho que le permite definir metadatos para las propiedades de su entidad (I.E. $ NODE-> UID, $ nodo-> creado). Combina esta información con lo que sabe sobre las definiciones de campo y las instancias. Luego, le permite "envolver" una entidad para que sea más fácil acceder y manipular los datos de campo y (lo que llamaré) referenció los datos de la entidad a través del objeto envolvente. Una de las cosas principales que esto ha hecho más fácil para mí no tiene que preocuparse por el idioma de las entidades cuando estoy tratando de acceder a sus datos de campo. Sin la envoltura, debe conocer la matriz de esquemas de los datos que está tratando de acceder o manipular. Usándolo, simplemente puede acceder a los datos de campo como cualquier otra propiedad.

Además, facilita el acceso a los datos de las entidades referenciadas. En Drupal Commerce, hago un uso extensivo de esta funcionalidad desde que un par de entidades sirven principalmente como contenedores de referencias a otras entidades. Un ejemplo que se aproxima a la utilidad que menciona en su publicación original sería Tener acceso rápido a todos los términos de la taxonomía mencionados por un nodo. Una forma sencilla de hacerlo con la envoltura sería envolver el nodo y luego bucle sobre los datos de su campo de referencia de taxonomía para acceder a los datos del término completamente cargado. Es difícil demostrar esto Sin incluir los fragmentos de código extenso, pero puede ver fácilmente cómo pongo esto para trabajar por grepping the Drupal Fuente de comercio para Entity_MetAdata_Wrapper.

El jurado aún está saliendo de lo útil o generalizado, la API de la entidad será, pero como es una dependencia de las reglas 2, dudo que vaya a cualquier lugar pronto. Esto puede ser una pequeña información basada en su respuesta a electblake, pero mi corazonada es que la información debe ser útil para las personas adicionales que encuentran esta pregunta al buscar más información sobre la API de la Entidad. :)

7
Ryan Szrama

He estado usando la API de la entidad para crear algunas nuevas entidades y paquetes. Esto es lo que puedo informar hasta ahora:

Uso de vistas: bastante fácil y sencilla, una vez que expone el módulo a las vistas, describa las tablas, etc. Consulte: hook_views_data y la información de ayuda avanzada sobre vistas

Usando taxonomía: (trombón triste). Las tablas de taxonomía almacenan datos de NID. Es decir, de ninguna manera que vea que le digas que la taxonomía se vea en la mesa de tu entidad. He tenido que trabajar creando mi propia versión de la mesa taxonomy_index y glom a la taxonomía lo mejor que pueda.

No hay experiencia con los otros módulos que menciona, pero supongo que se aplicará el mismo principio: si el módulo asume nodos y NID, no funcionará bien con su entidad. De lo contrario, supongo que puedes integrar las cosas.

Hth

4
patrickmj

La forma más fácil y consistente de manejar las entidades es mediante el uso del módulo Entity API :

Este módulo extiende la API de la entidad de Drupal Core para proporcionar una forma unificada de lidiar con las entidades y sus propiedades. Además, proporciona un controlador Entity Crud, que ayuda a simplificar la creación de nueva entidad. tipos.

0
tim.plunkett