我已经环顾四周,似乎无法找到我在此之后的确切答案,所以我发了一个新帖子。
我需要根据集合是否分配了特定的属性集,在产品列表页面上显示特定的HTML。
产品可以有4个属性集,'服装','靴子','包'和'配件'。
因此,如果该系列具有'包'或'附件'属性集,我想显示一件事以及我想要显示另一件事的任何其他内容。到目前为止我的代码是:
<?php
$bags = Mage::getResourceModel('eav/entity_attribute_set_collection')->setEntityTypeFilter($entityTypeId)->addFilter('attribute_set_name', 'Bags');
$accessories = Mage::getResourceModel('eav/entity_attribute_set_collection')->setEntityTypeFilter($entityTypeId)->addFilter('attribute_set_name', 'Accessories');
$size_default = $_product -> getResource() -> getAttribute('size') -> getFrontend() -> getValue($_product);
$size_clothes_fr = $_product -> getResource() -> getAttribute('size_clothes_fr') -> getFrontend() -> getValue($_product);
$size_clothes_uk = $_product -> getResource() -> getAttribute('size_clothes_uk') -> getFrontend() -> getValue($_product);
$size_clothes_us = $_product -> getResource() -> getAttribute('size_clothes_us') -> getFrontend() -> getValue($_product);
$size_clothes_it = $_product -> getResource() -> getAttribute('size_clothes_it') -> getFrontend() -> getValue($_product);
$size_shoes_default = $_product -> getResource() -> getAttribute('size_shoe') -> getFrontend() -> getValue($_product);
$size_shoes_fr = $_product -> getResource() -> getAttribute('size_shoes_fr') -> getFrontend() -> getValue($_product);
$size_shoes_it = $_product -> getResource() -> getAttribute('size_shoes_it') -> getFrontend() -> getValue($_product);
$size_shoes_uk = $_product -> getResource() -> getAttribute('size_shoes_uk') -> getFrontend() -> getValue($_product);
$size_shoes_us = $_product -> getResource() -> getAttribute('size_shoes_us') -> getFrontend() -> getValue($_product);
?>
<?php if(trim($bags) || trim($accessories)) { ?>
<a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" class="product-image"><?php if($_product->isSaleable()): ?><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(140, 255); ?>" width="140" height="255" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" id="product-image-<?php echo $_product->getId() ; ?>" /><?php endif; ?><?php if(!$_product->isSaleable()): ?><img src="<?php echo $this->getSkinUrl('images/masks/white80.png') ?>" width="140" height="255" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" id="product-image-<?php echo $_product->getId() ; ?>" style="background:url('<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(140, 255); ?>') no-repeat center center" /><?php endif; ?></a>
<?php } else { ?>
<div class="sizes">
<a class="trigger" href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" class="product-image"><?php if($_product->isSaleable()): ?><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(140, 255); ?>" width="140" height="255" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" id="product-image-<?php echo $_product->getId() ; ?>" /><?php endif; ?><?php if(!$_product->isSaleable()): ?><img src="<?php echo $this->getSkinUrl('images/masks/white80.png') ?>" width="140" height="255" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" id="product-image-<?php echo $_product->getId() ; ?>" style="background:url('<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(140, 255); ?>') no-repeat center center" /><?php endif; ?></a>
<div class="popup">
<p class="size_title"><?php echo $size_default ;?></p>
<p class="size_title"><?php echo $size_clothes_fr ;?></p>
<p class="size_title"><?php echo $size_clothes_it ;?></p>
<p class="size_title"><?php echo $size_clothes_us ;?></p>
<p class="size_title"><?php echo $size_clothes_uk ;?></p>
<p class="size_title"><?php echo $size_shoes_default ;?></p>
<p class="size_title"><?php echo $size_shoes_fr ;?></p>
<p class="size_title"><?php echo $size_shoes_it ;?></p>
<p class="size_title"><?php echo $size_shoes_uk ;?></p>
<p class="size_title"><?php echo $size_shoes_us ;?></p>
</div>
</div>
<?php } ?>
它似乎不起作用,它总是显示else语句。我显然没有在这里做点什么。有人可以帮忙吗?感谢。
答案 0 :(得分:0)
您的问题(如果您尚未解决)可能是因为您的收藏集未返回正确的数据。你得到的本质上是一组属性集,按名称过滤。这种情况每次都是一样的,因为你在任何时候都不涉及产品。
尝试以这种方式获取名称:
$attSetName = Mage::getModel(’eav/entity_attribute_set’)
->load($_product->getAttributeSetId())
->getAttributeSetName();
然后比较这个变量:
if ($attSetName == "bags" || $attSetName == "accessories") {
如果您打算返回一个集合,您可能还会遇到问题,因为您正在使用“trim()”php函数。 Trim适用于字符串,因此修剪集合对象可能无法完成您想要的操作。试试这个:
if (count($bags) > 0 || count($accessories) > 0) {