Таким образом, вы можете установить в system.xml
файле модуля зависимость между полями, добавив <depends>
тег в одно из полей.
<field1>
....
</field1>
<field2>
....
<depends>
<field1>1</field1>
</depends>
</field2>
Код выше означает , что field2
будет показано , когда значение field1
является 1
. Я хочу знать , как / могу , если я скажу Magento , чтобы показать , field2
если значение field1
является 1
OR 2
?
ce-1.7.0.2
system.xml
Мариус
источник
источник
$dependent['separator']
возвращает значение атрибутаseparator
. Для тех, кто когда-либо отрицал это, пожалуйста, проголосуйте (дважды, если это возможно). Работает отлично. Благодарю. cc @benmarks[РЕДАКТИРОВАТЬ]
Я был неправ в своем ответе ниже. Я не буду удалять его (пока), потому что я получил 7 голосов по этому вопросу :). Но я редактирую его, чтобы у всех вас была возможность отозвать свой голос (даже понизить его, потому что я этого заслуживаю).
Оригинальный ответ
Ха! .. Я нашел это.
Краткий ответ: Вы не можете!
Длинный ответ : Вы должны быть в состоянии сделать это, если бы кто-то знал разницу между массивом и объектом.
В теории это должно работать
Но в коде, который обрабатывает зависимость,
Mage_Adminhtml_Block_System_Config_Form::initFields
вокруг строки 366 есть этот код$dependent
всегда объект, поэтому$dependent['separator']
никогда не устанавливается.Если я изменю код выше
все работает плавно.
Я думаю, я не могу изменить ядро только ради расширения, поэтому мне нужно создать 2 поля вместо 1, по одному для каждого значения из
field1
или создать пользовательский js, который обрабатывает это, и добавить его на страницу конфигурации.источник