如何以列方式显示magento产品类别

时间:2015-04-18 09:18:48

标签: php magento foreach html-lists product

我正在尝试显示主标题下方的所有类别,因此我想在每列中显示四个类别。以下是我的代码

<?php
    $_category  = $this->getCurrentCategory();
    $collection = Mage::getModel('catalog/category')->getCategories($_category->entity_id);
    $helper     = Mage::helper('catalog/category');
?>
<ul class="pull-left">
<?php foreach ($collection as $cat):?>
    <li>
       <a style="color:#fff;" href="<?php echo $helper->getCategoryUrl($cat);?>">
          <cite><?php echo $cat->getName();?><?php
 ?></cite>
        </a>
    </li>
<?php endforeach;?>
</ul>

HTML输出

<ul class="pull-left">
    <li>....</li>
    <li>....</li>
    <li>....</li>
    <li>....</li>
    <li>....</li>
    <li>....</li>
    <li>....</li>
    <li>....</li>
    .
    .
    .
    .
</ul>

我想在每个li中定义四个ul项。喜欢这个

<ul class="pull-left">
    <li>...</li>
    <li>...</li>
    <li>...</li>
    <li>...</li>
</ul>
<ul class="pull-left">
    <li>...</li>
    <li>...</li>
    <li>...</li>
    <li>...</li>
</ul>

我也希望显示产品数量,我已尝试过这个

<?php 
    $products_count = Mage::getModel('catalog/category')->load($categoryId)->getProductCount();
?>

但它不起作用。

3 个答案:

答案 0 :(得分:1)

我在我的类别页面上使用此代码,它正在给我数数。 请查看我在标记之前添加的代码。

<?php 

$loadCategory = Mage::registry('current_category');
//echo 'loadCategory = '.$_categoryID = $loadCategory->getId();

$subCategories = explode(',', $loadCategory->getChildren());
?>

<ul class="pull-left">


<?php $i=1;
    foreach ( $subCategories as $subCategoryId )
    {
        $cat = Mage::getModel('catalog/category')->load($subCategoryId);

        if($cat->getIsActive())
        {
            if($cat->getImageUrl())
            {
                //echo '<a href="'.$cat->getURL().'">'.$cat->getName().'</a></br>';
                echo '<li>';

                echo '<a style="color:#fff;" href="'.$cat->getUrl().'">'.$this->escapeHtml($cat->getName()); echo"<br>";
                echo $total = Mage::getModel('catalog/layer')->setCurrentCategory($subCategoryId)->getProductCollection()->getSize();
                echo'</a>';
                echo '</li>';

            if($i%4==0)
            {
                echo'</ul><ul class="pull-left">';
            }

            }

        }
        $i++;
    }  

?>

答案 1 :(得分:0)

请使用此。

您可以根据需要调整ul,li。现在,这将在一行中列出四个子类别。

此代码将为您提供父类别的子类别。

<?php 

$loadCategory = Mage::registry('current_category');
//echo 'loadCategory = '.$_categoryID = $loadCategory->getId();

$subCategories = explode(',', $loadCategory->getChildren());
?>

<ul class="pull-left">


<?php $i=1;
    foreach ( $subCategories as $subCategoryId )
    {
        $cat = Mage::getModel('catalog/category')->load($subCategoryId);

        if($cat->getIsActive())
        {
            if($cat->getImageUrl())
            {
            //echo '<a href="'.$cat->getURL().'">'.$cat->getName().'</a></br>';
            echo '<li>';




                echo '<a style="color:#fff;" href="'.$cat->getUrl().'">'.$this->escapeHtml($cat->getName()).'</a>';

            echo '</li>';

            if($i%4==0)
            {
                echo'</ul><ul class="pull-left">';
            }

            }

        }
        $i++;
    }  

?>

</ul>

答案 2 :(得分:0)

请使用此代码。这肯定会对你有用。

<?php
$category = Mage::getModel('catalog/category')->load($categoryID);

echo $total = Mage::getModel('catalog/layer')->setCurrentCategory($category)->getProductCollection()->getSize();

?>

谢谢,