在左列中获取Magento自定义类别属性的值

时间:2013-04-30 22:51:55

标签: magento magento-1.7

好的,我试图在商店页面的左栏中显示自定义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定制的这个级别相对较新,我必须承认从其他来源调整了模块代码,但它似乎运行良好......

任何想法??

1 个答案:

答案 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)