[РЕДАКТИРОВАТЬ]
Я был неправ в своем ответе ниже. Я не буду удалять его (пока), потому что я получил 7 голосов по этому вопросу :). Но я редактирую его, чтобы у всех вас была возможность отозвать свой голос (даже понизить его, потому что я этого заслуживаю).
Оригинальный ответ
Ха! .. Я нашел это.
Краткий ответ: Вы не можете!
Длинный ответ : Вы должны быть в состоянии сделать это, если бы кто-то знал разницу между массивом и объектом.
В теории это должно работать
<field1>
....
</field1>
<field2>
....
<depends>
<field1>
<value>1|2</value>
<separator>|</separator>
</field1>
</depends>
</field2>
Но в коде, который обрабатывает зависимость, Mage_Adminhtml_Block_System_Config_Form::initFields
вокруг строки 366 есть этот код
if (isset($dependent['separator'])) {
$dependentValue = explode((string)$dependent['separator'], $dependentValue);
}
$dependent
всегда объект, поэтому $dependent['separator']
никогда не устанавливается.
Если я изменю код выше
if (isset($dependent->separator)) {
$dependentValue = explode((string)$dependent->separator, $dependentValue);
}
все работает плавно.
Я думаю, я не могу изменить ядро только ради расширения, поэтому мне нужно создать 2 поля вместо 1, по одному для каждого значения из field1
или создать пользовательский js, который обрабатывает это, и добавить его на страницу конфигурации.