MSS77 Posted May 14, 2013 Share Posted May 14, 2013 Hola He instalado el módulo gratuito de JGalleryView2, muy bueno! Este aparece en la página inicial de mi tienda Pero como lo hago para que esté integrado solo en un link CMS que tengo en el top menu? por ejemplo $cms->id == 7 He estado hojeando que hay que hacer un nuevo Hook y modificar el jgalleryview2php y el jgalleryview2.tpl, pero la verdad es que me pierdo durante el proceso. Tengo que tocar también el blocktopmenu ?? y el blockcms ?? ¿ Alguién me puede explicar como ? Gracias Link to comment Share on other sites More sharing options...
jesa Posted May 14, 2013 Share Posted May 14, 2013 No he usado nunca ese módulo, pero para anclarlo a distintos hook y crear nuevos, puedes ver este hiilo http://www.prestashop.com/forums/topic/141593-crear-nuevo-hook-y-modificar-modulo-para-usar-un-hook-concreto/ Link to comment Share on other sites More sharing options...
MSS77 Posted May 14, 2013 Author Share Posted May 14, 2013 Estaba mirando, y mi gran duda es: Este modulo de imagenes se muestra en el home de inicio Para que se vea solo clicando desde un CMS es necesario crear un hook nuevo ?. Quiero decir que yo lo quiero enseñar en la columna central como ya lo hace, pero solo al clicar primero el boton. No hay forma de redirigir la página de CMS para que abra la galería en el centro ? gracias! Estoy ofuscado y se me acaban la ideas Link to comment Share on other sites More sharing options...
jesa Posted May 14, 2013 Share Posted May 14, 2013 Para que no te aparezca en la página inicial, tendrás que ir a Modulos->Posiciones y eliminarlo del hook que supongo que será HomePagecontent. Para añadir un link al menú tienes la opción dentro de la misma configuración del módulo. Lo que tendrás que buscar es la dirección que tienes que poner para que cargue el módulo, eso ya tendrás que investigar como hace el módulo para cargarlo. Link to comment Share on other sites More sharing options...
MSS77 Posted May 14, 2013 Author Share Posted May 14, 2013 Ya prové de llamarlo desde un link en el menú. Llamo al php pero me dice que no encuentra la classe que se declara en el módulo. Quizá tengo que llamar a otro archivo ? normalmente es un php ? u otro... Link to comment Share on other sites More sharing options...
jesa Posted May 14, 2013 Share Posted May 14, 2013 Por si solo no creo que te permita cargar el módulo, tendrás que crearte un php que haga la misma funcionalidad... Como te digo desconozco el módulo porque no lo he usado, pero imagino que tendrás que cargar el tpl desde tu fichero php y en caso de necesitar datos que mostrar, cargar los datos. Todo eso seguramente lo tienes en el propio módulo, solo lo tienes que extrapolar a tu situación y adaptarlo para recuperar supongo, las imágenes que quieres mostrar y cargar el tpl Link to comment Share on other sites More sharing options...
MSS77 Posted May 14, 2013 Author Share Posted May 14, 2013 Y como se hace eso ? cargar tpl desde php? Veo que en los otros modulos, por ejemplo el del CMS tienes en el cms.php require(dirname(__FILE__).'/config/config.inc.php'); Tools::displayFileAsDeprecated(); Tools::redirect('index.php?controller=cms'.($_REQUEST ? '&'.http_build_query($_REQUEST, '', '&') : ''), __PS_BASE_URI__, null, 'HTTP/1.1 301 Moved Permanently'); Entiendo que llama al CmsController.php no ?! o que hace ? Y después desde allí, comprueba que todos esté ok y llama al tpl ??!? En el modulo que tengo no veo ningun php que llame a un controller... La verdad voy perdido con esto... Link to comment Share on other sites More sharing options...
jesa Posted May 14, 2013 Share Posted May 14, 2013 Desconozco los conocimientos que tienes de programación php...pero si no sabes te será quizás complicado realizar lo que quieres. Si te fijas en la documentación de prestashop, un módulo tiene que tener al menos un logo, creo recordar que a partir de la versión 1.5 necesitas uno png y otro jpg y además una clase php con el mismo nombre del módulo. A partir de ahí, cada módulo puede tener lo que necesite para funcionar. El código que indicas del CMS no es del módulo, es porque el CMS es una funcionalidad nativa que proporciona prestashop. En principio no vas o no deberías ver ningún controller dentro de un módulo porque los controller van en su directorio correspondiente. Espera a ver si alguien ha realizado esto mismo y te puede ayudar. Supongo que se podrá crear sin necesidad de crear controllers que ya es meterte en mucha harina. Link to comment Share on other sites More sharing options...
MSS77 Posted May 14, 2013 Author Share Posted May 14, 2013 (edited) Ok. Lo que me desconcierta es saber como/donde se dice exactamente, por ejemplo, que el formulario de contacto (contact-form) se va a mostrar en el centro al clicar su pestaña de 'Contacta'. Saber el proceso que hace me facilitaría creo el poder clonar el mismo procedimiento. Ver que hace el php (donde), el tpl, el controller (si hay), etc... Edited May 14, 2013 by MSS77 (see edit history) Link to comment Share on other sites More sharing options...
jesa Posted May 14, 2013 Share Posted May 14, 2013 Saber el proceso que hace me facilitaría creo el poder clonar el mismo procedimiento. Ver que hace el php (donde), el tpl, el controller (si hay), etc... Como te comenté antes, esta información de tu módulo la tienes en el propio módulo. Como te decía antes, tienes que tener un .php con el mismo nombre del módulo. Ahí tienes que tener un método que se llame hookNombreHook en el que se muestra. Ahí podrás ver la información que necesita para cargar el módulo y el tpl que carga que también estará dentro del módulo. Link to comment Share on other sites More sharing options...
MSS77 Posted May 14, 2013 Author Share Posted May 14, 2013 Si lo tengo localizado en el php del modulo. Hay dos funciones una, hookHeader que carga el tpl del mismo nombre donde hay los javascripts. y otro hookHome donde carga la galería, el tpl, entiendo en el homepage de inicio ¿ Aquí no hay forma de decirle que ok, ponlo allí, pero solo si clico el boton en cuestión del topmenu ?? mi php es limitado y tampoco acabo de entender del todo que hace la función function hookHeader($params) { return $this->display(__FILE__, 'header.tpl'); } function hookHome($params) { if ($xml = $this->_xml) { global $cookie, $smarty; $smarty->assign(array( 'xml' => $xml, 'title' => 'title_'.$cookie->id_lang, 'text' => 'text_'.$cookie->id_lang )); return $this->display(__FILE__, $this->name.'.tpl'); } return false; } Link to comment Share on other sites More sharing options...
jesa Posted May 14, 2013 Share Posted May 14, 2013 Los hook no funcionan así, es un ancla y se carga en él, el módulo anclado. Los hook llevan por detrás una lógica de negocio que no es simplemente una llamada con un cick. Si me lo permites, veo 3 opciones: Que te tomes un tiempo para conocer prestashop(Guia desarrollador) y programación php para poder hacerlo. Que esperes a que alguien que halla realizado este cambio te pase la información(O de otro módulo parecido). Que pidas un presupuesto en la sección correspondiente del foro para que alguien te lo haga. Link to comment Share on other sites More sharing options...
Recommended Posts