Entidades en Drupal 7

13

¿Qué son las entidades de Drupal en Drupal 7? Entiendo que Drupal Commerce construyó productos como una entidad. Ahora sé que hay una API de entidad básica y un complemento de contribución para la API de entidad.

Tengo algunos proyectos este año en los que me gustaría usar Drupal 7, NoSQL y posiblemente la API de Entity si lo requiere, pero tengo problemas para ver dónde sería necesario.

Suponiendo que estaba construyendo un sitio de listado de trabajos, un trabajo no es necesariamente como el contenido del nodo, ¿podría / lo haría una Entidad?

Además, ¿aún puede tener la capacidad de hablar con los módulos con la Entidad y cómo se hace? Por ejemplo, una entidad de Publicación de trabajo se alias con Pathauto y se expone en Vistas, así como aparece en el Mapa del sitio XML.

Kevin
fuente

Respuestas:

9

Una entidad es una estructura de datos definida por hook_entity_info () y puede ser desplegable, lo que significa que puede agregarles campos.

En Drupal 7 Core, los nodos, usuarios, comentarios, vocabularios y términos son entidades.

En Contrib, hay muchos más, por ejemplo, mensajes privados y comercio, como una docena de ellos;)

Sin embargo, creo que las ofertas de trabajo están perfectamente bien como nodos :) Las entidades no tienen automáticamente la integración de Pathauto (tokens), vistas, etc.

Berdir
fuente
9

Las entidades son un meta nivel por encima de nodos, usuarios, etc.

Esencialmente, si nos fijamos en D6, hay muchos módulos duplicados y funcionalidad en este tipo de cosas. Por ejemplo, hay módulos para adjuntar campos cck a usuarios y términos de taxonomía.

En D7 se tomó la decisión de tratarlos de la misma manera, arquitectónicamente, por lo que si tiene un módulo que hace algo a las entidades, debería funcionar para nodos, términos y usuarios.

En versiones anteriores de Drupal, un módulo como Comercio habría tenido dos opciones, construir un tipo de nodo personalizado o salir completamente de los sistemas internos de Drupal y definir su propio tipo de cosas. Con las entidades, es posible describir un Producto como un tipo de cosa, distinto de los tipos existentes, pero aun así aprovechar características como los campos en su composición.

Suponiendo que estaba construyendo un sitio de listado de trabajos, un trabajo no es necesariamente como el contenido del nodo, ¿podría / lo haría una Entidad?

Tú podrías. Creo que debes tener cuidado de hacer entidades de cosas demasiado rápido. A menudo, los tipos de nodos personalizados seguirán haciendo lo que quieras. ¿Es un trabajo que enumera un tipo diferente de cosa para un nodo, o es un nodo con algunas propiedades especiales?

Jeremy French
fuente
3

Empecé a usar entidades en algunos de mis proyectos para cosas que no eran realmente "contenido". Los usamos para cosas en las que realmente no nos importa cuándo se publicó o quién fue el autor.

Los beneficios reales de definir entidades son si está desarrollando sus propios módulos personalizados. Obtiene una buena estructura de tabla y un montón de bondades de Drupal (Fieldability, integración de Vistas, ...) de forma gratuita. No más crear sus propias estructuras de tablas personalizadas o adaptar un tipo de nodo a sus necesidades. Además, me gusta lo livianos que son, por lo que las entidades con mejor rendimiento deberían ser mejores. Si ha realizado alguna consulta en D6 con nodos, comprenderá lo que quiero decir.

PPC-Coder
fuente
1

Los nodos, usuarios, taxonomías son ejemplos de entidades de Drupal. La característica principal de una entidad es que puede asignarse a otras entidades: un usuario está asociado con un nodo, y una taxonomía puede asignarse a nodos y usuarios.

Si lo que usted describe como trabajo puede asignarse a un usuario o un nodo, entonces lo convertiría en una entidad. Si lo que puede "trabajar" es solo un tipo de contenido, entonces no lo convertiría en una entidad.

kiamlaluno
fuente
1

Si quiere decir eso en pocas palabras, puede decir que en entity es solo un dato que drupal conoce, y se puede almacenar en cualquier lugar.

Haza
fuente