2012-11-09 9 views
5

モジュールのアップグレードスクリプト内でカスタム属性をプログラムで追加しようとしています。スクリプトが正常に実行され、新しい属性が作成されます(つまり、スクリプトが実行されると、Magentoの管理者リストの[カタログ - >属性 - >属性の管理]に表示されます)。Magentoアップグレードスクリプトによって作成された新しい属性の可視性

最初はクラスMage_Eav_Model_Entity_Setup(推奨here)を使用していましたが、 'visible'フィールドも 'apply_to'フィールドも意図したとおりに設定されていませんでした( 'visible'は常にfalse、 'apply-to'むしろ、スクリプトで提供されるリストを使用するよりもタイプ」)。

その後、私は私が代わりにMage_Catalog_Model_Resource_Setupを使用する必要があることを説明した、thisを発見し、それが 『apply_to』に問題を修正しました。

しかし、まだ私ができます属性の 'visible'属性がtrueに設定されるようにします。なぜ誰かが 'visible'属性がまだ設定されていない理由があれば私は聞くことに非常に感謝します、ありがとう!

はここに私のアップグレードスクリプトコードです:

$updater = $this;  // $this is class Mage_Eav_Model_Entity_Setup 
$updater->startSetup(); 
$updater->addAttribute('catalog_product', 'my_test_attribute', array(
    'label'    => 'My Test Attribute', 
    'type'    => 'int', 
    'input'    => 'select', 
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 
    'apply_to'   => 'simple,configurable', 
    'group'    => 'General', 
    'visible'   => true, 
    'required'   => true, 
    'user_defined'  => true,   
)); 
$updater->endSetup(); 

私はWindows 7の

+0

あなたは「属性の「可視」属性」を明確にしてください。 –

+1

Tim、 "visible属性をtrueに設定する"というのは、Magento管理者リストのCatalog-> Attributes-> Manage Attributesで、新しい属性に対して "Visible"列を "Yes"に設定する必要があるということです。 –

+0

"Mage_Catalog_Model_Resource_Setup"のことが私を夢中にしていました!ありがとう! –

答えて

1

私は今これを解決しました。必要なのは、 "visible_on_front"属性も "可視"でなく設定することだけでした。つまり、私は上記のスクリプトにこの行を追加しました:

'visible_on_front' => true, 
0

この属性にWAMPでMagentoの1.7.0.1を実行していますブールではありません、それは整数です。したがって、1 = true 0 = falseを設定しました。

+0

あなたの答えをありがとうが、1と0を使用しても違いはありません。 –

関連する問題