Duda añadir campo en formulario registro

Duda añadir campo en formulario registro

de Lao Shan -
Número de respuestas: 21
Hola a todos!

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!
Promedio de valoraciones: -
En respuesta a Lao Shan

Re: Duda añadir campo en formulario registro

de Raul Garcia Canet -
Hola Adri,

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
En respuesta a Raul Garcia Canet

Re: Duda añadir campo en formulario registro

de Lao Shan -
hola muchas gracias!pero tengo alguna duda. Como creo y en donde el campo dni en la base de datos?
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!
En respuesta a Lao Shan

Re: Duda añadir campo en formulario registro

de Raul Garcia Canet -
Hola Adri,

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) guay

En respuesta a Raul Garcia Canet

Re: Duda añadir campo en formulario registro

de Lao Shan -
hola muchisisisismas gracias!
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
En respuesta a Lao Shan

Re: Duda añadir campo en formulario registro

de Raul Garcia Canet -
Hola Adri,

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) guay



En respuesta a Raul Garcia Canet

Re: Duda añadir campo en formulario registro

de Lao Shan -
muchas gracias por las molestias, pero lo he hecho tal cual me dices y me sale el campo dni en minúsculas y con estas llaves [[ al registrarse.

Porque puede ser?
En respuesta a Lao Shan

Re: Duda añadir campo en formulario registro

de Raul Garcia Canet -
Hola Adri,
¿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) guay

En respuesta a Raul Garcia Canet

Re: Duda añadir campo en formulario registro

de Lao Shan -
mira sale así (te lo adjunto), funcionar funciona bien, aunque tengo que entrar en mdl_user para ver los dni de los usuarios (supongo que es lo normal)

entonces añado la linea que me has puesto?Es que queda un pelin mal con [[

espero tu respuesta, graciaaaassss mil!
Adjunto dni.jpeg
En respuesta a Lao Shan

Re: Duda añadir campo en formulario registro

de Raul Garcia Canet -
Pues sí, efectivamente debes añadir, la línea:

$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 sonrojado

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 gran sonrisa

Hasta pronto,
Salu2
J. Raul (jugarc4) guay
En respuesta a Raul Garcia Canet

Re: Duda añadir campo en formulario registro

de Lao Shan -
PERFECT!eres un genio Juan Raúl!

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!
En respuesta a Lao Shan

Re: Duda añadir campo en formulario registro

de Lao Shan -
ya lo he cambiado en la edición de idioma, está bien así no?o es mejor de alguna otra forma?

saludos!
En respuesta a Lao Shan

Re: Duda añadir campo en formulario registro

de Raul Garcia Canet -
Hola Adri,
Tranquilo, preguntando se aprende guiño
Sí, está bien así, en el idioma es lo mejor (limpio, rápido y sencillo).

Hasta pronto,
Salu2
J. Raul (jugarc4) guay
En respuesta a Raul Garcia Canet

Re: Duda añadir campo en formulario registro

de luchito alva -

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

En respuesta a Raul Garcia Canet

Re: Duda añadir campo en formulario registro

de gela cortez -

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.

En respuesta a Lao Shan

Re: Duda añadir campo en formulario registro

de David Nieto-Sandoval -

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?

En respuesta a Raul Garcia Canet

Re: Duda añadir campo en formulario registro

de Nestor Gustavo Cruz Baños -
hola juan, ya agregue los campos que necesitaba al formulario y a la base de datos en la tabla mdl_user pero no se guardan los campos que agregue 

tengo que modificar otro archivo?

a porque no se guardan

En respuesta a Nestor Gustavo Cruz Baños

Re: Duda añadir campo en formulario registro

de Miguel Angel Velasquez Teran -
Imagen de Moodlers de gran ayuda

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!

En respuesta a Lao Shan

Re: Duda añadir campo en formulario registro

de Jane Celis -
Hola,

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,
En respuesta a Jane Celis

Re: Duda añadir campo en formulario registro

de Lao Shan -
si lees todo el hilo verás que ya estaba resuelto hace tiempo, y era sobre añadir un campo en el formulario de registro, de todas formas muchas gracias.

saludos!