Вопрос

я создал 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