2017-09-13 1 views
0

カテゴリのバックエンドで複数のオプションを持つ選択ボックスを実現しようとしています。カテゴリの属性を選択ボックスで設定する(複数選択)

選択ボックスを作成するスクリプトはこれまでのところ動作していますが、1回だけ選択するだけです。私はこの

multiselect

を達成するにはどうすればよい

$installer = $this; 
$installer->startSetup(); 

$attribute = array(
     'group'      => 'Examplegroup', 
     'input'      => 'select', // also tried multiselect 
     'type'      => 'varchar', 
     'label'      => 'Examplelabel', 
     'global'     => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 
     'visible'     => 1, 
     'required'     => 0, 
     'visible_on_front'   => 0, 
     'is_html_allowed_on_front' => 0, 
     'is_configurable'   => 0, 
     'searchable'    => 0, 
     'filterable'    => 1, 
     'comparable'    => 0, 
     'unique'     => false, 
     'user_defined'    => true, 
     'default'     => '', 
     'is_user_defined'   => false, 
     'used_in_product_listing' => true, 
     'option'     => array('values' => array('option1', 'option2', 'option3', 'option4')) 
); 
$installer->addAttribute('catalog_category', 'attribute_name', $attribute); 


$installer->endSetup(); 

は、私はそれが複数選択の入力型で動作するはずと仮定しますが、アップグレード後のシングル選択・オプションを保持します。

答えて

1

複数選択オプションの場合は、inputmultiselectと設定し、backendモデルeav/entity_attribute_backend_arrayを追加します。

$installer = $this; 
$installer->startSetup(); 

$attribute = array(
     'group'      => 'Examplegroup', 
     'input'      => 'multiselect', 
     'type'      => 'varchar', 
     'label'      => 'Examplelabel', 
     'backend'     => 'eav/entity_attribute_backend_array', 
     'global'     => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 
     'visible'     => 1, 
     'required'     => 0, 
     'visible_on_front'   => 0, 
     'is_html_allowed_on_front' => 0, 
     'is_configurable'   => 0, 
     'searchable'    => 0, 
     'filterable'    => 1, 
     'comparable'    => 0, 
     'unique'     => false, 
     'user_defined'    => true, 
     'default'     => '', 
     'is_user_defined'   => false, 
     'used_in_product_listing' => true, 
     'option'     => array('values' => array('option1', 'option2', 'option3', 'option4')) 
); 
$installer->addAttribute('catalog_category', 'attribute_name', $attribute); 


$installer->endSetup(); 

既存の属性を更新するには、次のアップグレードスクリプトを実行し、

$installer->startSetup(); 

$installer->updateAttribute('catalog_category', 'attribute_name', 'frontend_input', 'multiselect'); 
$installer->updateAttribute('catalog_category', 'attribute_name', 'backend_model', 'eav/entity_attribute_backend_array'); 

$installer->endSetup(); 

チェックMage_Eav_Model_Entity_Attribute_Backend_ArrayクラスのbeforeSave機能は、バックエンドモデルのより多くのアイデアを取得します。

希望すると助かります!

+0

これは私が欲しかったものです。ありがとう! – Slatyoo

関連する問題