나는 Magento를 처음 접했으며 사용자에 따라 로그인 한 후 상점보기를 설정하고 싶습니다. 사용자는 등록시 상점보기를 선택할 수 있으며 데이터베이스에 EAV 속성으로 저장됩니다.
내 설치 스크립트 :
<?php
$installer = $this;
$installer->startSetup();
$setup = Mage::getModel('customer/entity_setup', 'core_setup');
$setup->addAttribute('customer', 'default_store_view_code', array(
'type' => 'varchar',
'input' => 'select',
'label' => 'Default Store View',
'global' => 1,
'visible' => 1,
'required' => 1,
'user_defined' => 1,
'default' => '',
'visible_on_front' => 1,
'source' => 'ModuleName/source_storeViewCode'
));
Mage::getSingleton('eav/config')
->getAttribute('customer', 'default_store_view_code')
->setData('used_in_forms', array('adminhtml_customer','customer_account_create','customer_account_edit','checkout_register'))
->save();
$installer->endSetup();
?>
사용중인 _in_forms는 지금 구성되지 않았습니다. 내 문제 : Magento 백엔드에서 고객의 세부 사항을 보여 주려고 할 때 오류가 발생합니다.
경고 : 포함 (Mage/Modulename/Model/Source/StoreviewCode.php) : 스트림을 열지 못했습니다 : 해당 파일 또는 디렉토리가 없습니다.
'source' => 'NameSpace/ModuleName/source_storeViewCode'
그리고
'source' => 'NameSpace_ModuleName/source_storeViewCode'
도 작동하지 않았습니다. 마법사 네임 스페이스에서로드하려고합니다. 내 네임 스페이스로 어떻게 설정할 수 있습니까?
내 Source_model은 로컬/네임 스페이스/modulename/model/source/storeviewcode.php에 있습니다.
추신 : 내 모듈의 config.xml
<?xml version="1.0"?>
<config>
<modules>
<NameSpace_ModuleName>
<version>1.0.0</version>
</NameSpace_ModuleName>
</modules>
<global>
<blocks>
<customer>
<rewrite>
<form_register>NameSpace_ModuleName_Block_Form_Register</form_register>
</rewrite>
</customer>
</blocks>
<resources>
<ModuleName_setup>
<setup>
<module>NameSpace_ModuleName</module>
<class>NameSpace_ModuleName_Model_Resource_Setup</class>
</setup>
</ModuleName_setup>
</resources>
</global>
<frontend>
<routers>
<customer>
<args>
<modules>
<moduleName before="Mage_Customer">NameSpace_ModuleName</moduleName>
</modules>
</args>
</customer>
</routers>
</frontend>
</config>