Pregunta

Tengo el siguiente código que mostrará la lista de subcategorías en una página de categoría y quiero excluir varias subcategorías de la visualización, pero está activa en el menú de navegación. Categoría Categoría Escenario de árboles:

Ropa
--- hombres
--- Mujeres
--- niños

zapatos
--- hombres
--- Mujeres
--- niños

Cuando hice clic en la categoría de ropa que forma parte del menú / Navegación en la parte superior.Irá a la página de la categoría de la ropa y mostrará solo el nombre de la subcategoría y la imagen de subcategoría de hombres, mujeres y niños.Pero yo excluyo a los niños.Pero aún será visible en la navegación cuando pase la ropa, las tres subcategorías son parte de la caída.

<ul class="products-grid widget-grid">
     <!--  -->
     <?php
      $currentCat = Mage::registry('current_category');
      if ( $currentCat->getParentId() == Mage::app()->getStore()->getRootCategoryId() ){
         // current category is a toplevel category
         $loadCategory = $currentCat;
         }else{
         // current category is a sub-(or subsub-, etc...)category of a toplevel category
         // load the parent category of the current category
         $loadCategory = Mage::getModel('catalog/category')->load($currentCat->getParentId());
          }
          $subCategories = explode(',', $loadCategory->getChildren());

          foreach ( $subCategories as $subCategoryId )
          {
             $cat = Mage::getModel('catalog/category')->load($subCategoryId);
             if($cat->getIsActive()){
                echo '<li class="grid_3 item alpha">
                <div class="product-border">
                <div class="product-img-box">
                <a href="'.$cat->getURL().'" class="product-image" >
                <div class="hover-box">
                   <img src="'.$cat->getImageUrl().'" />
                   <span class="image-box"></span>
                </div>
                </a>
                <a class="fancybox" rel="category-gallery" title="'.$cat->getName().'" href="'.$cat->getURL().'">&nbsp;</a>
                <h2 class="product-name">
                <a href="'.$cat->getURL().'">'.$cat->getName().'</a>
                <div class="title-divider"><span>&nbsp;</span></div>
                </h2>
                </div>
                </div>
                <div class="clear"></div>
                </li>';
           }
      }
   ?>
     <!--  -->
</ul>

Mirando hacia adelante para sus chicos de ayuda.¡Gracias!

¿Fue útil?

Solución

Creo que la mejor manera es que puede cogarle un atributo de categoría que puede ser utilizado para administrarlo en la página de la lista de categorías.

Por ejemplo, cree un atributo de una categoría llamado "Mostrar en la lista" con "SÍ, NO" Opciones y en función de estas opciones, puede omitir esas categorías de la lista y aún estará disponible en la mejor navegación.

editar

Cree un archivo en la raíz llamada createattribute.php y agregue el código a continuación en ese archivo y ejecute la URL en el navegador como http://example.com/createattribute.php

Esto creará un nuevo atributo de categoría y puede verlo en Admin.Lo mismo que puede hacer usando la configuración del módulo también.

<?php
require_once("app/Mage.php");
Mage::app('default');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

$installer = new Mage_Eav_Model_Entity_Setup('core_setup');
$entityTypeId     = $installer->getEntityTypeId('catalog_category');
$attributeSetId   = $installer->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $installer->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);

$installer->addAttribute('catalog_category', 'show_in_list',  array(
    'group'    => 'General Information',
    'type'     => 'int',
    'label'    => 'Show in list',
    'input'    => 'select',
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => false,
    'default'           => 0,
    'source' => 'eav/entity_attribute_source_boolean'
));
?>

No en su código PHTML como lo muestre arriba, simplemente agregue una condición más como

if($cat->getIsActive() && $cat->getShowInList()){...

Esto solo enumerará las categorías que configuró la opción SÍ en admin.

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