matrezz Posted September 22, 2013 Share Posted September 22, 2013 (edited) 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 September 22, 2013 by matrezz (see edit history) Link to comment Share on other sites More sharing options...
nadie Posted September 22, 2013 Share Posted September 22, 2013 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} 1 Link to comment Share on other sites More sharing options...
matrezz Posted September 22, 2013 Author Share Posted September 22, 2013 Gracias! ademas elegante con override sin tener que retocar mucho. Un Saludo! Link to comment Share on other sites More sharing options...
nadie Posted September 22, 2013 Share Posted September 22, 2013 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 More sharing options...
matrezz Posted September 22, 2013 Author Share Posted September 22, 2013 hecho y 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 Link to comment Share on other sites More sharing options...
nadie Posted September 22, 2013 Share Posted September 22, 2013 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 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 More sharing options...
Recommended Posts