Конфигурация системы Множественный выбор по умолчанию все выбранные
У меня есть поле конфигурации системы типа multiselect, которое будет заполнено с помощью catalog/product_attribute_collection
. Это часть system.xml
, которая его определяет.
<attributes>
<label>Choose Attributes to JSONize</label>
<frontend_type>multiselect</frontend_type>
<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>
<source_model>package_module/system_config_attributes</source_model>
</attributes>
Теперь я хочу, чтобы все значения в множественном выборе были выбраны по умолчанию. Поскольку значения по умолчанию для конфигурации системы определены в config.xml
, я не уверен, как выбрать все по умолчанию.
Это раздел config.xml
, который имеет отношение к вопросу
<default>
<mytab>
<mysection>
<attributes><!-- ***WHAT SHOULD I WRITE HERE*** --></attributes>
</mysection>
</mytab>
</default>
3 answers
Используйте DATASCRIPT для хранения данных в модуле конфигурации.
Как создать сценарий данных
Http://inchoo.net/magento/magento-install-install-upgrade-data-and-data-upgrade-scripts/
В datascript просто вызовите основной модуль конфигурации и сохраните свои данные
$myDynamicValue = '1,2,3';
Mage::getConfig()->saveConfig('section/group/field', $myDynamicValue, 'default', 0);
Я привожу пример множественного выбора.
<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>
Создайте один файл для опции множественного выбора в вашем модуле по этому пути
Your_namespace/yourmodel/Model/System/Config/Source/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'),
);
}
}
<default>
<mytab>
<mysection>
<attributes><!-- ***WHAT SHOULD I WRITE HERE*** --></attributes>
</mysection>
</mytab>
</default>
Вы должны использовать разделенные запятыми ключи вашего массива опций.
Например
<default>
<mytab>
<mysection>
<attributes>0,1,3</attributes>
</mysection>
</mytab>
</default>
По умолчанию выбирает все три параметра.