我在制造中添加了4到5个属性,并在前端的右栏中显示。现在我想链接制造的每个属性。如果我点击制造商的属性,它将显示包含该抵达/品牌的所有产品。 如果有人知道这一点,请帮助我。 谢谢! 我已通过以下代码
在前端显示了属性名称<?php
$attribute = Mage::getSingleton('eav/config')->getAttribute('catalog_product', 'Manufacturer');
if ($attribute->usesSource()) {
$options = $attribute->getSource()->getAllOptions(false);
if(count( $options)>0){
?>
<div class="title_box">Manufacturers</div>
<?php $i=1;?>
<ul class="left_menu">
<?php
foreach($options as $eachval){
?>
<?php if($i%2==0){ ?>
<li class="even"><a href="#"><?php echo $eachval['label']?></a></li>
<?php } else { ?>
<li class="odd"><a href="#"><?php echo $eachval['label']?></a></li>
<?php } $i++; ?>
<?php } ?>
</ul>
<?php } } ?>
我在目录/产品页面中制作了一个页面manu.phtml,并在上面的代码中添加以下代码如何给到该到达的链接...........请简要描述 在href链接中,我必须写什么,以便当我点击任何属性时,它将显示与该属性/品牌相关的所有产品。
答案 0 :(得分:2)
总是可以选择创建一个带有自定义控制器的新模块,该模块会列出指定品牌的产品,但即使它是干净的方式,这也是一个痛苦的过程。
如果您不介意丑陋的网址,这是一个简单的版本
主要想法是将您的品牌名称链接到填写了特定品牌的高级搜索页面
你可以得到这样的网址:
$url = Mage::getUrl('catalogsearch/advanced/result', array('_query'=>'brand='.$value->getId()))
您现在只需要获取特定品牌的ID($value->getId()
),但如果您可以获得该名称,您也可以获得该ID。
并且不要忘记指定品牌属性用于高级搜索。您可以通过编辑后端中的属性来实现。
<强> [编辑] 强>
使您的ul
元素看起来像这样:
<ul class="left_menu">
<?php
foreach($options as $eachval){
$url = Mage::getUrl('catalogsearch/advanced/result', array('_query'=>'Manufacturer='.$eachval['value']));
?>
<?php if($i%2==0){ ?>
<li class="even"><a href="<?php echo $url?>"><?php echo $eachval['label']?></a></li>
<?php } else { ?>
<li class="odd"><a href="<?php echo $url?>"><?php echo $eachval['label']?></a></li>
<?php } $i++; ?>
<?php } ?>
</ul>
关于主题的小提示。您可以避免重复代码中的li
元素,例如
<ul class="left_menu">
<?php
foreach($options as $eachval){
$url = Mage::getUrl('catalogsearch/advanced/result', array('_query'=>'Manufacturer='.$eachval['value']));
?>
<li class="<?php echo ($i%2 == 0) ? 'even':'odd';?>"><a href="<?php echo $url?>"><?php echo $eachval['label']?></a></li>
<?php } $i++; ?>
<?php } ?>
</ul>