2011-10-14 18 views

Respuesta

6

En Drupal 7 tiene entidades y campos; los campos están adjuntos a las entidades. Un nodo es una implementación de una entidad (el módulo de nodo implementa hook_entity_info() y otros ganchos) para que pueda tener campos.

Todos los datos relacionales de campo/entidad se almacenan en las tablas field_data_field_x y field_revision_field_x o similar (estas últimas pueden almacenar las revisiones de datos de campo si las revisiones de nodo están habilitadas).

La columna entity_id en esas tablas es la ID del nodo, y bundle es el tipo de contenido del nodo. El revision_id es el ID de revisión del nodo, de nuevo solo es realmente útil si las revisiones de nodo están habilitadas.

ACTUALIZACIÓN

En la terminología de Drupal un tipo de contenido es un bundle y bundle s están asociadas a las entidades (en este caso la entidad node). Cuando crea un nuevo tipo de contenido, se almacena en la tabla node_type, y cuando se borran las memorias caché (que invoca hook_entity_info en todos los módulos) la función node_entity_info() crea una lista de paquetes de los tipos de contenido (eche un vistazo al bit en esa función que comienza foreach (node_type_get_names() as $type => $name) {, node_type_get_names obtiene una lista de todos los tipos de contenido).

Como se discutió anteriormente, los campos se pueden adjuntar a las entidades, por lo que los campos se pueden unir a los nodos con un delta (si lo desea) de bundle.

+0

¿Cómo implementa un tipo de contenido que se crea en la GUI hook_entity_info? Entiendo cómo se almacenan los datos de campo, pero ¿cómo se crea el formulario? –

+1

¿Es field_config_instance que define qué campos van con qué? –

+0

@ChrisMuench: He actualizado la respuesta. Avíseme si necesita alguna aclaración, ¡es bastante complicado si no ha profundizado antes en los módulos centrales! – Clive

Cuestiones relacionadas