0

わかりました。カスタム 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-install-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 のカスタマイズに比較的慣れていないため、別のソースからモジュール コードを適合させたことを告白しなければなりませんが、うまく機能しているようです...

何か案は??

4

1 に答える 1

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) 
于 2013-06-14T06:33:04.210 に答える