He estado usando el buscador pero no me aclaro. Como puedo añadir un campo obligatorio en el formulario que le sale al usuario cuando quiere registrarse?Es decir igual que pide Nombre*, Apellido*...pues quiero poner DNI*.
Cual es la manera de hacerlo?si es complicado agradecería me lo explicaran a modo tutorial para novatos...
Si no es mucha molestia claro
Muchas gracias!
Echa un vistazo en:
http://moodle.org/mod/forum/discuss.php?d=120142
Como ejemplo:
En el formulario /moodle/login/signup_form.php, deberás añadir, donde quieras (yo lo he hecho bajo la línea):
$mform->addRule('city', get_string('missingcity'), 'required', null, 'server');
lo siguiente:
Añadimos el elemento (dni), le asignamos el tipo y le añadimos la regla de "requerido"
$mform->addElement('text', 'dni', get_string('dni'), 'maxlength="9" size="20"');
$mform->setType('dni', PARAM_TEXT);
$mform->addRule('dni', get_string('missingadni'), 'required', null, 'server');
A partir de ahí, deberás tener un campo en la base de datos que se llame igual que el campo que acabas de crear (o sea, dni).
Hasta pronto,
Salu2
Puedo poner DNI en mayúsculas?todos los dni que hay en el código los pongo en mayúsculas para que me salga?
saludos!
El campo se debe de crear en la tabla 'mdl_user' y para eso debes acceder a la Base de Datos con el gestor que uses:
phpMyadmin -> MySQL
pgAdmin -> Postgres
Respecto a:
Puedo poner DNI en mayúsculas?
El nombre del campo lo puedes poner en Mayúsculas, si quieres, pero acuérdate de crear el campo con el nombre en mayúsculas también.
todos los dni que hay en el código los pongo en mayúsculas para que me salga?
No acabo de entender la pregunta, pero si creas el campo en mayúscula:
$mform->addElement('text', 'DNI', get_string('dni'), 'maxlength="9" size="20"');
$mform->setType('DNI', PARAM_TEXT);
$mform->addRule('DNI', get_string('missingadni'), 'required', null, 'server');
Cada vez que quieras obtener el valor del campo, deberás ponerlo en mayúculas.
Por ejemplo:
//Esto te devuelve el valor del campo DNI:
echo $mform->DNI;
Espero que esto te sirva.
Hasta pronto,
Salu2
J. Raul (juagarc4)
sólo una cosa más, al campo que debo crear "DNI" que pongo en: Tipo, Cotejamiento, Atributos, Nulo, Predeterminado, Extra,
y luego salen unos iconitos: primaria, índice, único, --- (esto sale marcado por defecto), Texto completo.
Gracias Juan Raúl
Deberás definir el campo DNI, como:
Tipo: Varchar (si el DNI va a tener letra) o bigint (si no va a tener letra)
Longitud/Valores: 10 (los DNI extranjeros tienen 10 caracteres)
Cotejamiento: (debe estar en utf8_general_ci)
Atributos: (en blanco)
Nulo: not null (como es un campo obligatorio no debe estra en blanco)
Predeterminado: 0 (si no se pusiera valor en el campo, éste sería su valor por defecto).
El resto de campos los puedes dejar tal y como están.
Hasta pronto,
Salu2
J. Raul (juagarc)
Porque puede ser?
¿Puedes adjuntar una imagen para que pueda verlo?
De todas fomas, ¿la etiqueta dni te sale al lado del campo?
Si es así, es porque no ha agregado la etiqueta de idoma correspondiente en el fichero moodle.php de la carpeta de idioma:
En el fichero moodle.php de la carpeta moodledata/lang/es_utf8
debes añadir:
$string['dni']='DNI';
Hasta pronto,
Salu2
J. Raul (juagarc4)
entonces añado la linea que me has puesto?Es que queda un pelin mal con [[
espero tu respuesta, graciaaaassss mil!
$string['dni']='DNI';
en el fichero moodle.php de tu carpeta de idioma.
Respecto a "tengo que entrar en mdl_user para ver los dni de los usuarios"
No es lo normal, lo que pasa es que sólo hemos creado el campo para el formulario de registro.
Para ver su DNI cuando pinchas en la edición de datos del usuario, se debe modificar
el formulario: moodle/user/editadvanced_form.php
Lo siento, se me pasó ese detalle
Vamos allá.
Debes añadir el campo creado al formulario, igual que hemos hecho antes.
Ponlo,por ejemplo, antes de la línea que pone
// shared fields (la 46 aprox)
De forma que quedaría:
(línea de antes,
$mform->setHelpButton('preference_auth_forcepasswordchange',array('forcepasswordchange', get_string('forcepasswordchange')));
//El nuevo campo DNI (línea 46 aprox)
$mform->addElement('text', 'DNI', get_string('dni'), 'maxlength="9" size="20"');
$mform->setType('DNI', PARAM_TEXT);
$mform->addRule('DNI', get_string('missingadni'), 'required', null, 'server');
//Shared fields
...
Así te aparecerá justo después del campo Contraseña.
Ahora sí debe ir bien
Hasta pronto,
Salu2
J. Raul (jugarc4)
lo que lo puse así:
$mform->addElement('advcheckbox', 'preference_auth_forcepasswordchange', get_string
('forcepasswordchange'));
$mform->setHelpButton('preference_auth_forcepasswordchange',array('forcepasswordchange', get_string
('forcepasswordchange')));
$mform->addElement('text', 'DNI', get_string('dni'), 'maxlength="9" size="20"');
$mform->setType('DNI', PARAM_TEXT);
$mform->addRule('DNI', get_string('missingadni'), 'required', null, 'server');
/// shared fields
no se si era exactamente como decías pero funciona perfecto.
Saludos y gracias por todo!!
edito:me vas a matar...pero solo una cosa sencilla más. Como puedo añadir una "s" al final del campo apellido?para que quede Apellidos.
Es la ultima, eh?jejeje.
saludos!
saludos!
Tranquilo, preguntando se aprende
Sí, está bien así, en el idioma es lo mejor (limpio, rápido y sencillo).
Hasta pronto,
Salu2
J. Raul (jugarc4)
Saludo cordial Juan, le agradezco si me contesta lo mas pronto.
No Quiero añadir ningún tipo de campo de usuario de los que moodle 1.9.5 tiene(tiene 3)(area de txt, entrada de txt y menu de opciones). Yo lo que quiero es simplemente añadir al formulario un texto de indicación para la persona. Algo asi como: "NOTA: Le sugerimos hacer tal cosa una vez llene este formulario".
Es solo un texto. El usuario no tiene nada que elegir sino solo seguir esa indicación.
Como hago. y si me lo puede describir como a un novato. perdone tanta molestia.
Gracias. ahh... Puede responder los que quieran. Gracias de antemano
hola amigo Juan Raul Garcia Canet
tambien soy nuevo en esto de moodle , me gustaria saber como hacer para seguir apartir de este paso
"moodle/user/editadvanced_form.php"
como le puedo hace para que se pueda mostrar mi informacion previamente creada en bd.
De antemano muchas gracias.
Yo tengo el mismo problema (aparece la palabra entre corchetes dobles) y no lo he conseguido solucionar incluyendo la referencia en el archivo de idioma moodle.php. ¿Estoy haciendo algo mal?
Re: Duda añadir campo en formulario registro
tengo que modificar otro archivo?
a porque no se guardan
Re: Duda añadir campo en formulario registro
Hola!
Este post es antiguo tocar el codigo mismo de Moodle no es lo mas recomendado, quizás debas checkar el tema "Campos de Perfil de usuario", esta funcionalidad está implementada en Moodle y dentro de la configuración existe la posibilidad de configurar un campo como obligatorio dentro del formulario de registro sin necesidad de tocar el código fuente de Moodle
https://docs.moodle.org/all/es/Campos_de_perfil_de_usuario
Saludos!
Re: Duda añadir campo en formulario registro
Hola Miguel, gracias por la información.
Para agregar un nuevo campo solo tienes que ir a la opcion del menu de administracion: Usuarios > Cuentas > Campos de perfil del usuario.
Por aqui solo especificas el tipo del campo y sus opciones.
Espero te sea de ayuda...
Saludos,
saludos!