Jump to content

(Solucionado) Cambiar id de categoria por url externa 1.5.2


Recommended Posts

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 by nivelsur (see edit history)
Link to comment
Share on other sites

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

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

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

  • Like 1
Link to comment
Share on other sites

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

Bueno logre hacerlo.... :lol: 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

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.

  • Like 2
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...