0

I'm trying to write my first extension for magento. So I'm going through some tutorials to figure it out.

However I'm running into a problem with displaying some options in the backend configuration.

My directory looks like this

--R2retail  
  /--HelloWorldTut  
     /--Block  
     /--controllers  
     /--etc  
        /--config.xml  
        /--system.xml  
     /--Helper
        /--Data.php
     /--Model
        /--Options.php
     /--sql

I only listed the files that are relevant here.

My R2retail_HelloWorldTut file that is in /app/etc/modules/ looks as follows

<?xml version="1.0"?>
   <config>
      <modules>
        <R2retail_HelloWorldTut>
            <active>true</active>
            <codePool>local</codePool>
         </R2retail_HelloWorldTut>
       </modules>
    </config>

my config.xml looks like this

<?xml version="1.0"?>
  <config>
     <modules>
        <R2retail_HelloWorldTut>
          <version>0.1.0</version>
        </R2retail_HelloWorldTut>
     </modules>
     <global>
        <helpers>
          <helloworldtut>
            <class>R2retail_HelloWorldTut_Helper</class>
          </helloworldtut>
        </helpers>
        <models>
          <class>R2retail_HelloWorldTut_Model</class>
        </models>
     </global>
     <frontend>
       <routers>
          <helloworldtut>
              <use>standard</use>
              <args>
                 <module>R2retail_HelloWorldTut</module>
                 <frontName>helloworld</frontName>
              </args>
           </helloworldtut>
       </routers>
    </frontend>
    <adminhtml>
      <acl>
        <resources>
          <admin>
            <children>
              <config>
                <children>
                  <helloworldtut_options>
                    <title>R2retail Modules</title>
                  </helloworldtut_options>
                </children>
              </config>
            </children>
          </admin>
        </resources>
      </acl>
    </adminhtml>
</config>

My system.xml looks like this (I suspect the error is here somewhere)

<?xml version="1.0"?>
<config>
    <tabs>
        <helloworldtut translate="label" module="helloworldtut">
            <label>Custom Configuration Tab</label>
            <sort_order>1</sort_order>
        </helloworldtut>
    </tabs>

    <sections>
        <helloworldtut_options translate="label" module="helloworldtut">
            <label>Custom Configuration Settings</label>
            <tab>helloworldtut</tab>
            <frontend_type>text</frontend_type>
            <sort_order>1</sort_order>
            <show_in_default>1</show_in_default>
            <show_in_website>1</show_in_website>
            <show_in_store>1</show_in_store>
            <groups>
                <section_one translate="label">
                    <label>Section One</label>
                    <frontend_type>text</frontend_type>
                    <sort_order>1</sort_order>
                    <show_in_default>1</show_in_default>
                    <show_in_website>1</show_in_website>
                    <show_in_store>1</show_in_store>
                    <fields>
                        <custom_field_one>
                            <label>Custom Text Field</label>
                            <frontend_type>text</frontend_type>
                            <sort_order>1</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                            <comment>Example of text field.</comment>
                        </custom_field_one>
                    </fields>
                </section_one>
                <secttion_two translate="label">
                    <label>Section Two</label>
                    <frontend_type>text</frontend_type>
                    <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>
                    <fields>
                        <custom_field_two>
                            <label>Custom Select Field</label>
                            <frontend_type>select</frontend_type>
                            <source_model>helloworldtut/options</source_model>
                            <sort_order>1</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                            <comment>Example of select field.</comment>
                        </custom_field_two>
                        <custom_field_three>
                            <label>Custom Radio Field</label>
                            <frontend_type>radios</frontend_type>
                            <source_model>helloworldtut/options</source_model>
                            <sort_order>1</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                            <comment>Example of Radio Buttons</comment>
                        </custom_field_three>
                        <custom_field_four>
                            <label>Custom Multiselect Field</label>
                            <frontend_type>multiselect</frontend_type>
                            <source_model>helloworldtut/options</source_model>
                            <sort_order>1</sort_order>
                            <show_in_default>1</show_in_default>
                            <show_in_website>1</show_in_website>
                            <show_in_store>1</show_in_store>
                            <comments>Example of Multiselect field</comments>
                        </custom_field_four>
                    </fields>
                </secttion_two>
            </groups>
        </helloworldtut_options>
    </sections>
</config>

When I comment out the second section. the configuration page loads without any problems. so it goes wrong as soon as I do <source_model>helloworldtut/options</source_model>

My Data.php looks like this

<?php
/**
 * Sample Widget Helper
 */
class R2retail_HelloWorldTut_Helper_Data extends Mage_Core_Helper_Abstract
{
}

and finally my Options.php looks like this

<?php
class R2retail_HelloWorldTut_Model_Options {
  /**
   * Provide available options as a value/label array
   *
   * @return array
   */
  public function toOptionArray()
  {
    return array(
      array('value'=>1, 'label'=>'One'),
      array('value'=>2, 'label'=>'Two'),
      array('value'=>3, 'label'=>'Three'),            
      array('value'=>4, 'label'=>'Four')                     
    );
  }
}

I hope someone can help me figure out where I'm going wrong

2 Answers 2

2

I think problem is your config.xml in

<global>
        <helpers>
          <helloworldtut>
            <class>R2retail_HelloWorldTut_Helper</class>
          </helloworldtut>
        </helpers>
        <models>
          <class>R2retail_HelloWorldTut_Model</class>
        </models>
     </global>

just replace with this

<global>
        <helpers>
            <helloworldtut>
                <class>R2retail_HelloWorldTut_Helper</class>
            </helloworldtut>
        </helpers>
        <models>
            <helloworldtut> <!-- add your model name here-->
                <class>R2retail_HelloWorldTut_Model</class>
            </helloworldtut>    
        </models>
    </global>

Or you can add your full class name in source_model like

<source_model>R2retail_HelloWorldTut_Model_Options</source_model>
3
  • OMG can't believe I missed that I looked it over a dozen times. Thanks!!
    – NoSixties
    Commented Feb 4, 2017 at 12:48
  • It is Magento @NoSixties
    – Keyur Shah
    Commented Feb 4, 2017 at 12:51
  • I do have one quick other question you might be able to help me with. How do I make sure the extension settings don't show up on top of all the options but somewhere else in the side bar. for instance below the Catalog section in System->Configuration
    – NoSixties
    Commented Feb 4, 2017 at 14:08
0

You are adding a custom tab to your system configuration and using this. You can just use the catalog tab of the core module in your system.xml if you wish:

<sections>
    <helloworldtut_options translate="label" module="helloworldtut">
        <label>Custom Configuration Settings</label>
        <tab>catalog</tab>

Have a look at Magento catalog module: https://github.com/bragento/magento-core/blob/1.9/app/code/core/Mage/Catalog/etc/system.xml#L39

You should then also add a depends statement to your R2retail_HelloWorldTut.xml file in app/etc/modules:

<depends>
    <Mage_Catalog/>
</depends>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.