[संपादित करें]
मैं नीचे अपने जवाब में गलत था। मैं इसे (अभी तक) नहीं हटाऊंगा क्योंकि मुझे इस पर 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 बनाना होगा या इसे संभालना होगा और इसे कॉन्फ़िगर पृष्ठ पर जोड़ना होगा।