سؤال

صنعت system.xml الملف كما هو موضح أدناه وقم بتعيين كافة الحقول التي تعتمد عليها active الحقل ولكن بعضها لا يعمل ويتم عرضه حتى active المجال هو عاجز

system.xml

<fields>
    <active translate="label">
        <label>Enabled</label>
        <frontend_type>select</frontend_type>
        <source_model>adminhtml/system_config_source_yesno</source_model>
        <sort_order>2</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
    </active>
    <get_settings translate="label">
        <label>Account Info</label>
        <frontend_type>label</frontend_type>
        <frontend_model>module/adminhtml_settings</frontend_model>
        <sort_order>3</sort_order>
        <show_in_default>1</show_in_default>
        <depends><active>1</active></depends>
    </get_settings>
    <title translate="label">
        <label>Title</label>
        <frontend_type>text</frontend_type>
        <sort_order>4</sort_order>
        <show_in_default>1</show_in_default>
        <depends><active>1</active></depends>
    </title>
    ....

في الملف أعلاه get_settings لا يعمل ولكن title العمل كذلك!ما هو الفرق بينهما؟

وSettings.php في module/adminhtml_settings

class Name_Module_Block_Adminhtml_Settings extends Mage_Adminhtml_Block_System_Config_Form_Field
{
    protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
    {
    ....
    ....
    return $html;
    }
}

ولكن لم تستخدم $element في الرموز!

هل كانت مفيدة؟

المحلول

لقد اختبرت للتو الكود الخاص بك ويبدو أنه يعمل بشكل جيد على title التكوين.أنها لا تعمل على get_settings config لأن Javascript الذي يعمل خلف الكواليس يتطلب أن يكون لديك حقل إدخال بالمعرف الصحيح.

لذا لكي يعمل هذا، سيتعين عليك إضافة حقل إدخال مخفي، ويمكن أن يكون حقل إدخال زائفًا إذا أردت، ولكن يجب أن يتبع المعرف إعدادات التكوين الخاصة بك، لذا أقترح عليك فحص العنصر في أحد حقول الإدخال الأخرى واتبع حذوه

للقيام بذلك فقط الخاص بك Settings.php كالآتي:

protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
{
    $html = $element->getElementHtml();
    $html .= '<input id="name_module_get_settings" name="groups[module_name][fields][titles][value]" value="" class=" input-text" type="hidden">';

    /** do what ever you want here **/

    return $html;
}

هذا كل شيء.تذكر أن العلامة التابعة تعمل فقط عندما يكون هناك حقل إدخال متاح في المصدر بالمعرف الصحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top