Pergunta

eu criei system.xml arquivo como abaixo e defina todos os campos dependendo de active campo, mas alguns deles não funcionam e exibem mesmo active campo é desabilitado

sistema.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>
    ....

no arquivo acima get_settings não funciona, mas title trabalho também!O que há de diferente entre eles?

e Configurações.php em 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;
    }
}

mas não usei $element em códigos!

Foi útil?

Solução

Acabei de testar seu código e parece funcionar bem no title configuração.Não funciona no get_settings config porque o Javascript que faz o trabalho nos bastidores requer que você tenha um campo de entrada com o ID correto.

Então, para que isso funcione, você teria que adicionar um campo de entrada oculto, pode ser um campo de entrada fictício, se desejar, mas o ID deve seguir suas configurações, então sugiro que você inspecione o elemento em um dos outros campos de entrada e siga o exemplo

Para fazer isso basta seu Settings.php com o seguinte:

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;
}

É isso.Lembre-se, a tag depende só funciona quando há um campo de entrada disponível na fonte com os IDs corretos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top