Jump to content

[Solucionado] Añadir información tipo CMS a formulario de contacto


matrezz

Recommended Posts

Hola,

 

No se si lo que pretendo es posible o no.

 

En una tienda prestashop para acceder a la pagina de contacto lo hago accediendo a web/contactenos y se va a la típica pantalla de contacto. Pero me gustaría que justo debajo de ese formulario me apareciera un págia CMS que yo definiera por ejemplo "informacion_adicional_contacto". En el que incluya información del tipo:

 

"Si lo desea puede contactar tambien a traves del teléfono etc etc etc... se añade un mapa.. etc"

 

Se que puedo tocar el tpl correspondiente y añado todo esto y listo. Pero me parece mas elegante lo que pretendo de manera que quedaria su futuro posible retoque dentro de CMS.

 

Gracias! 

 

EDIT: Por favor si algun admin pude que retoque el título añadiendo signos de preguntas para que nadie piense que estoy poniendo solución en lugar de preguntando. 

 

 

Saludos.

Edited by matrezz (see edit history)
Link to comment
Share on other sites

Vamos a crear un override del controlador del formulario de contacto.

 

Para ello, yo uso por ejemplo notepad++ http://notepad-plus-plus.org/

 

El nombre del fichero, sera el siguiente:

ContactController.php

Con este contenido:

<?php

class ContactController extends ContactControllerCore
{  

	public function initContent()
	{
		parent::initContent();

		$this->assignOrderList();

		$email = Tools::safeOutput(Tools::getValue('from',
		((isset($this->context->cookie) && isset($this->context->cookie->email) && Validate::isEmail($this->context->cookie->email)) ? $this->context->cookie->email : '')));
		$this->context->smarty->assign(array(
			'errors' => $this->errors,
			'email' => $email,
			'fileupload' => Configuration::get('PS_CUSTOMER_SERVICE_FILE_UPLOAD')
		));


		if (($id_customer_thread = (int)Tools::getValue('id_customer_thread')) && $token = Tools::getValue('token'))
		{
			$customerThread = Db::getInstance()->getRow('
				SELECT cm.* 
				FROM '._DB_PREFIX_.'customer_thread cm
				WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' 
				AND cm.id_shop = '.(int)$this->context->shop->id.' 
				AND token = \''.pSQL($token).'\'
			');
			$this->context->smarty->assign('customerThread', $customerThread);
		}

		$this->context->smarty->assign(array(
			'contacts' => Contact::getContacts($this->context->language->id),
			'message' => html_entity_decode(Tools::getValue('message')),
			'imprimirContenido' => new CMS(id_del_cms_a_mostrar, $this->context->cookie->id_lang)
		));

		$this->setTemplate(_PS_THEME_DIR_.'contact-form.tpl');
	}


}

      

Donde digo:

id_del_cms_a_mostrar

colocas el id del cms que tienes en la pestaña Preferencias -> CMS que quieres mostrar.

 

El fichero lo guardamos en el directorio:

/override/controllers/front/

El siguiente paso es borrar el fichero:

/cache/class_index.php

(Esto es para poder usar el override nuevo, no te preocupes porque el fichero se regenera automaticamente)

 

El siguiente paso es añadir en el tpl del formulario de contacto, que realmente queremos mostrar el contenido:

 

Fichero:

/themes/tu-plantilla/contact-form.tpl

Añade esto:

{$imprimirContenido->content}

  • Like 1
Link to comment
Share on other sites

Un placer ayudarte y servirte!

Si das el tema como solucionado, edita el titulo del tema, editando el primer mensaje, pulsando en editar, y después en "Usar editor completo", añadiendo la palabra "Solucionado" al titulo, esto ayudara, a mantener una mayor organización en el foro.

Un saludo y recuerda que estaremos en el foro, para guiarte por este mundo oscuro y tenebroso.

 

Si no sabes como añadir la palabra "Solucionado" al título del tema, aquí tienes una guía: http://www.prestashop.com/forums/topic/269515-solucionado-%C2%BFcomo-poner-la-palabra-solucionado-en-el-titulo-del-tema/

Link to comment
Share on other sites

hecho

 

Perfecto 

 

 

ademas se me ocurre que esta misma solución puedo aplicarla a otras zonas de la tienda y le podría dar valor añadido a otras zonas :D

 

Efectivamente, esto te puede servir de orientación, para otras cosas que quieras hacer en la tienda.

 

PD: Cierro tema.

 

Para cualquier otra duda no dudes en crear un tema nuevo, y si el tiempo me lo permite, estaré encantando de atenderte.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...