上篇我们在后台添加了FAQ的相关属性,并且在产品编辑页里成功显示FAQ,那接下来就是怎么把在产品编辑页里填写的FAQ内容显示到前台产品详情页里
由于我们使用了产品的属性,所以在显示时,也是调用attributes的模块
下面是相关调用的xml,可以放到你想显示的位置,比如catalog.xml或者其他xml页面
<action method="addTab" translate="title" module="catalog"><alias>additional_tabbed</alias><title>FAQ</title>
<block>catalog/product_view_attributes</block><template>模板下的路径/faq/faq.phtml</template>
</action>
从上面的xml配置文件可以看出,我们要调用attributes属性,但是这样调用,会把产品中的所有属性都获取出来,这时候我们在模板时,就要先定义获取属性组下面的属性
下面是模板:模板下的路径/faq/faq.phtml
<?php
//获取产品信息
$_product = $this->getProduct();
//获取属性组下面的属性名称
$setId = $_product->getAttributeSetId(); // Attribute set Id
$groups = Mage::getModel('eav/entity_attribute_group')
->getResourceCollection()
->setAttributeSetFilter($setId)
->setSortOrder()
->load();
$attributeCodes = array();
$attributetitle = array();
foreach ($groups as $group) {
if($group->getAttributeGroupName() == 'Faq'){//属性组名称
$attributes = Mage::getResourceModel('catalog/product_attribute_collection')
->setAttributeGroupFilter($group->getId())
->addVisibleFilter()
->checkConfigurableProducts()
->load();
if ($attributes->getSize() > 0) {
foreach ($attributes->getItems() as $attribute) {
/* @var $child Mage_Eav_Model_Entity_Attribute */
//$attributeCodes[] = $attribute->getAttributeCode();
$attributetitle[] = $attribute->getFrontend()->getValue($_product);
}
}
}
}
$faqone = $_product->getData('title1'); //获取title1的属性值
?>
<?php if($faqone!=''):?>
<style>
#tab_faq dl{
line-height: 30px;
}
#tab_faq dt{
cursor: pointer;
}
#tab_faq dd{
padding-left: 15px;
background-color:#e8e7e7;
}
</style>
<?php if($attributetitle): ?>
<div id="tab_faq">
<h2><?php echo $this->__('FAQ') ?></h2>
<dl>
<?php foreach($attributetitle as $key=>$val): ?>
<?php if($val!=''){?>
<?php if($key%2==0){?>
<dt class="false"><i class="fa fa-plus-square-o"></i> <?php echo $val; ?></dt>
<?php }else{?>
<dd style="display: none;"> <?php echo $val;?></dd>
<?php }}?>
<?php endforeach; ?>
</dl>
</div>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#tab_faq dt").click(function(){
if(jQuery(this).next("dd").css('display') == 'block'){
jQuery("#tab_faq dd").hide();
jQuery("#tab_faq dt i").removeClass("fa fa-minus-square-o");
jQuery("#tab_faq dt i").addClass("fa fa-plus-square-o");
}else{
jQuery("#tab_faq dd").hide();
jQuery("#tab_faq dt i").removeClass("fa fa-minus-square-o");
jQuery("#tab_faq dt i").addClass("fa fa-plus-square-o");
jQuery(this).next("dd").show();
jQuery(this).find('i').removeClass("fa fa-plus-square-o");
jQuery(this).find('i').addClass("fa fa-minus-square-o");
}
});
jQuery("#tab_faq dt").hover(function(){
jQuery(this).css("background-color","#e8e7e7");
},function(){
jQuery(this).css("background-color","#f5f5f5");
});
});
</script>
<?php endif;?>
<?php endif;?>
至此,结束