2009-03-03 23 views
10

मैं Magento में एक पृष्ठ है कि श्रेणियों का एक दृश्य प्रतिनिधित्व चलता .. उदाहरणMagento से एक श्रेणी सूची कैसे प्राप्त करें?

CATEGORY 
product 1 
product 2 

ANOTHER CATEGORY 
product 3 

मेरे समस्या है बनाना चाहते हैं, अपने डाटाबेस मैं अतीत में क्या देखा है करने के लिए बहुत अलग ढंग आयोजित किया जाता है। उनके पास वर्चर्स, इंट इत्यादि जैसे डेटा प्रकारों को समर्पित टेबल हैं। मुझे लगता है कि यह प्रदर्शन या इसी तरह के लिए है।

मुझे डेटाबेस से पूछताछ करने और श्रेणियों की एक सूची प्राप्त करने के लिए MySQL का उपयोग करने का कोई तरीका नहीं मिला है। मैं प्रत्येक श्रेणी के लिए उत्पादों की एक सूची प्राप्त करने के लिए, इन श्रेणियों को उत्पादों से मेल करना चाहता हूं। दुर्भाग्यवश Magento यह बहुत मुश्किल लगता है।

इसके अलावा मुझे एक विधि नहीं मिली है जो पेज ब्लॉक के भीतर से काम करेगी .. मैंने showcase.phtml बनाया है और इसे एक्सएमएल लेआउट में रखा है और यह इसका PHP कोड प्रदर्शित करता है और चलाता है। मैं $this->getAllCategories() और फिर $category->getChildProducts() जैसे कुछ के साथ एक नेस्टेड लूप के माध्यम से लूपिंग की तरह कुछ आसान की उम्मीद कर रहा था।

क्या कोई मेरी मदद कर सकता है?

उत्तर

5

हे something like this आपकी मदद कर सकता है, मैंने इसे आपके प्रश्न का उत्तर देने के लिए थोड़ा सा अनुकूलित किया है।

$h3h3=Mage::getModel('catalog/category')->load(5); // YOU NEED TO CHANGE 5 TO THE ID OF YOUR CATEGORY 


$h3h3=$h3h3->getProductCollection(); 


foreach($h3h3->getAllIds() as $lol) 
{ 
    $_product=Mage::getModel('catalog/product')->load($lol); 

    print $_product->getName()."<br/>"; 

} 
16

कोड से एक एसईओ संबंधित वर्ग (Mage_Catalog_Block_Seo_Sitemap_Category)

$helper  = Mage::helper('catalog/category'); 
$collection = $helper->getStoreCategories('name', true, false); 
$array  = $helper->getStoreCategories('name', false, false); 

कोशिश भूल जाते हैं कि यह डेटाबेस है कि अपनी दुकान शक्ति है, और बदले वस्तुओं है कि Magento प्रणाली प्रदान करता है का उपयोग करने पर ध्यान केंद्रित में पाया।

उदाहरण के लिए, मुझे नहीं पता था कि श्रेणियों की सूची कैसे प्राप्त करें। हालांकि, मैंने

grep -i -r -E 'class.+?category' 

के साथ मैज कोडबेस के माध्यम से grepped जो लगभग 30 कक्षाओं की एक सूची लौटा दी। उन लोगों के माध्यम से स्क्रॉल करना, अनुमान लगाना अपेक्षाकृत आसान था कि किस ऑब्जेक्ट में विधियां हो सकती हैं या विधि कॉल करने की आवश्यकता होती है जो श्रेणियों को पकड़ लेती है।

+0

है मुझे यकीन है कि कैसे आप वास्तव में नाम पाने के लिए जिसके परिणामस्वरूप संग्रह या सरणी का उपयोग कर सकते नहीं कर रहा हूँ या यूआरएल श्रेणियों के। मुझे जो डेटा चाहिए वह परिणाम की "_data: संरक्षित" कुंजी में संग्रहीत है। क्या आप विस्तारित कर सकते हैं? –

+0

@Martijn http://stackoverflow.com/questions/1005394/magento-show-custom-attributes-in-grouped-product-table/1005474#1005474 –

+0

मेरा प्रश्न है, अगर यह व्यवस्थापक मॉड्यूल फ़ाइल में लोड करने के लिए सहायक है, लोड करने के लिए श्रेणी सूची? – Mufaddal

0

बहुत बहुत धन्यवाद। वास्तव में मदद करता है।

SELECT e.entity_id AS 'entity_id', vn.value AS 'name' 
FROM catalog_category_entity e 
LEFT JOIN catalog_category_entity_varchar vn 
ON e.entity_id = vn.entity_id AND vn.attribute_id = 33 
ORDER BY entity_id; 

इस सूची श्रेणी आईडी के साथ प्रदान करेगा: खेल पाने के लिए, एक पाश और फिर getName()

foreach ($collection as $cat): 

    echo $cat->getName(); 

endforeach; 
0

मैं

<?php 
/** 
* Home page Featured Product list template 
* 
* @see Mage_Catalog_Block_Product_List 
*/ 
?> 
<?php 
if (!is_null($this->_productCollection)) { 
    $_origCollection = $this->_productCollection; 
    $this->setCollection(null); 
} 
$this->setCategoryId(16); 
$_productCollection=$this->getLoadedProductCollection() ?> 
<?php if($_productCollection->count()): ?> 
<div class="featured-products"> 
    <h2><?php echo $this->__('Featured Products') ?></h2> 
    <?php foreach ($_productCollection as $_product): ?> 
     <div> 
      <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"> 
       <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(150, 50); ?>" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" /> 
       <h3 class="product-name"><?php echo $this->htmlEscape($_product->getName())?></h3> 
       <?php echo nl2br($this->htmlEscape($_product->getShortDescription())) ?> 
      </a> 
     </div> 
    <?php endforeach; ?> 
</div> 
<?php endif; ?> 
0

मैं कैसे मैं Magento के साथ ब्लॉक लिस्टिंग कस्टम श्रेणी बनाने पर इस छोटे वीडियो बनाया /app/design/frontend/default/default/template/catalog/product/feature.xml में यह प्रयोग किया जाता है । मुझे यकीन है कि इसे प्राप्त करने के बेहतर तरीके हैं या यहां तक ​​कि कुछ भी मैं बेहतर कर सकता था, लेकिन यह सिर्फ मेरी विधि है। मैंने इसे उम्मीद में ही बनाया है कि इससे कुछ लोगों को कुछ लोगों को समझाने में मदद मिलती है।

Magento Custom Category Listing Tutorial

0

श्रेणी लिस्टिंग ब्लॉक:

<?php 
$categories = Mage::getModel('catalog/category')->load(2)->getChildren(); 
$catIds = explode(',',$cats); 
?> 
<ul> 
<?php foreach($catIds as $catId): ?> 
    <li> 
     <?php 
      $category = Mage::getModel('catalog/category')->load($catId); 
      echo $category->getName(); 

      $subCats = Mage::getModel('catalog/category')->load($category->getId())->getChildren(); 
      $subCatIds = explode(',',$subCats); 
     ?> 
      <?php if(count($subCatIds) > 1):?> 
       <ul> 
       <?php foreach($subCatIds as $subCat) :?> 
        <li> 
        <?php 
         $subCategory = Mage::getModel('catalog/category')->load($subCat); 
         echo $subCategory->getName(); 
        ?> 
        </li> 
       <?php endforeach;?> 
       </ul> 
      <?php endif; ?> 
    </li> 
<?php endforeach; ?> 
</ul> 
2

यहाँ एक त्वरित उदाहरण

$categories = Mage::getModel('catalog/category')->getCollection() 
    ->addAttributeToSelect('name') 
    ->addAttributeToSelect('url_key') 
    ->addAttributeToSelect('my_attribute') 
    ->setLoadProductCount(true) 
    ->addAttributeToFilter('is_active',array('eq'=>true)) 
    ->load();