Domanda

Ho il seguente codice che visualizzerà l'elenco delle sottocategorie in una pagina di categoria e voglio escludere diverse sottocategorie dalla visualizzazione, ma è attiva nel menu di navigazione.
Categoria Scenario albero:

Apparel
--- uomini
. --- donne
. --- bambini

Scarpe
--- uomini
. --- donne
. --- bambini

Quando ho cliccato sulla categoria di abbigliamento che fa parte del menu / navigazione in alto.Passerà alla pagina della categoria dell'abbigliamento e visualizza solo il nome della sottocategoria e l'immagine della sottocategoria di uomini, donne e bambini.Ma io per escludere i bambini.Ma sarà comunque visibile nella navigazione quando si pavoneggia di abbigliamento tutte le tre sottocategorie fanno parte del menu a discesa.

<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>
.

Guardando avanti il tuo aiuto ragazzi.Grazie!

È stato utile?

Soluzione

Penso che il modo migliore è possibile calare un attributo di categoria che può essere utilizzato per gestirlo sulla pagina dell'elenco delle categorie.

Ad esempio creare un attributo di categoria chiamato "Mostra elenco" con opzioni "Sì, No" e in base a queste opzioni è possibile saltare queste categorie dall'elenco e sarà comunque disponibile sulla navigazione superiore.

Modifica

Creare un file sulla root ha chiamato CreateATATTURBUTE.PHP e aggiungi il codice sotto il codice in quel file e eseguire URL nel browser come http://example.com/createATtribute.php

Ciò creerà nuovi attributi categorie e puoi vederlo in amministratore.Stessa cosa che è possibile utilizzare anche la configurazione del modulo.

<?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'
));
?>
.

Non nel tuo codice PHTML come si visualizza sopra, aggiungi un'altra condizione come

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

Questo elencherà solo queste categorie che imposti l'opzione Sì in Admin.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top