nivelsur Posted December 4, 2013 Share Posted December 4, 2013 (edited) Hola a todos....queria hacerles una consulta. he estado mirando unos cuantos post que intentan explicar como supuestamente se puede lograr hacer click en una categoria y en ves de direccionar a una url creada automaticamente lo haria a una que nosotros pondriamos. he visto esto: http://www.prestashop.com/forums/topic/269510-solucionado-redireccionar-a-una-pagina-desde-menu-categoria-de-productos/ http://www.prestashop.com/forums/topic/239327-solucionado-enlazar-categoria-directamente-con-url-externa/ que pretendo cambiar: cambiar el link de una categoria del menu del izquierdo y redireccionarlo a una web externa como intente hacerlo: como indique en el titulo tengo la version 1.5.2 de prestashop si no entendi mal los pasos a seguir son 2 >01 cambiar el archivo que se encuentra en modules/blockcategories/blockcategories.tpl {assign var='index' value=0} {foreach from=$blockCategTree.children item=child name=blockCategTree} {if $smarty.foreach.blockCategTree.last} {include file="$branche_tpl_path" node=$child last='true'} {else} {if $index == 12} (< id que queremos cambiar) {$child['link'] = "http://www.google.es"} (< url a la que queremos direccionar el id) {/if} {include file="$branche_tpl_path" node=$child} {$index = $index + 1} {/foreach} >2 eliminar de cache/smarty/cache/ todos los archivos menos el index.php despues de esto el resultado es que no cambia nada...por lo menos en esta version. alguien me puede explicar como cambiarlo...seria de gran ayuda...saludos Edited December 9, 2013 by nivelsur (see edit history) Link to comment Share on other sites More sharing options...
nadie Posted December 4, 2013 Share Posted December 4, 2013 Lo primero esto que comentas, lo estas haciendo para el bloque de categorías del lateral. Lo segundo, revisa que si tienes el fichero sobreescrito en tu plantilla, tipo: /themes/plantilla/modules/blockcategories/category-tree-branch.tpl Debes editar ese y no este: /modules/blockcategories/category-tree-branch.tpl Lo noveno, Si en dicho fichero, tienes por ejemplo esto: <li {if isset($last) && $last == 'true'}class="last"{/if}> <a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|strip_tags|trim|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</a> {if $node.children|@count > 0} <ul> {foreach from=$node.children item=child name=categoryTreeBranch} {if $smarty.foreach.categoryTreeBranch.last} {include file="$branche_tpl_path" node=$child last='true'} {else} {include file="$branche_tpl_path" node=$child last='false'} {/if} {/foreach} </ul> {/if} </li> y quieres la categoria con ID12 rediriga a la web de marca.com, podrias cambia por ejemplo esto: href="{$node.link|escape:'htmlall':'UTF-8'}" por esto: <a href="{if $node.id=='12'}http://marca.com{else}{$node.link|escape:'htmlall':'UTF-8'}{/if}" Yo lo he probado y funciona. La cache de smarty, la borras despues de hacer la modificacion para que se apliquen los cambios. (Recuerda que tambien debes Forzar Compilación en Parametros Avanzados -> Rendimiento) Como usas la 1.5.2, te recomiendo usar este modulo: http://www.prestashop.com/forums/topic/238282-modulo-flush-caches-compile-ps15/ y haz un flush all, que te hace flush all tanto de compilacion smarty como de cache smarty. Link to comment Share on other sites More sharing options...
nivelsur Posted December 5, 2013 Author Share Posted December 5, 2013 Lo primero esto que comentas, lo estas haciendo para el bloque de categorías del lateral. Lo segundo, revisa que si tienes el fichero sobreescrito en tu plantilla, tipo: /themes/plantilla/modules/blockcategories/category-tree-branch.tpl Debes editar ese y no este: /modules/blockcategories/category-tree-branch.tpl Lo noveno, Si en dicho fichero, tienes por ejemplo esto: <li {if isset($last) && $last == 'true'}class="last"{/if}> <a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|strip_tags|trim|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</a> {if $node.children|@count > 0} <ul> {foreach from=$node.children item=child name=categoryTreeBranch} {if $smarty.foreach.categoryTreeBranch.last} {include file="$branche_tpl_path" node=$child last='true'} {else} {include file="$branche_tpl_path" node=$child last='false'} {/if} {/foreach} </ul> {/if} </li> y quieres la categoria con ID12 rediriga a la web de marca.com, podrias cambia por ejemplo esto: href="{$node.link|escape:'htmlall':'UTF-8'}" por esto: <a href="{if $node.id=='12'}http://marca.com{else}{$node.link|escape:'htmlall':'UTF-8'}{/if}" Yo lo he probado y funciona. La cache de smarty, la borras despues de hacer la modificacion. Como usas la 1.5.2, te recomiendo usar este modulo: http://www.prestashop.com/forums/topic/238282-modulo-flush-caches-compile-ps15/ y haz un flush all, que te hace flush all tanto de compilacion smarty como de cache smarty. Nadie el archivo donde especificas no lo tengo...lo tengo en la raiz de mi plantilla category-tree-branch.tpl te entiendo cuando me decis que no lo cambie en /modules/blockcategories/category-tree-branch.tpl algun otro lado para chequear? Link to comment Share on other sites More sharing options...
nadie Posted December 5, 2013 Share Posted December 5, 2013 Nadie el archivo donde especificas no lo tengo...lo tengo en la raiz de mi plantilla category-tree-branch.tpl te entiendo cuando me decis que no lo cambie en /modules/blockcategories/category-tree-branch.tpl algun otro lado para chequear? Si no tienes el fichero: /modules/blockcategories/category-tree-branch.tpl aqui: /themes/plantilla/modules/blockcategories/category-tree-branch.tpl Copias este: /modules/blockcategories/category-tree-branch.tpl aqui: /themes/plantilla/modules/blockcategories/ Si no tienes la estructura de carpeta /modules/blockcategories/ dentro de tu plantilla creala sin miedo, esto es para no tener que editar el original: /modules/blockcategories/category-tree-branch.tpl , y asi tenerlo todo mas organizado, ademas de no perder los cambios en posibles actualizaciones del modulo, pero vamos si no quieres copiar el fichero del modulo en el override que te he dicho, pues edita directamente el fichero: (Pero ten presente que si no tienes los overrides de los modulos en tu plantilla, es mejor hacer los overrides en tu plantilla que editar el original) /modules/blockcategories/category-tree-branch.tpl 1 Link to comment Share on other sites More sharing options...
nivelsur Posted December 5, 2013 Author Share Posted December 5, 2013 definifivamente algo esta mal he seguido las indicaciones y sigo sin resolver me podrias confirmar si este codigo esta bien? <li {if isset($last) && $last == 'true'}class="last"{/if}> <a href="{if $node.id=='23'}http://marca.com{else}{$node.link|escape:'htmlall':'UTF-8'}{/if}"{if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|strip_tags|trim|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</a> {if $node.children|@count > 0} <ul> {foreach from=$node.children item=child name=categoryTreeBranch} {if $smarty.foreach.categoryTreeBranch.last} {include file="$branche_tpl_path" node=$child last='true'} {else} {include file="$branche_tpl_path" node=$child last='false'} {/if} {/foreach} </ul> {/if} </li> a ver... en una de esas hice algo mal dentro de mi plantilla no tenia ninguna carpeta que se llame modules pero en la raiz de mi plantilla tengo archivos tpl como por ejemplo category-tree-branch.tpl este no es? yo no he cambiado nada...he modificado sobre la plantilla base ahora adentro de mi plantilla he creado una carpeta llamada modules y adentro una llamada blockcategories siguiendo tus instrucciones...luego modifique el archivo category-tree-branch.tpl dentro de theme/modules/blockcategories y por ultimo he eliminado los archivos de cache/smarty/cache y sigue todo igual. Link to comment Share on other sites More sharing options...
nivelsur Posted December 9, 2013 Author Share Posted December 9, 2013 Bueno logre hacerlo.... despues de mucho traspirar los dedos....el codigo esta bien lo unico que recomiendo para los que quieran hacer esto es ver el tema de Parametros avanzados > Rendimiento porque les digo esto?...porque a mi criterio este paso es importante Cuando uno va a Parametros avanzados > Rendimiento debajo hay tres opciones >Never recompile template files >Recompile templates if the files have been updated >Force compilation lo que yo hice fue elegir la primera opcion y guarde y cuando termino de cargar volvi a elegir la tercera opcion y volvi a guardar ....y listo los cambios se ven....espero les sirva. Link to comment Share on other sites More sharing options...
nadie Posted December 9, 2013 Share Posted December 9, 2013 Claro es que Forzar compilacion es imprescindible (esta comentado en el foro), si no activas esa opción cuando modifiques un fichero tpl, por mucho que modifiques un fichero tpl, no se veran los cambios. Pero ahora no se te ocurra dejar activo el forzar compilacion una vez que haya aplicado los cambios, si no la web te ira como un trastor. Como veo que has añadido la palabra "Solucionado" en el titulo del tema, procedo a cerrar el tema. Lo que pasa es que para este tipo de modulos como el bloque de categorias, normalmente ha que tanto Forzar compilación como vaciar la cache de smarty, ---- El modulo (http://www.prestashop.com/forums/topic/238282-modulo-flush-caches-compile-ps15/) que te pase arriba hace esa funcionalidad, pero sin necesidad de dejar activado el forzar compilación, no se por que no te funciono dicho módulo. 2 Link to comment Share on other sites More sharing options...
Recommended Posts