Conservar querystring en form Moodle

Re: Conservar querystring en form Moodle

by I. S. -
Number of replies: 0

Al final di con ello, lo pongo aqui por si a alguien le sirve de ayuda.

Lo que yo quería es que al pasar una url del tipo mimoodle.com/pagina.php?curso=MiCurso ese "MiCurso" saliera en un campo del formulario directamente añadido y que tras cualquier validación no se perdiese. Además el parámetro no es obligatorio, puede venir o no.

Donde se hace la llamada al nuevo formulario 

$curso = optional_param('curso', '', PARAM_RAW); $params = array();
if (!empty($curso))
{
$params = array('curso' => $curso);
} $PAGE->set_url('/mipagina.php', $params);
$PAGE->set_context(context_system::instance()); $mform = new custom_form(null, array('curso' => $curso));

Y en la creación del formulario:

if ($this->_customdata['curso'] != null && $this->_customdata['curso'] != '')
 {
$mform->addElement('text', 'curso_solicitado', get_string('form_curso_solicitado'), 'maxlength="200" size="75"');
$mform->setType('curso_solicitado', PARAM_NOTAGS);
$mform->addRule('curso_solicitado', get_string('form_curso_solicitado_mandatory'), 'required', null, 'server');
$mform->setDefault('curso_solicitado', $this->_customdata['curso']);
}

Y con esto, aunque el querystring de arriba se pierda, el dato viaja bien smile

Saludos.

Average of ratings: Útil (1)