baravaro Posted November 6, 2015 Share Posted November 6, 2015 Hola, soy nuevo por aquí. No se si el título es correcto y suficiente explicativo, pero aquí va el meollo de la cuestión. Tengo un modulo de testimonio que se muestra en el sidebar como un bloque llamado "Belvg Testimonials". Perfecto, pero además se me pidoeque ponga bajo el menu "sobre nosotros" un dropdown con un unlace hacia la pagina de testimonios del modulo. Mi idea principal fue crear una categoria CMS "sobre nosotros" y debajo crear una pagina "testimonio" en la categoria CMS Sobre nosotros, pero al crear la pagina, como introduzco el contenido del módulo? O generar un link que vayya a ese contenido? Se que no tiene mucho sentido ya que desde el sidebar hay un enlace a una pagina con todos los testimonios, aún así el cliente quiere que este en el menú horizontal, y no logro dar como añadirlo ya que la configuración del modulo no permite más que el numero de testimonios mostrados gracias Link to comment Share on other sites More sharing options...
ventura Posted November 6, 2015 Share Posted November 6, 2015 (edited) Si el modulo tiene un controller para el front puedes obtener el enlace desde Preferencias / SEO + URLs --> Añadir nueva pagina Si el modulo tiene un controlador para el front te debe de aparecer alli y alli puedes configurar el enlace ( urls amigables activadas). O puedes directamente crear el enlace en el .tpl con: <a href="{$link->getModuleLink('nombre_modulo', 'nombre_controller_del_modulo')|escape:'html'}" title="{l s='Titulo del enlace' mod='nombre_modulo'}"> Edited November 6, 2015 by ventura (see edit history) Link to comment Share on other sites More sharing options...
baravaro Posted November 6, 2015 Author Share Posted November 6, 2015 Y como le digo a ese enlace que vaya a la nueva pagina CMS de Testimonios? Porque al crear la página no tengo niguna opción de añadir un link o algo, solo puedo introducir contenido. O como puedo añadir ese link a un submenú desde el blocktopmenu? Link to comment Share on other sites More sharing options...
ventura Posted November 6, 2015 Share Posted November 6, 2015 No estoy seguro de haberme enterado bien de lo que quieres hacer -Si ese modulo ya te genera un pagina con el contenido, no necesitas nada mas, ni crear otra pagina para mostrar ese contenido, solo enlazarlo -En el modulo blocktopmenu puedes añadir cualquier enlace, en "Añadir un nuevo enlace" Link to comment Share on other sites More sharing options...
baravaro Posted November 6, 2015 Author Share Posted November 6, 2015 Exactamente lo que acabas de decir, es lo que quiero. El modulo genera una página, pero mi dificultad está en que no puedo añadirlo como submenu de un menú existente, blocktopmenu no me permite hacerlo (o no se hacerlo). La idea del menu sería algo así "About us > Testimonials", donde testimonials es un submenu de about us. Como no lo conseguí, leí por ahí acerca de crear submenus a traves de categorías y páginas CMS. Pero mi idea principal es esa, conseguir que la pagina de testimonios aparezca como un submenu desplegable de about us Link to comment Share on other sites More sharing options...
ventura Posted November 6, 2015 Share Posted November 6, 2015 (edited) Vale, entonces lo que tienes que hacer es simplemente una redireccion, crear esa pagina cms ,simplemente para tener un id y luego la redireccionas a la pagina del modulo. Puedes hacerlo de varias maneras, desde el .htaccess, desde el CmsController,php o desde el cms.tpl, un ejemplo seria asi \themes\tu-plantilla\cms.tpl en la parte de arriba debajo de los comentarios añades esto {if $cms->id == 2} {Tools::redirect($link->getModuleLink('nombre_del_modulo', 'nombre_controller_del_modulo'))}; {/if} donde 2 es el id del cms creado que quieres redireccionar Edited November 6, 2015 by ventura (see edit history) Link to comment Share on other sites More sharing options...
baravaro Posted November 9, 2015 Author Share Posted November 9, 2015 Y para añadirlo al submenú de "about us" ya creado? Link to comment Share on other sites More sharing options...
ventura Posted November 9, 2015 Share Posted November 9, 2015 El resultado es el mismo que con una redireccion. Si utilizas el modulo blocktopmenu \modules\blocktopmenu\blocktopmenu.php Sustituye esta parte foreach ($pages as $page) { $cms = new CMS($page['id_cms'], (int)$id_lang); $links = $cms->getLinks((int)$id_lang, array((int)$cms->id)); $selected = ($this->page_name == 'cms' && ((int)Tools::getValue('id_cms') == $page['id_cms'])) ? ' class="sfHoverForce"' : ''; $this->_menu .= '<li '.$selected.'>'; $this->_menu .= '<a href="'.$links[0]['link'].'">'.$cms->meta_title.'</a>'; $this->_menu .= '</li>'; } $this->_menu .= '</ul>'; } por esto foreach ($pages as $page) { $cms = new CMS($page['id_cms'], (int)$id_lang); $links = $cms->getLinks((int)$id_lang, array((int)$cms->id)); $selected = ($this->page_name == 'cms' && ((int)Tools::getValue('id_cms') == $page['id_cms'])) ? ' class="sfHoverForce"' : ''; if ($cms->id==7){ $this->_menu .= '<li '.$selected.'>'; $this->_menu .= '<a href="'.$this->context->link->getModuleLink('nombre_del_modulo', 'nombre_controller_del_modulo').'">'.$cms->meta_title.'</a>'; $this->_menu .= '</li>'; } else { $this->_menu .= '<li '.$selected.'>'; $this->_menu .= '<a href="'.$links[0]['link'].'">'.$cms->meta_title.'</a>'; $this->_menu .= '</li>'; } } $this->_menu .= '</ul>'; } el id 7 es el id de la pagina CMS que quieres sustuir Link to comment Share on other sites More sharing options...
baravaro Posted November 9, 2015 Author Share Posted November 9, 2015 Ok, voy a intentarlo, aunque da un poco de miedo tocar codigo jajaja. Como consigo el nombre controller del modulo? Link to comment Share on other sites More sharing options...
ventura Posted November 9, 2015 Share Posted November 9, 2015 (edited) La ruta suele ser el_modulox/controller/front/nombre_controller.php Edited November 9, 2015 by ventura (see edit history) Link to comment Share on other sites More sharing options...
baravaro Posted November 9, 2015 Author Share Posted November 9, 2015 Vale, en la ruta citada el archivo encontrado es "view.php", por lo que entiendo que esta linea de codigo sería así: $this->_menu .= '<a href="'.$this->context->link->getModuleLink('testimonials', 'view.php').'">'.$cms->meta_title.'</a>'; Sería correcto? Link to comment Share on other sites More sharing options...
ventura Posted November 9, 2015 Share Posted November 9, 2015 $this->_menu .= '<a href="'.$this->context->link->getModuleLink('testimonials', 'view').'">'.$cms->meta_title.'</a>'; 1 Link to comment Share on other sites More sharing options...
baravaro Posted November 9, 2015 Author Share Posted November 9, 2015 Muchisimas gracias, has sidod e gran ayuda! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now