Jump to content

[Solved] Modificare il modo in cui vengono visualizzate le categorie


sidus

Recommended Posts

Innanzitutto, buongiorno a tutti.
Il mio nome è Alessandro (alias "sidus") e mi sono appena iscritto a questo forum, quindi, doverosamente, saluti tutti :-)
Avendo per la testa l'idea di aprire un e-commerce, sto iniziando a prendere confidenza con Prestashop 1.4.x.
Sono un programmatore j2ee completamente ignorante in php :-)

Bene.
Finiti saluti e presentazioni, passo a dare un po' di fastidio ponendo la mia prima domanda...
Nel mio negozio virtuale (in locale) ho creato 4 categorie: A, B, C, D. Poi ho creato una sotto-categoria di A, denominata A1 (scusate la fantasia...). Il negozio avrà solo un livello di sotto-categorie; quindi, ad esempio, ci saranno B1, B2..., Bn come sotto-categorie di B, ma nessuna di esse avrà alcuna sotto-categoria.

In allegato trovate 2 immagini (presta0 e presta1).
La prima (presta0) mostra il FE come creato da Prestashop con quanto appena descritto.
La seconda (presta1) mostra invece quello che vorrei ottenere.

Il menù mostrato dovrebbe essere banalmente statico, nel senso che dovrebbe mostrare staticamente tutte le categorie e tutte le relative sotto-categorie, senza alcun effetto "apri/chiudi" (tipo il "+" che in genere compare di fianco alle categorie nel blocco "categorie".

Qualcuno mi sa dire come posso fare (ammesso che si possa)?

Grazie.

48912_Ppk6ePrqmkC4EtUKCY3b_t

48913_x8RH8HRKnNVx4Ubt92wR_t

Link to comment
Share on other sites

ok.
A quanto pare o la cosa è troppo banale o nessuno che sappia rispondere è passato da qui :-)
Ci ho pensato da solo...
Per quanti avessero la stessa esigenza, propongo una soluzione.
Di sicuro non è LA soluzione (vi ricordo che io sono un pivello e non conosco PHP!), ma realizza ciò che volevo ottenere.

Diciamo subito che ci sono almeno 3 soluzioni al problema:

1. creare il proprio modulo per la visualizzazione delle categorie
2. modificare il modulo /modules/blockcategories
3. sovrascrivere, nel proprio tema, il modulo /modules/blockcategories ed effettuare le modifiche su tale copia

Avendo un mio tema, ho scelto la 3.

Ecco il sommario di cosa fare:

1. modificare il file /modules/blockcategories/blockcategories.php
2. duplicare la cartella (e tutto il suo contenuto) /modules/blockcategories in /themes/nomeNostroTema/modules
3. modificare il file /themes/nomeNostroTema/modules/blockcategories/blockcategories.tpl
4. modificare il file /themes/nomeNostroTema/modules/blockcategories/category-tree-branch.tpl
5. pulire cache e compile di smarty

Iniziamo.

1.
Apriamo il file /modules/blockcategories/blockcategories.php e portiamoci alla riga 137 e comunque all'interno della definizione della funzione getTree().
Tale funzione termina con un return del tipo:

return array('id' => $id_category, 'link' => $link->getCategoryLink($id_category, $resultIds[$id_category]['link_rewrite']),
'name' => $resultIds[$id_category]['name'], 'desc'=> $resultIds[$id_category]['description'],
'children' => $children);



trasformiamolo in:

return array('id' => $id_category, 'link' => $link->getCategoryLink($id_category, $resultIds[$id_category]['link_rewrite']),
'name' => $resultIds[$id_category]['name'], 'desc'=> $resultIds[$id_category]['description'],
'children' => $children, 'currentDepth' => $currentDepth);



ossia, abbiamo aggiunto, alla fine, il 'currentDepth'. Esso ci indicherà il livello di annidamento dell'albero che rappresenta categorie, sotto-categorie, ecc. Quando vale 1 siamo in presenza di una categoria, quando vale 2 indica una sotto-categoria e così via...
Salviamo.

2.
A questo punto duplichiamo il tutto nel nostro tema (questa operazione non è necessaria; la eseguo solo per non "sporcare" il modulo originale). Da adesso in poi lavoreremo sul modulo nel nostro tema.

3.
Apriamo il file /themes/nomeNostroTema/modules/blockcategories/blockcategories.tpl ed eliminiamo il titolo "CATEGORIE" dal blocco sul FE. Per fare questo andiamo alla riga

{l s='Categories' mod='blockcategories'}



e commentiamo il tutto

<!--{l s='Categories' mod='blockcategories'}-->



Salviamo.

4.
Ora parimo il file /themes/nomeNostroTema/modules/blockcategories/category-tree-branch.tpl e modifichiamo questo codice

{$node.name|escape:html:'UTF-8'}



in questo:

{if $node.currentDepth > 1}
{$node.name|escape:html:'UTF-8'}
{else}
{$node.name|escape:html:'UTF-8'}
{/if}



Salviamo.
Facciamo attenzione all'attributo "style".
L'ho inserito giusto per far vedere la differenza a video. Nella realtà andrà poi rimosso e sostituito con il nostro stile.

5.
Andiamo in
/tools/smarty/cache
e cancelliamo tutto tranne il file index.php

Poi andiamo in /tools/smarty/compile
e cancelliamo tutto tranne il file index.php

Fine.
Abbiamo deciso COSA mostrare. Per decidere COME, non ci resta che modellare il file blockcategories.css che si trova in /themes/nomeNostroTema/css/modules/blockcategories

Amen.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...