magento 添加产品FAQ(下)

上篇我们在后台添加了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;?>

至此,结束

相关文章

0 0 投票数
文章评分
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论