我的问题是如何改变magento的类别。 默认值为:
ABCD
EFGH
IJKL
(使用代码使对齐正确理解)
我需要将其更改为:
AEI
BFJ
CGK
DHL
(使用代码使对齐正确理解)
怎么做?
<div class="category-products">
<ul class="products-grid">
<?php
$_categories=$this->getCurrentChildCategories();
if($_categories->count()):
$categorycount = 0;
foreach ($_categories as $_category):
if($_category->getIsActive()):
$cur_category=Mage::getModel('catalog/category')->load($_category->getId());
$layer = Mage::getSingleton('catalog/layer');
$layer->setCurrentCategory($cur_category);
$catName = $this->getCurrentCategory()->getName();
if ($categorycount == 0){
$class = "first";
}
elseif ($categorycount == 3){
$class = "last";
}
else{
$class = "";
}
?>
<li class="item <?=$class?>">
<a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><img src="<?php echo Mage::getBaseUrl('media').'catalog/category/'.$this->getCurrentCategory()->getThumbnail();?>" width="90" alt="<?php echo $this->htmlEscape($_category->getName()) ?>" /></a>
<h4><a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><?php echo $this->htmlEscape($_category->getName()) ?></h4></a>
</li>
<?php
endif;
if($categorycount == 2){
$categorycount = 0;
echo "</ul>\n\n<ul class=\"products-grid\">";
}
else{
$categorycount++;
}
endforeach;
endif;
?>
</ul>
</div>
我希望你能帮助我。 这对我来说意味着世界!
答案 0 :(得分:0)
有几种选择。
1)使用magento中内置的类别位置内容,通过管理员按照您想要的顺序对您的类别进行排序。
2)每4个类别创建一个新的UL元素,并使用CSS样式以列类型格式显示每个UL。例如创建UL元素。计算UL内输出的类别以及关闭UL的每4个类别,然后打开一个新类别。您可以使用count%4 == 0(mod)函数来确定是否需要输出新的UL。
3)修改块中生成的SQL,该块获取具有order by子句的类别(这对于您想要的顺序并不简单。)
我个人会先尝试第2步,如果需要,可以回到第1步。这不像是按列值排序,因此将排序依据添加到集合中可能会很麻烦。