Pregunta

es.

Tengo la siguiente categoría: categoría principal (!= raíz)

Main category
|
|- sub category 1
|
|- sub category 2
|
|- sub category 3

mi navegación,

  <ul>
    <?php echo $_menu ?>
  </ul>

ahora representa

Main category

¿Cómo puedo conseguirlo para hacer solo las subcategorías secundarias, como

Subcategory 1
Subcategory 2
Subcategory 3

(La razón por la que pongo todas mis categorías en una versión principal es poder enlazar a mysite.com/shop para todos los productos. Categoría principal, por lo tanto, es / tienda)

¿Fue útil?

Solución

probablemente puede hacerlo al sobrescribir el archivo app/core/Mage/Catalog/Block/Navigation.php

aplicación / código / local / yourcompany / catálogo / etc / config.xml:

<?xml version="1.0"?>
<config>
    <modules>
        <YourCompany_Catalog>
            <version>1.0</version>
        </YourCompany_Catalog>
    </modules>
    <global>
        <blocks>
            <catalog>
                <rewrite>
                  <navigation>YourCompany_Catalog_Block_Navigation</navigation>
               </rewrite>
           </catalog>
       </blocks>       
    </global>
</config>

aplicación / código / local / yourcompany / catálogo / bloque / navegación.php:

class YourCompany_Catalog_Block_Navigation extends Mage_Catalog_Block_Navigation {
    public function renderCategoriesMenuHtml($level = 0, $outermostItemClass = '', $childrenWrapClass = '')
{
    $activeCategories = array();
    foreach ($this->getStoreCategories() as $child) {
        if ($child->getIsActive()) {
            $activeCategories[] = $child;
        }
    }

    $activeCategoriesCount = count($activeCategories);
    $hasActiveCategoriesCount = ($activeCategoriesCount > 0);

    if (!$hasActiveCategoriesCount) {
        return '';
    }

    $html = '';
    $j = 0;
    foreach ($activeCategories as $category) {
        foreach ($category->getChildren() as $child) { // Added this loop to bypass the first top categories
            $html .= $this->_renderCategoryMenuItemHtml(
                $child,
                $level,
                ($j == $activeCategoriesCount - 1),
                ($j == 0),
                true,
                $outermostItemClass,
                $childrenWrapClass,
                true
            );
            $j++;
        }
    }

    return $html;
}
}

aplicación / etc / módulos / yourcompany.xml:

<?xml version="1.0"?>
<config>
    <modules>
        <YourCompany_Catalog>
            <active>true</active>
            <codePool>local</codePool>
        </YourCompany_Catalog>
    </modules>
</config>

Visión general global de los archivos a crea: app código local Tu compañía Catalogar Cuadra Navegación.php etc. config.xml etc. módulos YourCompany_catalog.xml

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top