Hola, tengo un problema.
Como puedo añadir el campo Teléfono al Formulario de contacto Nativo de Joomla 3.0x ?
Solo quiero añadir ese campo pero no hay manera. :-)
A poder ser no quiero instalar ningún componente, solo quiero que me salga el campo Teléfono para que el cliente pueda poner su Teléfono de contacto.
Gracias.
Advertisement
Añadir campo de Telefono a formulario de contacto nativo
Moderator: hefesto
-
- Joomla! Fledgling
- Posts: 1
- Joined: Mon Jan 27, 2014 8:19 am
Advertisement
-
- Joomla! Explorer
- Posts: 345
- Joined: Sat Mar 10, 2012 2:29 am
Re: Añadir campo de Telefono a formulario de contacto nativo
Hola @geo26, bienvenido al foro:
Lo primero que tienes que hacer es, poner dentro del contacto, el télefono. Luego asegurarte en las opciones del componente, que el campo "teléfono" este marcado en mostrar. Con esto te tiene que salir ese campo.
Lo primero que tienes que hacer es, poner dentro del contacto, el télefono. Luego asegurarte en las opciones del componente, que el campo "teléfono" este marcado en mostrar. Con esto te tiene que salir ese campo.
-
- Joomla! Explorer
- Posts: 345
- Joined: Sat Mar 10, 2012 2:29 am
Re: Añadir campo de Telefono a formulario de contacto nativo
Creo que te entendí mal. Si lo que quieres es que un "usuario" ponga su teléfono, entonces debes ir al gestor de plugin, y filtrar por los plugin de tipo "user". El plugin "Usuario - Perfil" es el que se encarga de poner en opcional o obligatorio, los campos del perfil para los formularios de registro y administración.
Una vez que pongas esto, el usuario cuando se va a registrar, tiene que poner su teléfono. Y lo que te dije más arriba, ya hace que salga este campo.
Una vez que pongas esto, el usuario cuando se va a registrar, tiene que poner su teléfono. Y lo que te dije más arriba, ya hace que salga este campo.
-
- Joomla! Explorer
- Posts: 345
- Joined: Sat Mar 10, 2012 2:29 am
Re: Añadir campo de Telefono a formulario de contacto nativo
Vaya, al parecer tengo mala lectura hoy
. Ya entiendo lo que quieres. Añadir un campo más al formulario de contacto de Joomla. Ostras, que difícil se me ha hecho comprender esto
.
Bueno. En primera, Joomla no permite (desde la administración) añadir un nuevo campo al formulario de contacto. Te muestro dos soluciones para esto.
La primera, y es la que te recomiendo, es que cambies el nombre "Asunto" por "Teléfono" y a efectos tuyos, te funcionara muy bien, ya que en el "Asunto" del correo que te llegue, veras un nombre de teléfono. Este cambio lo puedes hacer desde el gestor de idiomas, en la pestaña "Modificaciones". Acá creas una nueva, buscas esta palabra y la cambias. Te muestro un tutorial para hacer esto: Editar y modificar Constantes o Valores de Idioma
La otra vía, y la que no te recomiendo, es hacer estos pequeños cambios en Joomla. No te la recomiendo ya que modificar el core de Joomla, a pesar de que esta modificación no afecta en nada, ni es una modificación "extrema", pero es una modificación que nunca me gusta hacer. Sino puedo modificar las cosas a través de un override pues no lo hago. Pero bueno, tu decidirás si la pones o no.
PRIMER PASO
Copia este fichero:
tusitio\components\com_contact\views\contact\tmpl\default_form.php
y ponlo para la carpeta HTML de tu plantilla:
tusitio\templates\tuplantilla\html\com_contact\default_form.php
Abre el archivo default_form.php y añade lo siguiente:
Te puse en negrita (entre las etiquetas [ b ]....[ /b ]) lo que tienes que añadir, y en ese lugar lo añades.
SEGUNDO PASO
A partir de aquí empiezas a modificar el core de Joomla, debes tenerla presente, para cuando actualices el sitio, ya que se te borra una vez actualices.
Luego vas a:
tusitio\components\com_contact\models\forms\contact.xml
Una vez ahí, lo abres para editarlo. Añades lo siguiente:
Al igual que el otro, te he puesto en negrita (entre las etiquetas [ b ]....[ /b ]) lo que tienes que añadir, y en ese lugar lo colocas.
TERCER PASO
Vas a:
tusitio\language\es-ES\es-ES.com_contact
Y lo abres para editarlo. Añade lo siguiente al final del mismo:
CUARTO PASO
Ya este último paso es para que llegue el teléfono, en conjunto con el correo que enviaron. Vas a:
tusitio\components\com_contact\controllers\contact.php
Lo abres para editarlo. Añades la siguiente línea:
Te he puesto en negrita (entre las etiquetas [ b ]....[ /b ]) lo que tienes que añadir, y lo añades en ese lugar.
y más abajo cambias esta línea:
Por esta otra:
Te he puesto en negrita (entre las etiquetas [ b ]....[ /b ]), en donde estaba la línea que tenías que cambiar anteriormente, y la que tienes que poner.
Bueno, espero que sepas que vía tomar.


Bueno. En primera, Joomla no permite (desde la administración) añadir un nuevo campo al formulario de contacto. Te muestro dos soluciones para esto.
La primera, y es la que te recomiendo, es que cambies el nombre "Asunto" por "Teléfono" y a efectos tuyos, te funcionara muy bien, ya que en el "Asunto" del correo que te llegue, veras un nombre de teléfono. Este cambio lo puedes hacer desde el gestor de idiomas, en la pestaña "Modificaciones". Acá creas una nueva, buscas esta palabra y la cambias. Te muestro un tutorial para hacer esto: Editar y modificar Constantes o Valores de Idioma
La otra vía, y la que no te recomiendo, es hacer estos pequeños cambios en Joomla. No te la recomiendo ya que modificar el core de Joomla, a pesar de que esta modificación no afecta en nada, ni es una modificación "extrema", pero es una modificación que nunca me gusta hacer. Sino puedo modificar las cosas a través de un override pues no lo hago. Pero bueno, tu decidirás si la pones o no.
PRIMER PASO
Copia este fichero:
tusitio\components\com_contact\views\contact\tmpl\default_form.php
y ponlo para la carpeta HTML de tu plantilla:
tusitio\templates\tuplantilla\html\com_contact\default_form.php
Abre el archivo default_form.php y añade lo siguiente:
Code: Select all
<div class="control-group">
<div class="control-label"><?php echo $this->form->getLabel('contact_email'); ?></div>
<div class="controls"><?php echo $this->form->getInput('contact_email'); ?></div>
</div>
[b]<div class="control-group">
<div class="control-label"><?php echo $this->form->getLabel('contact_phone'); ?></div>
<div class="controls"><?php echo $this->form->getInput('contact_phone'); ?></div>
</div>[/b]
<div class="control-group">
<div class="control-label"><?php echo $this->form->getLabel('contact_subject'); ?></div>
<div class="controls"><?php echo $this->form->getInput('contact_subject'); ?></div>
</div>
SEGUNDO PASO
A partir de aquí empiezas a modificar el core de Joomla, debes tenerla presente, para cuando actualices el sitio, ya que se te borra una vez actualices.
Luego vas a:
tusitio\components\com_contact\models\forms\contact.xml
Una vez ahí, lo abres para editarlo. Añades lo siguiente:
Code: Select all
<field name="contact_email"
type="email"
id="contact-email"
size="30"
description="COM_CONTACT_EMAIL_DESC"
label="COM_CONTACT_EMAIL_LABEL"
filter="string"
validate="contactemail"
required="true"
/>
[b]<field name="contact_phone"
type="text"
id="contact-phone"
size="30"
description="COM_CONTACT_PHONE_DESC"
label="COM_CONTACT_PHONE_LABEL"
filter="string"
required="true"
/>[/b]
<field name="contact_subject"
type="text"
id="contact-emailmsg"
size="60"
description="COM_CONTACT_CONTACT_MESSAGE_SUBJECT_DESC"
label="COM_CONTACT_CONTACT_MESSAGE_SUBJECT_LABEL"
filter="string"
validate="contactemailsubject"
required="true"
/>
TERCER PASO
Vas a:
tusitio\language\es-ES\es-ES.com_contact
Y lo abres para editarlo. Añade lo siguiente al final del mismo:
Code: Select all
COM_CONTACT_PHONE_LABEL="Teléfono"
COM_CONTACT_PHONE_DESC="Teléfono de contacto"
Ya este último paso es para que llegue el teléfono, en conjunto con el correo que enviaron. Vas a:
tusitio\components\com_contact\controllers\contact.php
Lo abres para editarlo. Añades la siguiente línea:
Code: Select all
$name = $data['contact_name'];
$email = JStringPunycode::emailToPunycode($data['contact_email']);
[b]$phone = $data['contact_phone'];[/b]
$subject = $data['contact_subject'];
$body = $data['contact_message'];
y más abajo cambias esta línea:
Code: Select all
$mail->setSubject($sitename.': '.$subject);
Code: Select all
$mail = JFactory::getMailer();
$mail->addRecipient($contact->email_to);
$mail->addReplyTo(array($email, $name));
$mail->setSender(array($mailfrom, $fromname));
[b]$mail->setSubject($sitename.': '.$subject.' Tel:'.$phone);[/b]
$mail->setBody($body);
$sent = $mail->Send();
Bueno, espero que sepas que vía tomar.
- fernando_calsa
- Joomla! Intern
- Posts: 57
- Joined: Mon Jun 10, 2013 5:50 pm
- Location: Madrid
- Contact:
Re: Añadir campo de Telefono a formulario de contacto nativo
e instalar un componente de formularios? mejor que tocar el core de joomla y que cambiar la constante de idioma no?
Intentando mejorar cada día
twitter: @fernando_calsa
El ciclismo, mi vida; La ingeniería, mi pasión; Joomla, mi perdición
twitter: @fernando_calsa
El ciclismo, mi vida; La ingeniería, mi pasión; Joomla, mi perdición
- hefesto
- Joomla! Hero
- Posts: 2579
- Joined: Fri Jan 20, 2006 12:37 am
- Location: Seville - Spain
- Contact:
Re: Añadir campo de Telefono a formulario de contacto nativo
Coincido con Fernando, Carlos. Tocar el core nunca debería ser una opción. A la larga suele traer problemas. Yo optaría por usar un componente de formularios: Chronoforms por ejemplo es gratuito, y trae "de serie" un plugin que te permite usar fácilmente uno de sus formularios para el registro de usuarios.
Un saludo,
Isidro
Un saludo,
Isidro
Spanish forum local moderator
Twitter: @isidrobaq
Comunidad Joomla de España: https://joomlaes.org
NO atiendo peticiones privadas de soporte. Por favor, pregunta en los foros.
Twitter: @isidrobaq
Comunidad Joomla de España: https://joomlaes.org
NO atiendo peticiones privadas de soporte. Por favor, pregunta en los foros.
Advertisement