Stiffa78 Posted March 10, 2015 Share Posted March 10, 2015 (edited) Ciao a tutti. Ho veramente cercato ovunque.....ho anche trovato tante spiegazioni...tutte in inglese....ma provando non riesco proprio a fare quello che vorrei. Il mio scopo e' di visualizzare nella pagina category.tpl, al posto delle sole subcategory, anche le altre categorie padre. Nel file category.tpl troviamo {if isset($subcategories)} <!-- Subcategories --> <div id="subcategories"> <h3>{l s='Subcategories'}</h3> <ul class="inline_list"> {foreach from=$subcategories item=subcategory} <li class="clearfix"> <a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}" title="{$subcategory.name|escape:'htmlall':'UTF-8'}" class="img"> {if $subcategory.id_image} <img src="{$link->getCatImageLink($subcategory.link_rewrite, $subcategory.id_image, 'medium_default')}" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" /> {else} <img src="{$img_cat_dir}default-medium_default.jpg" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" /> {/if} </a> <a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}" class="cat_name">{$subcategory.name|escape:'htmlall':'UTF-8'}</a> {if $subcategory.description} <!--<p class="cat_desc">{$subcategory.description}</p>--> {/if} </li> {/foreach} </ul> <br class="clear"/> </div> {/if} Questo codice ci fa vedere tutte le immagini e il nome delle subcategories. Perfetto. Ma se clicco su una sottocategoria che non ha piu subcategories, ma solo prodotti, non viene visualizzato nulla. Io vorrei mi facesse vedere tutte le altre subcategories della stessa radice. Meglio con un esempio : Categoria A |_ cat B |_ cat C |_ cat D Se clicco cat C vorrei comunque vedere catB e catD . Spero di essere stato chiaro. Su internet, girando parlavano di fare override di CategoryController....ma poi non so come comportarmi nel file category.tpl... qualcuno mi aiuta? Grazie, spero di essere stato chiaro Edited March 10, 2015 by Stiffa78 (see edit history) Link to comment Share on other sites More sharing options...
fatum Posted March 10, 2015 Share Posted March 10, 2015 (edited) Io sulla 1.6 ho risolto così Creare un file chiamato CategoryController.php in /override/controllers/front/ con all'interno questo codice: <?php class CategoryController extends CategoryControllerCore { public function initContent() { // Get the global smarty object. global $smarty; // Get current category's parent. $parent_category = new Category($this->category->id_parent, self::$cookie->id_lang); // Get parent category's subcategories (which is current category's siblings, including it self). $category_siblings = $parent_category->getSubCategories((int)self::$cookie->id_lang); /* Assign your siblings array to smarty. */ $smarty->assign( array( "category_siblings" => $category_siblings ) ); /* This we run the normal displayContent, but pass the siblings array to category.tpl */ parent::initContent(); } } ?> In category.tpl inserisci questo alla chiusura dell'if di {if isset($subcategories)} (o anche prima, dovrebbe essere indifferente): {if isset($category_siblings) && !isset($subcategories)} <div id="subcategories"> <p class="subcategory-heading">{l s='Subcategories'}</p> <ul class="clearfix"> {foreach from=$category_siblings item=subcategory} <li> <div class="subcategory-image"> <a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'html':'UTF-8'}" title="{$subcategory.name|escape:'html':'UTF-8'}" class="img"> {if $subcategory.id_image} <img class="replace-2x" src="{$link->getCatImageLink($subcategory.link_rewrite, $subcategory.id_image, 'cat_small')|escape:'html':'UTF-8'}" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" /> {else} <img class="replace-2x" src="{$img_cat_dir}default-medium_default.jpg" alt="" width="{$mediumSize.width}" height="{$mediumSize.height}" /> {/if} </a> <a class="subcategory-name" href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'html':'UTF-8'}">{$subcategory.name|truncate:25:'...'|escape:'html':'UTF-8'|truncate:350}</a> </div> {if $subcategory.description} <div class="cat_desc">{$subcategory.description}</div> {/if} </li> {/foreach} </ul> </div> {/if} In pratica vai a copiare il ciclo che già viene fatto se esistono subcategories ma con la nuova variabile che abbiamo creato con l'override. A questo punto carica i due file e controlla se vedi le modifiche.Se non le vedi cancella il file /cache/class_index.php (oppure svuota la cache dall'admin).A me funziona ;-) Edited March 10, 2015 by fatum (see edit history) Link to comment Share on other sites More sharing options...
Stiffa78 Posted March 11, 2015 Author Share Posted March 11, 2015 Fantastico , funziona. 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