Avisos
Vaciar todo

Problema con mail_html_question

8 Respuestas
3 Usuarios
0 Reactions
409 Visitas
Denver
Respuestas: 36
Eminent Member
Topic starter
 

Buenas tardes,

Con Joomla 2.5 (o el antiguo Virtuemart) tenía 3 archivos modificados:

form.php
mail_confirmed.php
mail_html_question.php

En la ruta /components/com_virtuemart/views/askquestion/tmpl

Estaban modificados de modo que apareciera como condición obligatoria el teléfono, de modo que en form.php puse una nueva etiqueta:

<input type="text" class="validate[required,custom[phone]]" value="phone ?>" name="phone" id="phone" size="30"  validation="required phone"/>
  

Y en mail_html_question.php, que es el archivo a través del cual se envía el mail...


    user['name']) . "
"; echo JText::_('COM_VIRTUEMART_USER_FORM_EMAIL') . " : " . $this->user['email'] . "
"; echo JText::_('COM_VIRTUEMART_SHOPPER_FORM_PHONE') . " : " . $this->phone . "
"; echo $this->comment. "
"; ?>

Ahora bien, parece ser que al actualizar a Joomla 3.0 (imagino que también Virtuemart) ha cambiado un poco la cosa. No hay problema al actualizar form.php ni mail_confirmed.php, pero a la hora de modificar mail_html_question.php no consigo que me aparezca en el e-mail el teléfono. Adjunto captura de cómo lo he intentado hacer, y no funciona.

A la izquierda el antiguo archivo que funcionaba, y a la derecha el nuevo modificado. ¿A alguno se le ocurre alguna idea? ¿Qué estoy haciendo mal?

Gracias.

URL del sitio: Contenido solo visible a usuarios registrados


 
Respondido : 02/06/2017 1:38 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

Envía mejor los archivos, puedes comprimirlo en formato .zip y enviarlo para ver el código completo.
De manera general, por lo que veo sería crear nuevamente el control, ya que veo que estas colocandolo incorrectamente como parte de otro campo.

Saludos.


 
Respondido : 02/06/2017 7:43 pm
Denver
Respuestas: 36
Eminent Member
Topic starter
 

Adjunto los originales y las modificaciones.


 
Respondido : 05/06/2017 2:05 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola

En tu archivo de formulario modificado prueba usar:

$this->user->phone

En lugar de :

$this->phone

Saludos.


 
Respondido : 05/06/2017 10:48 pm
Denver
Respuestas: 36
Eminent Member
Topic starter
 

Nada, lo he intentado pero no funciona.


 
Respondido : 06/06/2017 11:43 am
Rafael
Respuestas: 1975
Noble Member Moderator
 

Hola Denver,

Veo que este tema ya se ha tratado en el foro oficial de VirtueMart para la versión 3, te propongo que eches un vistazo a las dos soluciones se ofrecen y revisa si con ello se corrige el problema para mostrar el teléfono. Luego solo tendrás que requerirlo poniendo el atributo correspondiente:

https://forum.virtuemart.net/index.php?topic=135176.0

Recuerda que desde foro, no damos asistencia a programación tal y como pone en la cabecera

¡Gracias!


 
Respondido : 06/06/2017 12:35 pm
Denver
Respuestas: 36
Eminent Member
Topic starter
 

Ufff pues sí mira, tenías razón Rafael, ahí salía todo.
Mira que me he mirado como 2.000 foros y ese hilo no lo he encontrado por ningún lado.

Voy a intentar ponérselo fácil al siguiente que llegue, y pongo las modificaciones que me han servido. Probablemente tras cada actualización de VM haya que hacerlo de nuevo, porque yo he modificado el core directamente; porque mi plantilla (Helena) no tiene carpeta html/com_virtuemart/askquestion/...

1. Cambiar en el archivo /public_html/components/com_virtuemart/views/askquestion/view.html.php lo que está en negrita:

function renderMailLayout () {

$this->setLayout ('mail_html_question');
$this->comment = vRequest::getString ('comment');
$this->phone = vRequest::getString ('phone');

$this->user = JFactory::getUser ();
if (empty($this->user->id)) {
$fromMail = vRequest::getEmail ('email'); //is sanitized then
$fromName = vRequest::getVar ('name', ''); //is sanitized then
//$fromMail = str_replace (array(''', '"', ',', '%', '*', '/', '\', '?', '^', '`', '{', '}', '|', '~'), array(''), $fromMail);
$fromName = str_replace (array(''', '"', ',', '%', '*', '/', '\', '?', '^', '`', '{', '}', '|', '~'), array(''), $fromName);
$this->user->email = $fromMail;
$this->user->name = $fromName;
}

2. Cambiar en el archivo /public_html/components/com_virtuemart/views/askquestion/tmpl/form.php lo que está en negrita, ponerlo después del

de ('COM_VIRTUEMART_USER_FORM_EMAIL'):

<input type="text" class="validate[required,minSize[8],maxSize[15]]" value="phone ? $this->phone : $askQuestionData['phone'] ?>" name="phone" id="name" size="30" validation="required phone"/>

3. Cambiar en el archivo /public_html/components/com_virtuemart/views/askquestion/tmpl/mail_html_question.php lo que está en negrita:

user->name, $this->user->email); ?>

phone; ?>

comment; ?>

4. Cambiar en el archivo /public_html/components/com_virtuemart/views/askquestion/tmpl/mail_raw_question.php lo que está en negrita:

vendor->vendor_store_name) . "n" . "n";
echo vmText::_('COM_VIRTUEMART_QUESTION_ABOUT') . ' '. $this->product->product_name;
if ($this->product->product_sku) echo vmText::_('COM_VIRTUEMART_PRODUCT_SKU').' '.$this->product->product_sku .')' ;
echo "n" . "n";
echo vmText::sprintf('COM_VIRTUEMART_QUESTION_MAIL_FROM', $this->user->name, $this->user->email) . "n";
echo $this->phone. "n";
echo $this->comment. "n";


 
Respondido : 06/06/2017 5:53 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola Denver

Que bueno que lo solucionaste.

Gracias por el aporte.

Saludos.


 
Respondido : 06/06/2017 7:30 pm