[EDYTOWAĆ]
Myliłem się w mojej odpowiedzi poniżej. Nie usunę go (jeszcze), ponieważ mam na ten temat 7 głosów pozytywnych :). Ale edytuję to, abyście wszyscy mieli szansę wycofać swój głos (nawet głosować za jego przyjęciem, ponieważ na to zasługuję).
Oryginalna odpowiedź
Ha! .. znalazłem to.
Krótka odpowiedź: nie możesz!
Długa odpowiedź : powinieneś być w stanie to zrobić, gdyby ktoś znał różnicę między tablicą a obiektem.
Teoretycznie powinno to działać
<field1>
....
</field1>
<field2>
....
<depends>
<field1>
<value>1|2</value>
<separator>|</separator>
</field1>
</depends>
</field2>
Ale w kodzie, który obsługuje zależność, Mage_Adminhtml_Block_System_Config_Form::initFields
wokół linii 366 jest ten kod
if (isset($dependent['separator'])) {
$dependentValue = explode((string)$dependent['separator'], $dependentValue);
}
$dependent
jest zawsze przedmiotem, więc $dependent['separator']
nigdy nie jest ustawiany.
Jeśli zmienię powyższy kod na
if (isset($dependent->separator)) {
$dependentValue = explode((string)$dependent->separator, $dependentValue);
}
wszystko działa płynnie.
Chyba nie mogę zmienić rdzenia tylko ze względu na rozszerzenie, więc muszę utworzyć 2 pola zamiast 1, po jednym dla każdej wartości field1
lub utworzyć niestandardowy plik js, który to obsługuje i dodać go do strony konfiguracji.