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
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.
Hola
En tu archivo de formulario modificado prueba usar:
$this->user->phone
En lugar de :
$this->phone
Saludos.
Nada, lo he intentado pero no funciona.
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!
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";
Hola Denver
Que bueno que lo solucionaste.
Gracias por el aporte.
Saludos.