Hola,
Estoy empezando a desarrollar un módulo y estoy centrado en el "mod_form.php".
Tengo 5 checkbox y 5 multi-select en un grupo, y me muestra todo como quiero, excepto las etiquetas de los checkbox y del multi-select.
Os copio el código:
// Defining "hours" select
$select1 = &$mform->createElement('select', 'hours1', get_string('hours', 'prueba'), $time);
$select2 = &$mform->createElement('select', 'hours2', get_string('hours', 'prueba'), $time);
$select3 = &$mform->createElement('select', 'hours3', get_string('hours', 'prueba'), $time);
$select4 = &$mform->createElement('select', 'hours4', get_string('hours', 'prueba'), $time);
$select5 = &$mform->createElement('select', 'hours5', get_string('hours', 'prueba'), $time);
// Setting "hours" multi-select
$select1->setMultiple(true);
$select2->setMultiple(true);
$select3->setMultiple(true);
$select4->setMultiple(true);
$select5->setMultiple(true);
// Defining "days and hours" array
$days = array();
$days[] = &$mform->createElement('checkbox', 'monday', get_string('monday', 'prueba'));
$days[] = &$select1;
$days[] = &$mform->createElement('checkbox', 'tuesday', get_string('tuesday', 'prueba'));
$days[] = &$select2;
$days[] = &$mform->createElement('checkbox', 'wednesday', get_string('wednesday', 'prueba'));
$days[] = &$select3;
$days[] = &$mform->createElement('checkbox', 'thursday', get_string('thursday', 'prueba'));
$days[] = &$select4;
$days[] = &$mform->createElement('checkbox', 'friday', get_string('friday', 'prueba'));
$days[] = &$select5;
// Adding "monday to friday days and hours" group
$mform->addGroup($days, 'days', get_string('daysandhours', 'prueba'), ' ', true);
¿Sabéis por qué puede ser?, o si realmente no permite mostrar las etiquetas de los elementos del grupo. He buscado por el foro y en la documentación, pero no he encontrado nada.
Gracias de antemano, un saludo.
En respuesta a Alejandro Michavila Pallarés
Re: Mostrar etiquetas elementos del addGroup
de Xavier Paz -
No acabo de comprender bien el problema ¿podrías poner una imagen de como queda la cosa con este código y de como debería quedar?
En respuesta a Xavier Paz
Re: Mostrar etiquetas elementos del addGroup
Si te das cuenta las casillas de selección (checkbox) y las opciones de selección (multi-select), aparecen sin ninguna etiqueta y debería tener.
Si las añado al formulario como elemento simple si que soy capaz de verlas, pero con un grupo como este caso no.
Si las añado al formulario como elemento simple si que soy capaz de verlas, pero con un grupo como este caso no.
En respuesta a Alejandro Michavila Pallarés
Re: Mostrar etiquetas elementos del addGroup
Si a la función
createElement('checkbox', 'monday', get_string('monday', 'prueba'));
Le paso un cuarto parámetro de la forma
createElement('checkbox', 'monday', null, get_string('monday', 'prueba'));
Si me pinta la etiqueta "Lunes".
createElement('checkbox', 'monday', get_string('monday', 'prueba'));
Le paso un cuarto parámetro de la forma
createElement('checkbox', 'monday', null, get_string('monday', 'prueba'));
Si me pinta la etiqueta "Lunes".
En respuesta a Alejandro Michavila Pallarés
Re: Mostrar etiquetas elementos del addGroup
Ya consigo ver las etiquetas, pero me queda un poco descolocado como se puede ver en la imagen adjunta, ¿cómo podría organizarlo mejor?, ¿qué define el quinto parámetro de "addGroup"?.
Muchas gracias.
Muchas gracias.
En respuesta a Alejandro Michavila Pallarés
Re: Mostrar etiquetas elementos del addGroup
de Xavier Paz -
Yo creo que en este caso sería mejor uno o varios menús desplegables para las horas, o dos textbox para establecer un rango de horas (desde y hasta) ¿cuál es exactamente la intención de esta parte del interfaz? ¿para que sirve?
He encontrado esto entre la documentación de moodle, donde se describe parte de la biblioteca de funciones para formularios... http://70.86.170.226/en/Development:lib/formslib.php_Form_Definition
He encontrado esto entre la documentación de moodle, donde se describe parte de la biblioteca de funciones para formularios... http://70.86.170.226/en/Development:lib/formslib.php_Form_Definition
En respuesta a Xavier Paz
Re: Mostrar etiquetas elementos del addGroup
Creo que ya lo tengo más o menos. Se trata de seleccionar una o varias horas al día, de uno o varios días de la semana.
En respuesta a Alejandro Michavila Pallarés
Re: Mostrar etiquetas elementos del addGroup
He creado los botones de ayuda, pero cuando pulso me muestra el mesaje que adjunto en la imagen. ¿Puede ser un bug?. http://tracker.moodle.org/browse/MDL-17087
En respuesta a Alejandro Michavila Pallarés
Re: Mostrar etiquetas elementos del addGroup
de Xavier Paz -
Ahora mismo no recuerdo si hay una función de moodle para generar automáticamente las rutas de los ficheros de ayuda, o si hay que ponerlos en algún sitio especial.
En respuesta a Xavier Paz
Re: Mostrar etiquetas elementos del addGroup
Hola Xavier,
Finalmente he cambiado los multi-select por los checkboxes para mi formulario, pero tengo un problema a la hora de encajar la primera fila de texto con los checkboxes.
La primera fila es un elemento "static" y el resto son grupos de "checkboxes", ¿cómo puedo hacer para alinear los nombres con los checkboxes?.
Gracias de antemano, un saludo.
Finalmente he cambiado los multi-select por los checkboxes para mi formulario, pero tengo un problema a la hora de encajar la primera fila de texto con los checkboxes.
La primera fila es un elemento "static" y el resto son grupos de "checkboxes", ¿cómo puedo hacer para alinear los nombres con los checkboxes?.
Gracias de antemano, un saludo.
En respuesta a Alejandro Michavila Pallarés
Re: Mostrar etiquetas elementos del addGroup
Xavier he visto que el formulario quiz tiene el texto alineado con su checkboxes (mira la imágen).
He estado mirando el código:
He estado mirando el código:
//------------------------------------------------------------------------------- 144 $mform->addElement('header', 'reviewoptionshdr', get_string('reviewoptionsheading', 'quiz')); 145 $mform->setHelpButton('reviewoptionshdr', array('reviewoptions', get_string('reviewoptionsheading','quiz'), 'quiz')); 146 $mform->setAdvanced('reviewoptionshdr', $CFG->quiz_fix_review); 147 148 $immediatelyoptionsgrp=array(); 149 $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'responsesimmediately', '', get_string('responses', 'quiz')); 150 $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'answersimmediately', '', get_string('answers', 'quiz')); 151 $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'feedbackimmediately', '', get_string('feedback', 'quiz')); 152 $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'generalfeedbackimmediately', '', get_string('generalfeedback', 'quiz')); 153 $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'scoreimmediately', '', get_string('scores', 'quiz')); 154 $immediatelyoptionsgrp[] = &$mform->createElement('checkbox', 'overallfeedbackimmediately', '', get_string('overallfeedback', 'quiz')); 155 $mform->addGroup($immediatelyoptionsgrp, 'immediatelyoptionsgrp', get_string("reviewimmediately", "quiz"), null, false); 156 $mform->setDefault('responsesimmediately', $CFG->quiz_review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_IMMEDIATELY); 157 $mform->setDefault('answersimmediately', $CFG->quiz_review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_IMMEDIATELY); 158 $mform->setDefault('feedbackimmediately', $CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_IMMEDIATELY); 159 $mform->setDefault('generalfeedbackimmediately', $CFG->quiz_review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_IMMEDIATELY); 160 $mform->setDefault('scoreimmediately', $CFG->quiz_review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_IMMEDIATELY); 161 $mform->setDefault('overallfeedbackimmediately', $CFG->quiz_review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_IMMEDIATELY); 162 163 $openoptionsgrp=array(); 164 $openoptionsgrp[] = &$mform->createElement('checkbox', 'responsesopen', '', get_string('responses', 'quiz')); 165 $openoptionsgrp[] = &$mform->createElement('checkbox', 'answersopen', '', get_string('answers', 'quiz')); 166 $openoptionsgrp[] = &$mform->createElement('checkbox', 'feedbackopen', '', get_string('feedback', 'quiz')); 167 $openoptionsgrp[] = &$mform->createElement('checkbox', 'generalfeedbackopen', '', get_string('generalfeedback', 'quiz')); 168 $openoptionsgrp[] = &$mform->createElement('checkbox', 'scoreopen', '', get_string('scores', 'quiz')); 169 $openoptionsgrp[] = &$mform->createElement('checkbox', 'overallfeedbackopen', '', get_string('overallfeedback', 'quiz')); 170 $mform->addGroup($openoptionsgrp, 'openoptionsgrp', get_string("reviewopen", "quiz"), array(' '), false); 171 $mform->setDefault('responsesopen', $CFG->quiz_review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_OPEN); 172 $mform->setDefault('answersopen', $CFG->quiz_review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_OPEN); 173 $mform->setDefault('feedbackopen', $CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_OPEN); 174 $mform->setDefault('generalfeedbackopen', $CFG->quiz_review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_OPEN); 175 $mform->setDefault('scoreopen', $CFG->quiz_review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_OPEN); 176 $mform->setDefault('overallfeedbackopen', $CFG->quiz_review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_OPEN); 177 178 179 $closedoptionsgrp=array(); 180 $closedoptionsgrp[] = &$mform->createElement('checkbox', 'responsesclosed', '', get_string('responses', 'quiz')); 181 $closedoptionsgrp[] = &$mform->createElement('checkbox', 'answersclosed', '', get_string('answers', 'quiz')); 182 $closedoptionsgrp[] = &$mform->createElement('checkbox', 'feedbackclosed', '', get_string('feedback', 'quiz')); 183 $closedoptionsgrp[] = &$mform->createElement('checkbox', 'generalfeedbackclosed', '', get_string('generalfeedback', 'quiz')); 184 $closedoptionsgrp[] = &$mform->createElement('checkbox', 'scoreclosed', '', get_string('scores', 'quiz')); 185 $closedoptionsgrp[] = &$mform->createElement('checkbox', 'overallfeedbackclosed', '', get_string('overallfeedback', 'quiz')); 186 $mform->addGroup($closedoptionsgrp, 'closedoptionsgrp', get_string("reviewclosed", "quiz"), array(' '), false); 187 $mform->setDefault('responsesclosed', $CFG->quiz_review & QUIZ_REVIEW_RESPONSES & QUIZ_REVIEW_CLOSED); 188 $mform->setDefault('answersclosed', $CFG->quiz_review & QUIZ_REVIEW_ANSWERS & QUIZ_REVIEW_CLOSED); 189 $mform->setDefault('feedbackclosed', $CFG->quiz_review & QUIZ_REVIEW_FEEDBACK & QUIZ_REVIEW_CLOSED); 190 $mform->setDefault('generalfeedbackclosed', $CFG->quiz_review & QUIZ_REVIEW_GENERALFEEDBACK & QUIZ_REVIEW_CLOSED); 191 $mform->setDefault('scoreclosed', $CFG->quiz_review & QUIZ_REVIEW_SCORES & QUIZ_REVIEW_CLOSED); 192 $mform->setDefault('overallfeedbackclosed', $CFG->quiz_review & QUIZ_REVIEW_OVERALLFEEDBACK & QUIZ_REVIEW_CLOSED); 193 194 //-------------------------------------------------------------------------------
Y yo hago lo mismo, excepto que uso el mismo array y no añado setDefaults para añadir mis checkboxes, pero no entiendo por qué aquí se colocan alineados con el texto de arriba y en mi caso no.
¿Puedes hecharme una mano?, me interesa mucho alinear el texto.
Gracias de antemano Xavier, un saludo.
En respuesta a Alejandro Michavila Pallarés
Re: Mostrar etiquetas elementos del addGroup
de Xavier Paz -
Sin haber revisado el código en detalle, parece que en el caso de la segunda imagen, los textos en negrita son las cabeceras de una tabla, y los checkbox estan metidos en celdas, por esos aparecen alineados en función de la anchura de los textos de cabecera ¿aparece más codigo relacionado a continuación, en las lineas 195 y siguientes?
En respuesta a Xavier Paz
Re: Mostrar etiquetas elementos del addGroup
Hola Xavier,
Gracias por contestar, no hay más código relacionado en la linea 195 y posteriores.
Creo que no hay soporte en formslib para tablas, por lo menos eso dice la documentación: "Tableless layout", en:
http://docs.moodle.org/en/Development:lib/formslib.php
Yo no he sido capaz de meter tablas en mi mod_form.
En el código usa la función addGroup que uso yo, que permite alinear un grupo de elementos en una misma linea, pero no hay más, no sé cómo es capaz de alinear el texto de arriba con los checkboxes de abajo.
Un saludo.
Gracias por contestar, no hay más código relacionado en la linea 195 y posteriores.
Creo que no hay soporte en formslib para tablas, por lo menos eso dice la documentación: "Tableless layout", en:
http://docs.moodle.org/en/Development:lib/formslib.php
Yo no he sido capaz de meter tablas en mi mod_form.
En el código usa la función addGroup que uso yo, que permite alinear un grupo de elementos en una misma linea, pero no hay más, no sé cómo es capaz de alinear el texto de arriba con los checkboxes de abajo.
Un saludo.
En respuesta a Alejandro Michavila Pallarés
Re: Mostrar etiquetas elementos del addGroup
Hola Xavier,
Finalmente he conseguido resolver mi problema usando elementos estáticos.
Muchas gracias por tu valiosa ayuda.
Doy por terminado mi formulario y paso a validarlo y a implementar las funciones de la librería "lib.php".
Me han surgido varias dudillas que no he podido encontrar:
Finalmente he conseguido resolver mi problema usando elementos estáticos.
Muchas gracias por tu valiosa ayuda.
Doy por terminado mi formulario y paso a validarlo y a implementar las funciones de la librería "lib.php".
Me han surgido varias dudillas que no he podido encontrar:
- Con respecto a la función "add_instance" y el método "insert_records" de lib.php, he comentado mis dudas en este link: http://moodle.org/mod/forum/discuss.php?d=19952#p677483
- ¿Dónde debo hacer el cambio de referencia de un "nombre_checkbox = 1" (activado) con el valor que tendrá realmente por ejemplo "comenzar -> 8:00AM", en el formulario antes de llamar a "add_instance" o en la propia función "add_instance"?.