Magento:系统/配置在MultiSelect中添加自定义值

Jac*_*ris 6 magento magento-1.7

我创建了一个简单的模块.我创建了system.xml.有一个字段Multiselect我想在multiselect字段中添加自定义值.

是否可以在多选字段中添加自定义值?

 <Data translate="label">
 <label>Select Socail Media</label>
 <comment>Select Social Media To fdisplay ion Front Side</comment>
 <front_end_type>multiselect</front_end_type>
 <source_model>adminhtml/system_config_source_country</source_model>
 <sort_order>3</sort_order>
 <show_in_default>1</show_in_default>
 <show_in_website>1</show_in_website>
 <show_in_store>1</show_in_store>
 </Data>    
Run Code Online (Sandbox Code Playgroud)

在Multiselect选项中我想添加我的自定义选项,如:Data1,Data2,Data3等.

我怎样才能做到这一点?可能吗?

liy*_*kat 15

是的,您可以像这样创建以下代码添加到system.xml

<fields>
    <view_style translate="label">
        <label>Display Settings</label>
        <frontend_type>multiselect</frontend_type>
        <source_model>yourmodule/system_config_source_view</source_model>
        <sort_order>40</sort_order>
        <show_in_default>1</show_in_default>
    </view_style>
</fields>
Run Code Online (Sandbox Code Playgroud)

在此路径中的模块中为多选选项创建一个文件

your_namespace/yourmodel /型号/系统/配置/来源/ View.php

在View.php中添加以下代码

class YourNamespace_YourModule_Model_System_Config_Source_View 
{
    /**
     * Options getter
     *
     * @return array
     */
    public function toOptionArray()
    {
        return array(
            array('value' => 0, 'label' => Mage::helper('adminhtml')->__('Data1')),
            array('value' => 1, 'label' => Mage::helper('adminhtml')->__('Data2')),
            array('value' => 2, 'label' => Mage::helper('adminhtml')->__('Data3')),
        );
    }

    /**
     * Get options in "key-value" format
     *
     * @return array
     */
    public function toArray()
    {
        return array(
            0 => Mage::helper('adminhtml')->__('Data1'),
            1 => Mage::helper('adminhtml')->__('Data2'),
            3 => Mage::helper('adminhtml')->__('Data3'),
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请使用此链接

希望这一定会对你有所帮助.