[BEARBEITEN]
Ich habe mich in meiner Antwort unten geirrt. Ich werde es (noch) nicht löschen, da ich 7 positive Bewertungen dazu habe :). Aber ich bearbeite es, damit Sie alle die Möglichkeit haben, Ihre Stimme zurückzuziehen (sogar, weil ich es verdient habe).
Ursprüngliche Antwort
Ha! .. Ich habe es gefunden.
Kurze Antwort: Das kannst du nicht!
Lange Antwort : Sie sollten es können, wenn jemand den Unterschied zwischen einem Array und einem Objekt gewusst hätte.
Theoretisch sollte dies funktionieren
<field1>
....
</field1>
<field2>
....
<depends>
<field1>
<value>1|2</value>
<separator>|</separator>
</field1>
</depends>
</field2>
In dem Code, der die Abhängigkeit behandelt, Mage_Adminhtml_Block_System_Config_Form::initFields
steht dieser Code jedoch um Zeile 366
if (isset($dependent['separator'])) {
$dependentValue = explode((string)$dependent['separator'], $dependentValue);
}
$dependent
ist immer ein Objekt, $dependent['separator']
wird also nie gesetzt.
Wenn ich den obigen Code in ändere
if (isset($dependent->separator)) {
$dependentValue = explode((string)$dependent->separator, $dependentValue);
}
alles funktioniert reibungslos.
Ich schätze, ich kann den Kern nicht nur für eine Erweiterung ändern, also muss ich 2 Felder anstelle von 1 erstellen, eines für jeden Wert aus field1
oder ein benutzerdefiniertes js erstellen, das dies behandelt und es der Konfigurationsseite hinzufügt.