Wenn dieses Tutorial ist nicht genau was Sie suchen und Sie noch Fragen oder Vorschläge haben – lassen Sie uns wissen. Helfen Sie uns bitte um besser zu dienen!

Ihr Name

Emailadresse

Ihre Nachricht (benötigt)

captcha

Ausgewählte Vorlagen

Magento. Eine Unterkategorien-Liste auf einer Kategorie-Seite

Dieses Tutorial zeigt Ihnen wie man die Unterkategorien-Liste auf Kategorie-Seiten von Magento-Shop macht.
Um die Thumbnails von Unterkategorien und Ihre Namen auf Kategorie-Seiten anzuzeigen:

  1. Gehen Sie auf CMS -> Static Blocks (statische Blöcke) im Magento-Admin
  2. Klicken auf “Add New Block” (Neuen Block Hinzufügen) oben rechts.
  3. Erstellen Sie einen neuen statistischen Block so:
  4. Block Title (Titel des Blocks) : Sub Category Listing
    Identifier: subcategory_listing
    Status (Stand): Enabled (aktiviert)
    Content (Inhalt):

    {{block type="catalog/navigation" template="catalog/navigation/subcategory_listing.phtml"}} 

  5. Drücken Sie auf “Save Block” (Block Speichern) oben rechts.
  6. Gehen Sie dann von das Hauptmenü auf Catalog (Katalog) –> Manage Categories (Kategorien verwalten).
  7. Wählen die Kategorie mit den Untenkategorien und suchen Sie unten “Display Settings Tab” (Display-Einstellungen Tab) das Folgendes aus:
  8. Display mode: Static Block only
    OnlyCMS Block: Sub Category Listing
    Is Anchor: No.

  9. Oben rechts klicken Sie auf “Save category” (Kategorie speichern)
  10. Auf Ihrem Computer erstellen Sie eine neue Datei, die “subcategory_listing.phtml” heißt, mit den folgenden Inhalt:
  11. <div class="category-products">
    <ul class="products-grid">
    <?php
    $_categories=$this->getCurrentChildCategories();
    if($_categories->count()):
    $categorycount = 0;
    foreach ($_categories as $_category):
    if($_category->getIsActive()):
    $cur_category=Mage::getModel('catalog/category')->load($_category->getId());
    $layer = Mage::getSingleton('catalog/layer');
    $layer->setCurrentCategory($cur_category);
    $catName = $this->getCurrentCategory()->getName();
    if ($categorycount == 0){
    $class = "first";
    }
    elseif ($categorycount == 3){
    $class = "last";
    }
    else{
    $class = "";
    }
    ?>
    <li class="item <?=$class?>">
    <a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><img src="<?php echo $_category->getImageUrl() ?>" width="100" alt="<?php echo $this->htmlEscape($_category->getName()) ?>" /></a>
    <h2><a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><?php echo $this->htmlEscape($_category->getName()) ?></a></h2>
    </li>
    <?php
    endif;
    if($categorycount == 3){
    $categorycount = 0;
    echo "</ul>\n\n<ul class=\"products-grid\">";
    }
    else{
    $categorycount++;
    }
    endforeach;
    endif;
    ?>
    </ul>
    </div>
    
  12. Über Dateimanager verbinden mit dem FTP-Verzeichnis, wo Ihre Magento-Dateien gespeichert sind, und laden Sie die Datei auf das folgende Verzeichnis hoch:
  13. app/design/frontend/default/MY-TEMPLATE-DIR/template/catalog/navigation/
    (falls es einen Ordner aus dieses Verzeichnis fehlt, machen Sie das noch mal )

  14. Von FTP gehen Sie auf app\code\core\Mage\Catalog\Block\Navigation.php.
  15. Kopieren die Datei Navigation.php auf Ihrem Computer.
  16. Von FTP gehen Sie auf app\code\local\Mage\Catalog\Block\ und laden die kopierte Navigation.php auf diesem Verzeichnis (falls es einen Ordner aus dieses Verzeichnis fehlt, machen Sie das noch mal )

  17. In “Navigation.php” finden Sie diesen Abschnitt:
  18. 
    public function getCurrentChildCategories()
        {
            $layer = Mage::getSingleton('catalog/layer');
            $category   = $layer->getCurrentCategory();
            /* @var $category Mage_Catalog_Model_Category */
            $categories = $category->getChildrenCategories();
            $productCollection = Mage::getResourceModel('catalog/product_collection');
            $layer->prepareProductCollection($productCollection);
            $productCollection->addCountToCategories($categories);
            return $categories;
        } 
    
    
  19. And replace it with this:
  20. public function getCurrentChildCategories()
       {
            $layer = Mage::getSingleton('catalog/layer');
            $category   = $layer->getCurrentCategory();
            /* @var $category Mage_Catalog_Model_Category */
            $collection = Mage::getModel('catalog/category')->getCollection();
            /* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */
            $collection->addAttributeToSelect('url_key')
                ->addAttributeToSelect('name')
                ->addAttributeToSelect('is_anchor')
                ->addAttributeToSelect('image') 
                ->addAttributeToFilter('is_active', 1)
                ->addIdFilter($category->getChildren())
                ->setOrder('position', 'ASC')
                ->joinUrlRewrite()
                ->load();
    
            $productCollection = Mage::getResourceModel('catalog/product_collection');
            $layer->prepareProductCollection($productCollection);
            $productCollection->addCountToCategories($collection);
            return $collection;
        } 
    
    
  21. Von Front-End Ihrer Website öffnen Sie die Kategorie mit hinzugefügten Untenkategorien. Jetzt muss das die Untenkategorien-Liste anzeigen.
  22. Falls Sie keine Änderungen sehen, leeren Sie Ihr Magento/browser Cache. Falls Ihre Untenkategorien keine Thumbnails zeigen, beachten Sie bitte, dass Sie die Bilder schon für Ihre Untenkategorien hochgeladen haben .

Sehen Sie jetzt das ausführliche Video-Tutorial an:

Magento. Eine Unterkategorien-Liste auf einer Kategorie-Seite

  • HughGKnutts

    Alex, thanks for the tutorial on this! Instructions were clear and it works perfectly.

    No votes yet.
    Please wait...
  • Steve Lomax

    In case anyone is having trouble with this code for using the category thumbnails instead of category images, here are the updated codes.

    Navigation.php:

    public function getCurrentChildCategories()

    {

    $layer = Mage::getSingleton(‘catalog/layer’);

    $category = $layer->getCurrentCategory();

    /* @var $category Mage_Catalog_Model_Category */

    $collection = Mage::getModel(‘catalog/category’)->getCollection();

    /* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */

    $collection->addAttributeToSelect(‘url_key’)

    ->addAttributeToSelect(‘name’)

    ->addAttributeToSelect(‘is_anchor’)

    ->addAttributeToSelect(‘thumbnail’)

    ->addAttributeToFilter(‘is_active’, 1)

    ->addIdFilter($category->getChildren())

    ->setOrder(‘position’, ‘ASC’)

    ->joinUrlRewrite()

    ->load();

    $productCollection = Mage::getResourceModel(‘catalog/product_collection’);

    $layer->prepareProductCollection($productCollection);

    $productCollection->addCountToCategories($collection);

    return $collection;

    }

    And for the subcategory_listing.phtml:

    getCurrentChildCategories();

    if($_categories->count()):

    $categorycount = 0;

    foreach ($_categories as $_category):

    if($_category->getIsActive()):

    $cur_category=Mage::getModel(‘catalog/category’)->load($_category->getId());

    $layer = Mage::getSingleton(‘catalog/layer’);

    $layer->setCurrentCategory($cur_category);

    $catName = $this->getCurrentCategory()->getName();

    if ($categorycount == 0){

    $class = “first”;

    }

    elseif ($categorycount == 3){

    $class = “last”;

    }

    else{

    $class = “”;

    }

    ?>

    <li class="item “>

    <a href="getURL() ?>” title=”htmlEscape($_category->getName()) ?>”><img src="load($_category->getId())->getThumbnail() ?>” width=”100″ alt=”htmlEscape($_category->getName()) ?>” />

    <a href="getURL() ?>” title=”htmlEscape($_category->getName()) ?>”>htmlEscape($_category->getName()) ?>

    <?php

    endif;

    if($categorycount == 3){

    $categorycount = 0;

    echo "nn”;

    }

    else{

    $categorycount++;

    }

    endforeach;

    endif;

    ?>

    No votes yet.
    Please wait...
    • brad

      Steve,

      Looks like your code pasted got messed up. I tried to go line by line to see the changes but couldnt get it to work. Any way to get a link to download the file?

      No votes yet.
      Please wait...
  • faisal

    its great tutorial

    No votes yet.
    Please wait...
  • saurabh patel

    Realy very helpful code……….very nice….

    No votes yet.
    Please wait...
  • Remco van Grinsven

    I would suggest placing “Navigation.php” in ” appcodelocalMageCatalogBlock ” instead! This is safer than editing core files when updating to a newer version of magento. You might need to create this folder but it should have the same effect as editing the core files.

    No votes yet.
    Please wait...
  • Ross Callaghan

    Looks like the first half (the navigation code) is grand but the second one seems to have messed up upon entry. If you replace the image tag in your subcategory-listing.phtml file with this line it should do the trick:

    <img alt="htmlEscape($_category->getName()) ?>” src=”load($_category->getId())->getThumbnail() ?>” width=”100″ />

    No votes yet.
    Please wait...
  • nice1

    super

    No votes yet.
    Please wait...
  • Shiney

    Its just awsssmmm :) :)

    No votes yet.
    Please wait...
  • Ash

    What a fab piece of work… thanks a lot

    No votes yet.
    Please wait...
  • mjwouda

    Excellent! Followed the tutorial step by step: works! Thanks for this excellent post.

    No votes yet.
    Please wait...
  • ernie davis

    thank you — first shot it worked!

    No votes yet.
    Please wait...
  • pooja

    Works fine.. Thanks

    No votes yet.
    Please wait...
  • Jenny Potgieter

    Thank you SO much for this! It was an answer to prayer for me!!!

    No votes yet.
    Please wait...
 
Online-Chat
We help you to choose the right product.
Chat starten