Magento属性的调用

Magento属性的一般调用很简单, 直接修改\app\design\frontend\base\default\template\catalog\product\文件夹里的 view.phtml 和 list.phtml 就可以了, 就是在需要的地方敲上这一段代码

<?php echo $_product->getAttributeName(); ?>

其中 AttributeName 为属性名. 例如 name 为产品的名称属性名, 可以这样写

<?php echo $_product->getName(); ?>

或者

<?php echo nl2br($_product->getName()) ?>

或者

<?php echo $_product->getResource()->getAttribute(‘name’)->getFrontend()->getValue($_product); ?>

方法有很多, 一般使用前面两种, 在 view.phtm 也就是产品页面调用任意属性是完全没问题的.
但是在 列表页(list.phtml) 就不一样了, 列表页默认只能调用基本属性, 如 name price sku ……
像一些扩展属性 cost weight color …… 和自定义属性就无法调用! 虽然如此, 但是解决办法还是有很多.

方法一: 在 list.phtml 重写 $_product 变量, 我花了大半时间在这个问题上, 还是解决不了问题, 如果有高手能指点一些, 在下感激不尽~

方法二: 抛开修改 list.phtml 的念头, 直接从 Magento 的核心入手, 修改 XML !
修改 \app\design\frontend\base\default\layout\ 文件夹下的 catalog.xml 文件, 找到

<block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">

在这一行的下面添加这么一句

<action method="addAttribute"><attribute>AttributeName</attribute></action>

AttributeName 是属性名称, 这样就可以用 <?php echo $_product->getName(); ?> 调用属性值

你新增的属性为文本或文本域类型(Text Field or Text Area),那么你的代码应为:

<?php echo $_product->getAttributeName() ?>

你新增了一个属性代码(Attribute Code)为 shoe_size的属性,那么你的调用代码应写成下面格式:

<?php echo $_product->getAttributeName() ?>

你新增的属性为下拉菜单类型(Dropdown)和多项选择类型(Multiple Select),那么你的代码应写成下面格式:

<?php echo $_product->getAttributeText(‘AttributeName’) ?>

另外有一个方法, 用来接收 .xml 文件传来的属性名称, 在这里贴一下, 这是一位热心人士提供的

public function addAttribute($AttributeName){

$this->_getProductCollection()->addAttributeToSelect($AttributeName);

return $this;

}

转自:http://blog.sina.com.cn/s/blog_6869e3ba0100mcjh.html

你可能感兴趣的:(Magento属性的调用)