モジュール更新モジュールに新しい顧客フィールドを追加しました:
$installer = $this;
$installer->startSetup();
$_attributeToAdd = [
'recordtype'=>[
'input'=>'select',
'type'=>'varchar',
'label'=>Mage::helper('company_partner')->__('String'),
'visible'=>1,
'required'=>1,
'user_defined'=>1,
'global'=>1,
'visible_on_front'=>1,
'source'=>'company_partner/entity_recordtype'
],
'court'=>[
'input'=>'text',
'type'=>'varchar',
'label'=>Mage::helper('company_partner')->__('String),
'visible'=>1,
'required'=>0,
'user_defined'=>1
],
'krs'=>[
'input'=>'text',
'type'=>'varchar',
'label'=>Mage::helper('company_partner')->__('String'),
'visible'=>1,
'required'=>0,
'user_defined'=>1
],
...other fields
];
$_order=2200;
foreach($_attributeToAdd as $_key=>$_value){
if(isset($setup)){
unset($setup);
}
if(isset($_oAttribute)){
unset($_oAttribute);
}
$setup = Mage::getModel('customer/entity_setup', 'core_setup');
$_entitytypeId = $setup->getEntityTypeId('customer');
$_attributeTypeId = $setup->getDefaultAttributeSetId($_entitytypeId);
$_attributeGroupId = $setup->getDefaultAttributeGroupId($_entitytypeId,$_attributeTypeId);
$setup->addAttribute('customer',$_key,$_value);
$setup->addAttributeToGroup($_entitytypeId,$_attributeTypeId,$_attributeGroupId,$_key,$_order);
Mage::getSingleton('eav/config')->getAttribute('customer', $_key)->setData('used_in_forms', array('adminhtml_customer','customer_account_create','customer_account_edit','checkout_register','unizeto_partner_account_edit','magestore_affiliateplus_account_edit'))->save();
$_oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer',$_key);
$_oAttribute->setData('used_in_forms',['adminhtml_customer']);
$_oAttribute->save();
$_order++;
}
$installer->endSetup();
私も試してみました
$_oAttribute->setData('used_in_forms',['adminhtml_customer','company_module']);
そして、この属性は管理パネル (顧客の追加/編集) に表示されますが、自分のモジュールではフォーム/アクションコントローラーで使用できません (管理データにファイルが表示されません)。
どうしてか分かりません。
私のモジュールは、コアではない他のmagentoモジュールからフォームとアクションコントローラーを上書きします。