tutorial - views drupal
Crear mĂșltiples nodos CCK con un Ășnico formulario personalizado en Drupal (3)
¿por qué no usar hook_nodeapi para manejar la creación de nodos para ciertos tipos de contenido?
simplemente configure una condición de prueba para ver si $ node-> type = ''foo'', y luego ejecute una función para crear dos nodos o cuantos, usando los valores de los campos predefinidos. incluso puede configurar hook_nodeapi para que se ejecute solo cuando $ op está casi listo para insertar el nodo en la base de datos, garantizando así que el objeto se haya ejecutado a través de la validación adecuada antes de pasarlo a los nuevos nodos que deben crearse.
http://api.drupal.org/api/function/hook_nodeapi/6 esta página tiene una lista de todas las operaciones disponibles para la variable $ op y lo que hacen.
Espero que eso ayude
Necesito un formulario que permita la creación de varios nodos relacionados al mismo tiempo. Todos los nodos involucran campos CCK.
Me gustaría utilizar tanto como sea posible / práctica la validación, el envío, el widget de entrada y la funcionalidad de seguridad incorporados de CCK.
¿Cuál es la mejor manera de lograr esto en Drupal 6? ¿Hay ''mejores prácticas'' o documentos en cualquier lugar?
Aquí hay 3 posibilidades que puedo ver. Me encantaría recibir comentarios sobre si alguno de estos podría funcionar, o si hay opciones aún mejores.
1.
- comience con el formulario de creación de nodos estándar para el tipo de contenido foo.
- modifique el formulario agregando campos para la barra de tipos de contenido, usando hook form_alter [¿pueden insertarse widgets cck para la barra de tipos de contenido directamente?]
- utilice un controlador de envío personalizado para crear un nodo de barra de tipos cuando se envíe el formulario [¿se puede llamar al controlador estándar de cck? o ¿necesito construir ''manualmente'' el objeto nodo, hacer mi propia validación y usar node_save?]
2.
- crea una nueva forma personalizada que concatena los formularios de creación de nodos ''normales'' para los tipos de contenido relevantes.
- luego use hook form_alter para modificar los formularios según sea necesario.
- permite a los gestores de envío de cck estándar hacer el trabajo de crear los nodos.
3.
- crea un formulario personalizado desde cero
- crear los nodos en mis propios manejadores de envío, usando preparación de nodos, guardado de nodos, etc.
Si no se menciona la documentación encontrada sobre la reutilización del formulario de creación de nodos estándar , pero la creación de nodos múltiples al mismo tiempo.
El uso de hook nodeapi y hook form_alter está documentado en una publicación en el sitio de advomatic, pero el método particular descrube parece requerir la contaminación de uno de los tipos de contenido con campos ''ficticios''.
¡Muchas gracias por su ayuda!
Los chicos advomatic publicaron una buena solución para esto.
http://www.advomatic.com/blogs/jonathan-delaigle/multiple-nodes-single-node-submission
Si la barra del segundo tipo necesita solo una o dos entradas adicionales (campos) del usuario, yo elegiría una aproximación.
Pero dada su aclaración, parece que foo y bar son lo suficientemente diferentes y complejos, por lo que su aproximación dos parece más razonable.
Concatenar ambos formularios en uno y ocultar los campos de barras que desea rellenar de los campos foo (o nodo, después de haberlo creado). En los formularios validar y enviar funciones, deberá volver a separar los formularios para que pueda llamar a los manejadores de validación / envío estándar para ambos por separado.
No he hecho esto todavía, así que no estoy seguro de qué tan bien funcionará con la funcionalidad de cck, pero espero que funcione razonablemente bien para intentarlo.