Frage

Ich versuche, einen Systemkonfigurationsabschnitt mit benutzerdefinierten Feldwerten zu erstellen

Das ist mein Code:

system.xml

<?xml version="1.0"?>
<config>
    <tabs>
        <macerierconf translate="label">
            <label>Macerier</label>
            <sort_order>150</sort_order>
        </macerierconf>
    </tabs>
    <sections>
        <tab1 translate="label" module="adminhtml">
            <label>Settings</label>
            <tab>macerierconf</tab>
            <sort_order>100</sort_order>
            <show_in_default>1</show_in_default>
            <show_in_website>1</show_in_website>
            <show_in_store>1</show_in_store>
            <groups>
                <smssending translate="label comment">
                    <label>test label</label>
                    <sort_order>60</sort_order>
                    <show_in_default>1</show_in_default>
                    <show_in_website>1</show_in_website>
                    <show_in_store>1</show_in_store>
                    <fields>
                        <device translate="label comment">
                            <label>Device</label>
                            <frontend_type>select</frontend_type>
                            <source_model>macerier_test/system_config_source_dropdown_values</source_model>
                            <sort_order>30</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>0</show_in_website>
                            <show_in_store>0</show_in_store>
                        </device>
                    </fields>
                </smssending>
            </groups>
        </tab1>
    </sections>
</config>

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Macerier_TEST>
            <version>0.1.0</version>
        </Macerier_TEST>
    </modules>
    <global>
        <models>
            <macerier_test>
                <class>Macerier_TEST_Model</class>
            </macerier_test>
        </models>
    </global>
</config>

dann in Macerier\TEST\Model\System\Config\Source\Dropdown\Values.php Ich habe das:

<?php

class Macerier_TEST_Model_System_Config_Source_Dropdown_Values
{
    public function toOptionArray()
    {
        return array(
            array(
                'value' => 'key1',
                'label' => 'Value 1',
            ),
            array(
                'value' => 'key2',
                'label' => 'Value 2',
            ),
        );
    }
}

und ich erhalte diesen Fehler:

Schwerwiegender PHP-Fehler:Aufruf einer Mitgliedsfunktion toOptionArray() für ein Nicht-Objekt in /home/user/public_html/magento/app/code/core/Mage/Adminhtml/Block/System/Config/Form.php in Zeile 463

Ich bin mir sicher, dass ich hier etwas falsch mache, denn ohne das benutzerdefinierte Quellmodell funktioniert das Modul.

War es hilfreich?

Lösung

Dropdown kann es nicht bekommen Quellmodell

macerier_test/system_config_source_dropdown_values Deshalb wird der Fehler angezeigt

Möglicherweise haben Sie kein Modellpräfix definiert.

Gemäß Ihrem Code macerier_test .ist das Modellpräfix

Definieren wir also das Modellpräfix at config.xml

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Macerier_TEST>
            <version>0.1.0</version>
        </Macerier_TEST>
    </modules>
    <!-- add this -->
    <global>
    <models>
        <macerier_test> <!-- call as model prefix identifier -->
            <class>Macerier_TEST_Model</class>
        </macerier_test>
    </models>
    </global>

</config>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top