Domanda

Sto costruendo un negozio Magento e voglio essere in grado di visualizzare un elenco di categorie e ogni link di categoria alla propria pagina.

Ho una categoria "Marchi" con un ID di 42 e desidero visualizzare un elenco delle sottocategorie e assicurarmi che ognuna si colleghi alla chiave URL designata nel CMS.

Qualcuno ha avuto esperienza nel farlo con Magento?

È stato utile?

Soluzione

Se hai dimestichezza con la modifica del tuo tema, questo frammento di codice ti porterà un elenco di tutte le sottocategorie della categoria corrente (dalla sessione, quindi dovrebbe funzionare ovunque nel tuo tema). Di solito lo uso in app / design / frontend / default / nome_ tema /template/catalog/category/view.phtml

<?php
$_category  = $this->getCurrentCategory(); 
$collection = Mage::getModel('catalog/category')->getCategories($_category->entity_id);
$helper     = Mage::helper('catalog/category');
?>

<ul>
    <?php foreach ($collection as $cat):?>
            <?php if($_category->getIsActive()):?>
                <?php 
                     $cur_category = Mage::getModel('catalog/category')->load($cat->getId());
                     $_img = $cur_category->getImageUrl();  
                ?>
                <li>
                    <a href="<?php echo $helper->getCategoryUrl($cat);?>">
                         <img src="<?php echo $_img?>" title="<?php echo $cat->getName();?>"/>
                         <cite><?php echo $cat->getName();?></cite>
                    </a>
                </li>
            <?php endif?>
    <?php endforeach;?>
</ul>

Altri suggerimenti

Se desideri visualizzare le categorie e le sottocategorie di livello superiore che puoi fare in questo modo

<?php $_helper = Mage::helper('catalog/category') ?>
<?php $_categories = $_helper->getStoreCategories() ?>
<?php $currentCategory = Mage::registry('current_category') ?>
<?php if (count($_categories) > 0): ?>
<ul>
    <?php foreach($_categories as $_category): ?>
        <li>
            <a href="<?php echo $_helper->getCategoryUrl($_category) ?>">
                <?php echo $_category->getName() ?>
            </a>
            <?php $_category = Mage::getModel('catalog/category')->load($_category->getId()) ?>
            <?php $_subcategories = $_category->getChildrenCategories() ?>
            <?php if (count($_subcategories) > 0): ?>
                <ul>
                    <?php foreach($_subcategories as $_subcategory): ?>
                        <li>
                            <a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>">
                                <?php echo $_subcategory->getName() ?>
                            </a>
                        </li>
                    <?php endforeach; ?>
                </ul>
            <?php endif; ?>
        </li>
    <?php endforeach; ?>
</ul>
<?php endif; ?>

Per visualizzare le categorie di livello superiore e le sottocategorie delle categorie correnti, puoi fare come ....

<?php $_helper = Mage::helper('catalog/category') ?>
<?php $_categories = $_helper->getStoreCategories() ?>
<?php $currentCategory = Mage::registry('current_category') ?>
<?php if (count($_categories) > 0): ?>
<ul>
    <?php foreach($_categories as $_category): ?>
        <li>
            <a href="<?php echo $_helper->getCategoryUrl($_category) ?>">
                <?php echo $_category->getName() ?>
            </a>
            <?php if ($currentCategory && $currentCategory->getId() == $_category->getId()): ?>
                <?php $_category = Mage::getModel('catalog/category')->load($_category->getId()) ?>
                <?php $_subcategories = $_category->getChildrenCategories() ?>
                <?php if (count($_subcategories) > 0): ?>
                    <ul>
                        <?php foreach($_subcategories as $_subcategory): ?>
                            <li>
                                <a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>">
                                    <?php echo $_subcategory->getName() ?>
                                </a>
                            </li>
                        <?php endforeach; ?>
                    </ul>
                <?php endif; ?>
            <?php endif; ?>
        </li>
    <?php endforeach; ?>
</ul>
<?php endif; ?>

Questa domanda richiede una risposta lunga. Ti indicherò i posti giusti.

1) La soluzione migliore è utilizzare l'estensione gratuita. Non l'ho provato, ma si adatterà allo scopo. Dovrai fare alcuni CSS per ottenere l'aspetto e la sensazione giusti.

http://www.magentocommerce.com/extension/1562 / Magento-facile-Catalogo-immagini Demo: http://extension01.templates-master.com/gb/electronics.html

2) Non mi fido dei moduli in quanto potrebbe diventare difficile aggiornarlo se il fornitore decidesse di interrompere il supporto. Ho usato le informazioni dal seguente thread del forum per creare un sito vew. Dai un'occhiata ... Potrebbe non essere semplice. Potrebbe essere necessario eseguire alcune copie dei file principali nella directory locale.

http://www.magentocommerce.com/boards/viewthread/3770/ P30 /

Speriamo che questo ti sia di aiuto :)

Ho realizzato questo piccolo video su come creo blocchi di elenchi di categorie personalizzati con Magento. Sono sicuro che ci sono modi migliori per ottenere questo o anche qualcosa che avrei potuto fare meglio, ma è solo il mio metodo. L'ho creato solo nella speranza che aiuti a spiegare qualcosa ad alcune persone là fuori.

Blocco elenco di categorie personalizzate Magento

Grazie!

dopo aver esaminato tutte le soluzioni sul sito magento, ho scoperto che la soluzione di wookiehangover sopra ha funzionato e ci sono voluti circa 8 secondi per l'implementazione.

crea un UL che puoi modellare. Grazie.

Dopo aver creato il blocco statico puoi ottenere qualsiasi elenco delle sottocategorie da questo script:     

        $_helper = Mage::helper('catalog/category');
        $_category = Mage::getModel('catalog/category')->load(5);
        $_subcategories = $_category->getChildrenCategories();

        if (count($_subcategories) <= 0) { return; }

        $count = 0;

        foreach($_subcategories as $_category) {     
                                                      $category = Mage::getModel('catalog/category')->load($_category->getId());

                                                      $ret->{"object_".$count} ->url  = $_helper->getCategoryUrl($_category);
                                                      $ret->{"object_".$count} ->name = $_category->getName();
                                                      $ret->{"object_".$count} ->id =  $_category->getId(); 
                                                      $ret->{"object_".$count} ->image =   $category->getImageUrl();
                                                      $count++;
                                                   } 

        return $ret;                                          

        } 


$list = list_subcategories(5);

echo "<pre>"; print_r($list); echo "</pre>";
?>

Che ne dici di elencare solo le categorie appartenenti alla voce corrente. Non tutte le categorie nella pagina.

Ma in una vista ad albero.

CATEGORIE - sub cat 1 CATEGORIE 2 - sub cat 1 - sub sub cat 1

BR Cveto

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top