Crear formulario

Crear formulario

de sandra escobedo badia -
Número de respuestas: 5
Hola a todos.

Me surge una duda a la hora de crear un formulario extra dentro de un módulo. Me explico, cuando se crea una instancia del módulo hago que se cree automáticamente, además de la tabla mdl_nombreproyecto, otra llamada mdl_nombreproyecto_projects. Esto lo hago así porque quiero que desde dentro del módulo algunos usuarios (los profesores) puedan crear proyectos.

Pero la duda me surge a la hora de crear el formulario para añadir un nuevo proyecto, ya que no sé como hacerlo. He intentado lo siguiente:

1. Hacerlo "a pelo", aunque supongo que esto infringirá algunas normas, ya que usé un formulario tradicional:
echo "<form action='view.php?id=$ide' method='post'>";
echo "Nombre del proyecto: ";
echo "<input type='text' name='nombre' size='20' value=''>";
echo "<p>Descripcion: ";
echo "<textarea rows='5' name='descripcion' cols='20'></textarea> ";
echo "<p><input type='submit' name='crear' value='Crear'/>";

2. Creando un nuevo fichero project_form.php con una estructura similar a la de mod_form, usando funciones como addElement(), setType(), etc. De esta forma la hoja me aparece en blanco.
class project_form extends moodleform_mod {
function definition() {
global $COURSE;
$mform =& $this->_form;
...
}
}

¿Es la segunda forma la correcta?¿O ninguna? La verdad es que ando bastante perdida así que cualquier aclaración me sería muy útil.

Gracias.
Promedio de valoraciones: -
En respuesta a sandra escobedo badia

Re: Crear formulario

de Juan Pueyo -
Hola Sandra,

seguro que hay gente que sepa más que yo sobre estos temas, pero desde mi experiencia personal y con el poco tiempo que tenía, siempre opté por crear los formularios con echos, aunque sé que existen métodos para crear formularios en Moodle.

Mi consejo, si no dispones de mucho tiempo, es que utilices la opción 1. En el action escribe view.php y manda un campo oculto desde el formulario para el valor de id.

Para capturar los valores de los parámetros que envía el formulario, en el archivo view.php deberás utilizar required_param y/o optional_param al comienzo del archivo para capturar los valores.


un saludo.
En respuesta a Juan Pueyo

Re: Crear formulario

de Mari Cruz García -
Hola, Sandra,

Has mirado si en la base de pluggins de Moodle existe alguno de ese tipo que te pueda servir?

Es increible la cantidad de código que puede encontrase en pluggins que muchos moodlers ignoran que existe.

Un saludo
En respuesta a Mari Cruz García

Re: Crear formulario

de Alejandro Michavila Pallarés -
Hola,

Puede ayudarme alguien a saber ¿cuál es la secuencia lógica de llamadas a las funciones de la clase "newmodule_mod_form" que extiende de "moodleform_mod" y que se ubica en "mod_form.php"?.

Me refiero a algo así:

definition()
|__ definition_after_data($data)
----|__ data_preprocessing(&$default_values)
--------|__ validation($data)

Es que me gustaría saber en qué lugar exacto puedo incorporar un nuevo elemento al objeto "$data" (stdClass Object) creado a partir de los elementos definidos en el formulario.

Lo que quiero hacer exactamente es, en base a si están activados unos "chekboxes" del formulario, añadir nuevos elementos al objeto, para que cuando llame a la función "newmodule_add_instance" de "lib.php", añada el nuevo registro en base de datos y se inserten esos objetos que serán valores para los campos de mi tabla.

Gracias de antemano, un saludo.


En respuesta a Alejandro Michavila Pallarés

Re: Crear formulario

de David Monllaó -
Hola Alejandro,

Para ver la secuencia puedes usar las funciones debug_backtrace (nativa de PHP) o debugging() que viene con Moodle