ales699 Posted October 24, 2017 Share Posted October 24, 2017 (edited) La cosa es que tengo instalado las últimas noticias del blog en la home de mi página y sólo lo actualizo en Español y Inglés. ¿Podría ocultar este módulo en el resto de idiomas de mi tienda? Utilizo Prestashop 1.6.1.13 Gracias Edited October 24, 2017 by ales699 (see edit history) Link to comment Share on other sites More sharing options...
joseantgv Posted October 24, 2017 Share Posted October 24, 2017 On 10/24/2017 at 9:18 AM, ales699 said: La cosa es que tengo instalado las últimas noticias del blog en la home de mi página y sólo lo actualizo en Español y Inglés. ¿Podría ocultar este módulo en el resto de idiomas de mi tienda? Utilizo Prestashop 1.6.1.13 Gracias Expand Por config no es posible deshabilitar un módulo a nivel de idioma. Tendrías que tocar el código. Link to comment Share on other sites More sharing options...
nadie Posted October 24, 2017 Share Posted October 24, 2017 (edited) Si es el hook donde se instala el módulo, puedes hacerlo en la propia clase del módulo en un condicional. Es decir, dentro de la función del hook del módulo, hacer algo así: $iso_code = $this->context->language->iso_code; /* Idioma en el que no quieras que apareza */ if ($iso_code=="en") return; Un ejemplo rapido, un módulo que se muestra en el "displayHome", cuanto te metes dentro de la clase del módulo, veras por ejemplo una función parecia a la siguiente: public function hookdisplayHome($params) { $iso_code = $this->context->language->iso_code; /* Idioma en el que no quieras que apareza */ if ($iso_code=="en") return; lineas de codigo que existan.... ....... .... return $this->display(__FILE__, 'xxxx.tpl', $this->getCacheId()); } La otra opción, mas chapuzera es hacerlo dentro del "propio tpl" del módulo, con: {if $cookie->id_lang=='id_idioma'} .... {/if} Dicho esto... Esto que te digo, como dices que usas Prestashop 1.6, te indico que es para Prestashop 1.6. (lo digo para futuros visitantes, esto es para la 1.6 ya que el que pregunta tiene la 1.6, para la 1.7 el tema de algunas variables cambia en algunas cuestiones) Dicho esto, solo te he puesto un par de ejemplo de los muchos que puedes encontrar. Edited October 24, 2017 by nadie (see edit history) Link to comment Share on other sites More sharing options...
ales699 Posted October 24, 2017 Author Share Posted October 24, 2017 {if $cookie->id_lang=='id_idioma'} .... {/if} Este método me parece más fácil aunque sea algo chapuza, ¿hay algún inconveniente por usar este respecto al otro? ¿Y cómo puede hacer para que aparezca en dos idiomas? Es que sólo di puesto uno. Muchas gracias por las respuestas Link to comment Share on other sites More sharing options...
nadie Posted October 24, 2017 Share Posted October 24, 2017 On 10/24/2017 at 11:18 AM, ales699 said: {if $cookie->id_lang=='id_idioma'} .... {/if} Este método me parece más fácil aunque sea algo chapuza, ¿hay algún inconveniente por usar este respecto al otro? ¿Y cómo puede hacer para que aparezca en dos idiomas? Es que sólo di puesto uno. Muchas gracias por las respuestas Expand El primer método es mejor, por que corta directamente la ejecución, ,cuando haces un return, en el hook del módulo: public function hookdisplayHome($params) { $iso_code = $this->context->language->iso_code; /* Idioma en el que no quieras que apareza */ if ($iso_code=="en") return; lineas de codigo que existan.... ....... .... return $this->display(__FILE__, 'xxxx.tpl', $this->getCacheId()); } Aquí estas diciendo si el idioma es el "ingles" no se muestra directamente el contenido de este "hook". (El return, hace que se corte la ejecución) Para el resto de idiomas si se mostraria. (el español, el chino, los que tengas activados) El condiciona en "php" de if ($iso_code=="en") siempre puedes tocarlo, con un "or" es decir if ($iso_code=="en" || $iso_code=="es") en ese caso estarias diciando si el idioma es el ingles o el español se va a ejecutar el "return" y se corta al ejecución y no se muestra. ----------------------- En Smarty (en el tpl del módulo, que dices que te viene mejor hacerlo asi, aunque yo no lo recomiendo, para eso mejor con la clase del modulo) De todos modos te dejo ejemplo de Smarty: Ejemplo, quiero que se muestre el contenido interior del tpl, menos en el idioma con ID -> X {if $cookie->id_lang!='X'} Aquí colocas el contenio del TPL {/if} Fijate que hemos usado != para decir que el if se ejecute en todos menos en 'X' Tambien puedes usar el "or" -> || en el condicional (es decir si esto o lo otro se ejecuta ), pero vamos en tu caso, creo que quieres que se muestre en todos los idiomas menos en una, por lo tanto con el != seria suficiente Tambien puedes jugar con los "else" en los if, etc.. ----- PD: Fijate que la sintaxis es diferente en Smarty que en PHP 1 Link to comment Share on other sites More sharing options...
ales699 Posted October 24, 2017 Author Share Posted October 24, 2017 Vale, muchas gracias! 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