自定义产品属性后,通常可以设置其是否在产品查看页中显示,可显属性将会出现在additional information 中。但是这边我需要在分类列表页中调用产品特定的属性。
在列表页循环获取对应产品的id之后,直接输出产品的所有属性内容会太多,getData等取出的信息又过于简洁。总之用起来不是很爽,于是根据
app/code/core/Mage/Catalog/Block/Product/View/Attributes.php中的
getAdditionalData 方法进行了一些简单的修改, 新方法还是放在getAdditionalData
同一文件中,因为有些继承的方法要用。 代码如下
public function getMeSetData($t_product)
{
$data = array();
$product = $t_product;
$attributes = $product->getAttributes();
foreach ($attributes as $attribute) {
$value = $attribute->getFrontend()->getValue($product);
if (!$product->hasData($attribute->getAttributeCode())) {
$value = Mage::helper('catalog')->__('N/A');
} elseif ((string)$value == '') {
$value = Mage::helper('catalog')->__('No');
} elseif ($attribute->getFrontendInput() == 'price' && is_string($value)) {
$value = Mage::app()->getStore()->convertPrice($value, true);
}
if (is_string($value) && strlen($value)) {
$data[$attribute->getAttributeCode()] = array(
'label' => $attribute->getStoreLabel(),
'value' => $value,
'code' => $attribute->getAttributeCode()
);
}
}
return $data;
}
可以看到这边的参数是一个产品对象,但是测试的时候发现,列表页直接使用的产品对象信息并不够全,也无法使用这个方法,所以在获取产品id后重新加载了一下对应的产品,调用方法如下
$p_id = $_product->getId();
$_product = Mage::getModel('catalog/product')->load($p_id);
$p_attrs = Mage::getBlockSingleton('catalog/product_view_attributes')->getMeSetData($_product);
print_r($p_attrs);
这样取出的产品属性信息就比较全了,也不会过于臃肿。具体用途 各取所需吧
来源:http://vsfor.com/archives/323
最全面的:
$attributes = Mage::getSingleton('eav/config')->getEntityType(Mage_Catalog_Model_Product::ENTITY)->getAttributeCollection();
// Localize attribute label (if you need it)
$attributes->addStoreLabel(Mage::app()->getStore()->getId());
// Loop over all attributes
foreach ($attributes as $attr) {
/* @var $attr Mage_Eav_Model_Entity_Attribute */
// get the store label value
$label = $attr->getStoreLabel() ? $attr->getStoreLabel() : $attr->getFrontendLabel();
echo "Attribute: {$label}\n<br>";
// If it is an attribute with predefined values
if ($attr->usesSource()) {
// Get all option values ans labels
$options = $attr->getSource()->getAllOptions();
// Output all option labels and values
foreach ($options as $option)
{
echo " {$option['label']} =========> (Value {$option['value']})\n<br>";
}
}
else
{
// Just for clarification of the debug code
echo " No select or multiselect attribute\n<br>";
}
}
来源: http://stackoverflow.com/questions/9275826/how-to-get-all-active-attributes-of-products-in-magento
分享到:
相关推荐
magento通过mysql语句批量导出产品及其自定义属性
magento 批量上传产品,多图,自定义属性
magento通过产品名称获取产品id提示代码
magento 自定义菜单插件,自定义菜单显示行和列,显示层级。
magento批量上传多图、添加自定义属性插件,包含1.4和1.5+的版本
将自定义属性添加到Magento类别 用于将自定义属性添加到Magento类别的模块。 我已经设置了位于app / code / local / Samuidavid / CustCatAttr / sql / custcatattr_setup中的安装脚本,以将新的图像输入字段添加到...
magento的关于自定义后台配置的简单示例 把Exercise_Avatar.xml放到magento/app/etc/modules/下面 文件夹Avatar放到magento/app/code/local/Exercise/下面就可以到后台看到相应配置信息
我们公司在用的商城产品属性过滤插件,希望对大家有用,同时,看还有什么好的建议和意见也可以提出,我们再次修改
NULL 博文链接:https://justcoding.iteye.com/blog/1711166
允许您在客户登录,注销并创建新帐户后重定向到自定义页面。(禁止用作商业用途)
Rkt_Config - Magento 扩展这个 Magento 扩展将允许我们在 Magento 中使用自定义配置文件。 配置文件是 XML 文件,通常用于进行一些配置设置。 默认情况下,驻留在 Magento 模块/etc目录中的config.xml文件用于保存...
magento站点首页显示新产品及产品数量,可在block块中设置产品数量
magento颜色属性图片展示插件,经过测试适用于magento1.7
Magento导入导出产品插件 编辑csv表格导入产品 Import Products categories multiple images and custom options 1 1 2 tgz 与官方插件一样
magento产品名称及描述批量修改sql
如何给产品描述里的关键字、字词批量添加链接?我想大家一直在的这样的插件。说实话,我也找了很久,也没有找到。可是由于需要,不得不自己开发一个这样的插件。并支持到Magento1.6.2 说明请查看:...
Magento2-SmartSearch, Magento2 SmartSearch扩展 2.0 SmartSearch Magento 2型搜索实现。 在不重新加载页面的情况下显示栏下找到的产品列表。 这是一个基本的扩展,没有任何配置选项,它将默认的Magento自动完成...
magento 颜色属性切换图片,兼容1.4-1.9,有说明文档,和安装截图
属性值(选择类别和属性,以从分层导航中显示此类别的属性值) 阅读有关文件中的 更多信息: 菜单由“ Block HTML”缓存来缓存; 扩展程序不支持多个商店的单独编辑数据 目前,它在1个我的项目上有效
此插件功能可以在后台添加magento的客户属性已经客户地址属性,已在1.8.1测试,正常安装使用。