在管理面板菜单中 - >配置我有一个标签。 我正在使用:
<frontend_type>Multiselect</frontend_type>
<source_model>adminhtml/system_config_source_customer_group_multiselect</source_model>
我得到一个三个用户组,即GENERAL,RETAIL,WHOLESELER。
问题,如何获得第四组,即一个NOT LOGGED IN?
答案 0 :(得分:3)
您可以在system.xml
中定义自己的观察者,而不是调用核心模型请找到以下代码来解决您的问题。
<source_model>adminhtml/system_config_source_GroupCollection</source_model>
现在在下面的路径中在本地\ community(工作目录)中创建GroupCollection.php文件。
e.g app\code\local\Mage\Adminhtml\Model\System\Config\Source\GroupCollection.php
在该文件中添加以下代码。
<?php
class Mage_Adminhtml_Model_System_Config_Source_GroupCollection
{
/**
* Options getter
*
* @return array
*/
public function toOptionArray()
{
$group = Mage::getModel('customer/group')->getCollection();
$groupArray = array();
foreach ($group as $eachGroup) {
$groupData = array(
'customer_group_id' => $eachGroup->getCustomerGroupId(),
'customer_group_code' => $eachGroup->getCustomerGroupCode(),
'tax_class_id' => $eachGroup->getTaxClassId() // we dont required this
);
if (!empty($groupData)) {
array_push($groupArray, $groupData);
}
}
var_dump($groupArray);
}
}
以下将是您的输出。
array (size=4)
0 =>
array (size=3)
'customer_group_id' => string '0' (length=1)
'customer_group_code' => string 'NOT LOGGED IN' (length=13)
'tax_class_id' => string '3' (length=1)
1 =>
array (size=3)
'customer_group_id' => string '1' (length=1)
'customer_group_code' => string 'General' (length=7)
'tax_class_id' => string '3' (length=1)
2 =>
array (size=3)
'customer_group_id' => string '2' (length=1)
'customer_group_code' => string 'Wholesale' (length=9)
'tax_class_id' => string '3' (length=1)
3 =>
array (size=3)
'customer_group_id' => string '3' (length=1)
'customer_group_code' => string 'Retailer' (length=8)
'tax_class_id' => string '3' (length=1)
你完成了! :)
答案 1 :(得分:1)
你不需要创造&#39; Mage&#39;目录&#39;本地&#39;或重写核心模块!如果您要查看 app/code/core/Mage/Adminhtml/Model/System/Config/Source/Customer/Group/Multiselect.php
,您会看到此课程没有任何延伸!因此,您可以在您的文件夹 NameSpace/ModuleName/Model
创建自己的 Exemple.php
,然后只需复制 所有 从Multiselect.php到 Exemple.php ,修复那里你想要的(在你的情况下只删除 ->setRealGroupsFilter()
字符串),并设置你的模型的system.xml。
例如,如果在config.xml中有
<models>
<my_model>
<class>NameSpace_ModuleName_Model</class>
</my_model>
</models>
比你必须写
<source_model>my_model/exemple</source_model>
在你的system.xml中!