sidus Posted July 7, 2011 Share Posted July 7, 2011 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. Link to comment Share on other sites More sharing options...
sidus Posted July 8, 2011 Author Share Posted July 8, 2011 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 categorie2. modificare il modulo /modules/blockcategories3. sovrascrivere, nel proprio tema, il modulo /modules/blockcategories ed effettuare le modifiche su tale copiaAvendo un mio tema, ho scelto la 3.Ecco il sommario di cosa fare:1. modificare il file /modules/blockcategories/blockcategories.php2. duplicare la cartella (e tutto il suo contenuto) /modules/blockcategories in /themes/nomeNostroTema/modules3. modificare il file /themes/nomeNostroTema/modules/blockcategories/blockcategories.tpl4. modificare il file /themes/nomeNostroTema/modules/blockcategories/category-tree-branch.tpl5. pulire cache e compile di smartyIniziamo.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/cachee cancelliamo tutto tranne il file index.phpPoi andiamo in /tools/smarty/compilee cancelliamo tutto tranne il file index.phpFine.Abbiamo deciso COSA mostrare. Per decidere COME, non ci resta che modellare il file blockcategories.css che si trova in /themes/nomeNostroTema/css/modules/blockcategoriesAmen. 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