2011-05-31 33 views
5

que tienen varios tipos de datos personalizados en Drupal 7¿Cómo se usa un tipo de datos personalizado como un campo en drupal 7?

  1. restaurante
  2. menú
  3. receta
  4. cocinero

Quiero crear asociaciones entre este chef de datos - restaurante> -> menú -> receta para que la receta pueda obtener el nombre del chef y la dirección de restaurantes y el menú puede obtener una lista de recetas, etc.

En la tierra de SQL, que yo llamaría esto una clave externa, pero estoy teniendo un montón de problemas para encontrar la manera de hacer esto en Drupal 7.

sospecho que debe haber algún módulo o funcionalidad i no estoy familiarizado con Pero drupal usa su propia jerga y creo que me estoy cayendo en mi google-fu

¿Alguien sabe lo que estoy buscando?

Respuesta

5

Estos son los tipos de datos probablemente no pero lo más probable content types. Lo que busca son

  • una manera de relacionar los nodos (es decir. De contenido) de un tipo de contenido a los nodos de otra (chef de restaurante, menú para el restaurante, receta de menú, etc.).
  • Una forma de mostrar información de nodos relacionados (relaciones directas o indirectas) cuando se muestra un nodo en particular.

La relación entre los nodos se puede lograr utilizando el módulo References (un puerto Drupal 7 del módulo nodereference incluidos en CCK para Drupal 6). Esto le permite agregar referencias a nodos al editar otro. La relación se puede configurar para permitir que solo se haga referencia a los nodos del tipo especificado. Este tipo de referencia no es bidireccional y solo se puede navegar (con facilidad) desde el nodo de referencia, no desde el nodo al que se hace referencia. En Drupal 6, el Node referrer proporcionó un campo complementario para navegar la relación en ambos sentidos. Lamentablemente, todavía no ha sido ported to Drupal 7.

Las referencias pueden quedar obsoletas en un futuro próximo a favor del módulo Entity reference. Clanes de referencia de entidades para proporcionar consultas bidireccionales mediante vistas e integración adecuada con el módulo E ntity API. Lo posterior debe garantizar que la relación definida con el módulo sea completamente (problemáticamente) navegable y utilizable con módulos que utilicen los metadatos Entity (Seach API y otros).

Otra solución que también utiliza el sistema Entity es el módulo Relation. Proporciona relaciones bidireccionales completas. Estas relaciones son en sí mismas entidades realizables, lo que significa que usted agrega propiedades a las relaciones (por ejemplo, las fechas en que un chef comenzó y terminó trabajando en un restaurante).

Una vez que obtiene la relación, hay varias maneras de mostrar la información relacionada en una página de nodo. No conozco la relación, pero si References se comporta como la versión de Drupal 6, solo permitirá la visualización de información básica de los nodos directamente relacionados. Una solución es implementar hook_node_view() en un módulo personalizado para navegar por la relación, recuperar los diferentes nodos, formatear la información recopilada mediante un theme hook personalizado y agregarlo al $node->content para la representación.

Dado que la referencia de entidad se integra con la vista, debe poder construir una vista para mostrar el nodo relacionado con el nodo mostrado actualmente (utilizando el nodo actual como argumento contextual ). Luego puede incrustar la vista mediante programación en la vista de su nodo (nuevamente, a través del hook_node_view()) o usar una pantalla de bloque.

2

En Drupal 6, usaría un submódulo del proyecto CCK llamado Node Reference. Una referencia de nodo es un campo en un tipo de contenido que apunta a otro nodo. En Drupal 7, dado que la mayoría de la funcionalidad de CCK se ha movido al núcleo, el submódulo Referencia de nodo ahora es parte del proyecto References.

+0

Es posible que también desee consultar el sitio de Drupal Answers Beta. Cuantas más personas lo usen, mayores serán sus posibilidades de pasar de beta: http://drupal.stackexchange.com –

Cuestiones relacionadas