Pregunta

Tengo un tipo de nodo personalizado para el que yo quiero tener un campo que utiliza un cuadro combinado especial basado en list_text. Cuando uno elige el tipo list_text normalmente es posible entrar en una lista estática de los textos seleccionables, sin embargo, quiero que esta lista sea dinámica, es decir, sobre la base de los resultados de un db_query. ¿Cuál es la mejor manera de hacer esto con Drupal 7?

Un ejemplo sencillo de aclaración:. Un nodo de este tipo personalizado X contiene un campo que apunta a otro nodo, por lo que cada vez que se crea un nodo de tipo X que quieren un cuadro combinado que contiene todos los demás nodos

(La mejor solución sería sólo para mostrar el cuadro combinado durante la creación del nodo, y ya no durante la edición. Pero también podría vivir con ello si el cuadro combinado se muestra durante la edición también.)

He tratado de options_select modifique para requisitos particulares mediante la definición de mi propio tipo de datos e implementar hook_options_list en consecuencia. el cuadro combinado no se muestra durante la creación con los valores correctos, sin embargo, pudiera salvarla .. no tengo idea de lo que salió mal allí, pero en la primera someter sería cambiar a un tema diferente, y cuando intenté de nuevo me consiguió una error de servidor interno. ¿Estoy en el camino correcto en absoluto con la definición de un nuevo tipo de datos para el campo? seguramente debe haber una manera más sencilla?

¿Fue útil?

Solución 2

El tutorial vinculado por allegroconmolto me envió en el camino correcto. Gracias por eso.

Esta es la forma más simple de hacerlo: tutorial

Básicamente, es, como ya asumido, un problema común y por lo tanto se incluyó una solución simple para que en el módulo de webform por ahora. Proporciona un hook_webform_select_options_info que se puede utilizar para registrar un método de devolución de llamada. El método de devolución de llamada a continuación, se llama cada vez que una opción correspondiente seleccionar de un formulario web se muestra, de manera que se puede llenar fácilmente con los resultados de un dbquery o cualquier otra cosa. Funciona como un encanto y tiene casi nada de tiempo para poner en práctica.

Otros consejos

Tienes razón en que no es necesario un nuevo tipo de datos. Aquí está un buen tutorial sobre cómo hacer esto . No es específicamente para D7 pero no vi mucho de lo que no estaba siendo aplicable. Puede haber una mejor manera de hacerlo en D7 específicamente, pero me gustaría saber también si es así:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top