[英]Randomise & limit Category thumbs on homepage magento
下面的代码仅显示“类别12”中所有子类别的类别标记,以寻找一种将这个数字限制为6个类别并将其随机选择为这些类别的方法。
<ul class="brand_list">
<?php $media = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA); ?>
<?php $children = Mage::getModel('catalog/category')->getCategories(12); ?>
<?php foreach ($children as $category): ?>
<?php $category = Mage::getModel('catalog/category')->load($category->getId()); ?>
<li class="span3">
<a href="<?php echo $category->getUrl(); ?>">
<img alt="<?php echo $category->getName(); ?>" src="<?php echo $media; ?>/catalog/category/<?php echo $category->getThumbnail(); ?>" />
</a>
</li>
<?php endforeach; ?>
</ul>
对于使用以下两段代码的产品,我之前使用过类似的代码:
<?php $collection->getSelect()->order('rand()'); ?>
<?php $_columnCount = $this->getColumnCount(); ?>
<?php $i=0; foreach ($collection->getItems() as $category): if($i==6){break;}?>
<?php if ($i++%$_columnCount==0): ?>
<?php endif ?>
我尝试重新编码以适合类别的拇指,但我似乎没有任何快乐。
您的问题的解决方案是波纹管。 我不会使用mysql rand()函数,因为它相当慢。
<ul class="brand_list">
<?php
$media = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
$parentCategory = Mage::getModel('catalog/category')->load(12);
$children = Mage::getModel('catalog/category')
->getCollection()
->addIdFilter( array_rand( array_flip( $parentCategory->getAllChildren( true ) ), 6) )
->addAttributeToSelect('name')
->addAttributeToSelect('thumbnail');
?>
<?php foreach ($children as $category): ?>
<li class="span3">
<a href="<?php echo $category->getUrl(); ?>">
<img alt="<?php echo $category->getName(); ?>" src="<?php echo $media; ?>catalog/category/<?php echo $category->getThumbnail(); ?>" />
</a>
</li>
<?php endforeach; ?>
</ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.