好的,我试图在商店页面的左栏中显示自定义Magento类别属性的内容,就在顶部。
我正在编辑2columns-left.phtm,并插入以下内容:
$_category = Mage::getModel('catalog/category')->load($category->getId());
echo $_helper->categoryAttribute($_category, $_category->getName(), 'name');
这是在
之前插入的<?php echo $this->getChildHtml('left') ?>
现在,在任何人指出显而易见的事实之前,是的,我知道这段代码使用了预先存在的属性“name”,但是我已经非常疲惫和模糊,我只是试图让它起作用。我的属性是category_desc - 这是通过我编写的一个简单模块创建并成功存储的。通过在后端添加值确认,保存类别然后刷新 - 输入的值已成功保存。
即使上面的示例也不起作用 - 它只是呈现一个完全空白的左列。我已经尝试过这个和我发现的其他代码(包括SO上的几个帖子)的无数变体,它应该允许我访问类别中我漂亮的新自定义属性,但我无法让它工作。必须有一种方法可以简单地访问这个值......当然。
我使用了Magento 1.7。模块中用于创建自定义属性的代码如下:
config.xml中:
<?xml version="1.0"?>
<config>
<modules>
<SS_CustomCategoryAttribute>
<version>0.0.1</version>
</SS_CustomCategoryAttribute>
</modules>
<global>
<resources>
<add_category_attribute>
<setup>
<module>SS_CustomCategoryAttribute</module>
<class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</add_category_attribute>
<add_category_attribute_write>
<connection>
<use>core_write</use>
</connection>
</add_category_attribute_write>
<add_category_attribute_read>
<connection>
<use>core_read</use>
</connection>
</add_category_attribute_read>
</resources>
</global>
mysql4安装-0.0.1.php:
<?php
$this->startSetup();
$this->addAttribute('catalog_category', 'category_desc', array(
'group' => 'General',
'input' => 'textarea',
'type' => 'text',
'label' => 'Category Description',
'backend' => '',
'visible' => true,
'required' => false,
'wysiwyg_enabled' => true,
'visible_on_front' => true,
'is_html_allowed_on_front' => true,
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));
$this->endSetup();
SS_CustomCatgoryAttribute.xml:
<?xml version="1.0"?>
<config>
<modules>
<SS_CustomCategoryAttribute>
<active>true</active>
<codePool>community</codePool>
</SS_CustomCategoryAttribute>
</modules>
</config>
如果不明显,我对Magento定制的这个级别相对较新,我必须承认从其他来源调整了模块代码,但它似乎运行良好......
任何想法??
答案 0 :(得分:0)
在左侧布局left_col.phtml上添加功能
function addAttribute($code)
{
$this->_getProductCollection()->addAttributeToSelect($code);
return $this;
}
用于在左侧布局left_col.phtml中显示自定义属性的值
echo $_product->getResource()->getAttribute('author_name')->getFrontend()->getValue($_product)