Mid September 2010

Showing Subcategories in Magento Static Blocks

April 26th, 2009 • Posted in Magento

This article was originally published at Netsprite in February 2009.

I’m currently building a new ecommerce stored based on the latest version of Magento. Whilst the navigation options available surpass most other products on the market there are still the occasional problems to deal with. I found that in some scenarios I wanted to display subcategories in the main body of a category page rather than them being restricted solely to the navigation bar.

This is particularly useful if you have a main level category with many subcategories and don’t wish to have a random selection of products or a more standard static block to be displayed if a customer lands on the main category.

The code is simple to implement though it’s not guaranteed to work with future versions of Magento – hence the MIT license designation. The website I’m working on is still under development so there is no example of this modification however the Gist below includes all of the code required to get up and running.

<?php
/**
 * NOTICE OF LICENSE (MIT License)
 *
 * Copyright (c) 2009, One Eighty Studios Limited
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * This license is also available online at:
 * http://opensource.org/licenses/mit-license.php
 *
 * DISCLAIMER
 *
 * This code has been tested against Magento v1.2.0.3
 * This code may not function as intended in future versions of Magento.
 * If you wish to customize Magento for your needs please refer
 * to http://www.magentocommerce.com for more information.
 *
 **/
?>

<?php
/**
* ** Instructions for Use **
*
* 1. Upload this page to your installation at:
* /app/design/frontend/[INTERFACE]/[THEME]/template/catalog/navigation/custom-category.phtml
*
* 2. Enter the following code in a static block:
* {{block type="catalog/navigation" name="catalog.navigation" template="catalog/navigation/custom-category.phtml"}}
*
* 3. Select the static block as the content source for the categories you require
*
* 4. Create new CSS styles as required
*
**/
?>

<?php $_categories=$this->getCurrentChildCategories() ?>

<?php if($_categories->count()): ?>
<ul class="category-links">
<?php foreach ($_categories as $_category): ?>
        <?php if($_category->getIsActive()): ?>
        <li class="<?php echo $this->htmlEscape($_category->getUrlKey()) ?>">
           <a href="<?php echo $this->getCategoryUrl($_category) ?>">
              <?php echo $this->htmlEscape($_category->getName()) ?>
           </a>
        </li>
        <?php endif; ?>
    <?php endforeach ?>
</ul>
<? endif; ?>

Leave a Reply

Blog Categories

Blog Archives