回答:
これを試して:
<depends>
<field separator="|">
<value>1|2|3</value>
</field>
</depends>
$dependent['separator']
で、属性の値を返しますseparator
。これをこれまでにダウン投票した人には、アップ投票してください(可能な場合は2回)。完全に動作します。ありがとう。cc @benmarks
[編集]
以下の答えは間違っていました。私はこれで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);
}
すべてがスムーズに機能します。
拡張のためだけにコアを変更することはできないので、値ごとに1つではなく2つのフィールドを作成するfield1
か、これを処理して設定ページに追加するカスタムjsを作成する必要があります。