编程语言
首页 > 编程语言> > php – 简单调用以获取列表中的类别图像和显示

php – 简单调用以获取列表中的类别图像和显示

作者:互联网

我按父类别ID显示子类别列表,并希望显示类别图像以代替类别名称.

这是我到目前为止所拥有的……

<div id="menu_brands">
<div class="brand_head">
    <h3><?php echo $this->__('Browse By Brand') ?></h3>
</div>
<div class="brand_list">
    <?php
        $cats = Mage::getModel('catalog/category')->load(6)->getChildren();
        $catIds = explode(',',$cats);

        $categories = array();
            foreach($catIds as $catId) {
                $category = Mage::getModel('catalog/category')->load($catId); 
                $categories[$category->getName()] = $category->getUrl();
                $img = $category->getImageUrl(); //I suspect this line is wrong
        }

        ksort($categories, SORT_STRING);
    ?>

        <ul>
            <?php foreach($categories as $name => $url): ?>
                <li>
                    <!--<a href="<?php echo $url; ?>"><?php echo $name; ?></a>-->
                    <a href="<?php echo $url; ?>" title="<?php echo $name; ?>">
                        <img src="<?php echo $img; ?>" width="auto" alt="<?php echo $name; ?>" /> <!--I suspect this line is wrong-->
                    </a>
                </li>
            <?php endforeach; ?>
        </ul>
</div>
</div>

我已经尝试了无数种方式来显示图像来代替类别名称,但似乎没有任何东西可以使图像出现.目前有上述内容,输出是一个空的’img src’,所以我正在尝试的内容显然是错误的(并且可能是实现我所追求的更好的方法).

请有人可以指出问题是什么?

如果它具有任何相关性,那么我打算之后要做的就是以网格格式显示类别图像(每行3或4个).

提前谢谢了.

解决方法:

zigojacko的解决方案并不理想,因为它在循环中单独加载模型.这不能很好地扩展,并且许多类别会破坏您的数据库.理想情况下,您可以将图像添加到子集合中.

更快的解决方案是将图像属性添加到具有ID过滤器的集合,如B00MER:

// Gets all sub categories of parent category 'Brands'
$parent = Mage::getModel('catalog/category')->load(6);

// Create category collection for children
$childrenCollection = $parent->getCollection();
// Only get child categories of parent cat
$childrenCollection->addIdFilter($parent->getChildren());
// Only get active categories
$childrenCollection->addAttributeToFilter('is_active', 1);

// Add base attributes
$childrenCollection->addAttributeToSelect('url_key')
        ->addAttributeToSelect('name')
        ->addAttributeToSelect('all_children')
        ->addAttributeToSelect('is_anchor')
        ->setOrder('position', Varien_Db_Select::SQL_ASC)
        ->joinUrlRewrite();

// ADD IMAGE ATTRIBUTE
$childrenCollection->addAttributeToSelect('image');

?>
<ul>
    <?php foreach($childrenCollection as $cat): ?>
        <li>
            <a href="<?php echo $cat->getURL(); ?>" title="<?php echo $cat->getName(); ?>">
                <img class="cat-image" src="<?php echo $cat->getImageUrl(); ?>" />
            </a>
        </li>   
    <?php endforeach; ?>
</ul>

标签:php,magento,imageurl
来源: https://codeday.me/bug/20190714/1455762.html