Magento 2.2 – Show Custom Module Configuration in Admin Menu

adminmenuconfigurationmagento2.2

I am creating a custom module , now wanted to add module configuration options like enable/disable options . I found many post that shows how to create these options using system.xml but in that way it add the option in Store -> Setting -> Configuration

Till now i am able to crate configuration section In Store -> Setting -> Configuration as shown below.

configuration

Any one share any post or link in which i can learn how to create these options in module admin menu pages not in Configuration page.

I am trying to create same sections in my module page as we have in Magento 1.9.x
admin page

In /var/www/html/magento2/app/code/CompanyName/ReviewRating/etc/adminhtml/system.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
    <system>
        <tab id="reviewrating" translate="label" sortOrder="10000">
            <label>Reviewrating</label>
        </tab>
        <section id="reviewrating" translate="label" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0">
            <label>reviewrating</label>
            <tab>reviewrating</tab>
            <resource>CompanyName_ReviewRating::reviewrating</resource>
            <group id="general" translate="label" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0">
                <label>Item creation by schedule</label>
                <field id="enabled" translate="label" type="select" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0">
                    <label>Enabled</label>
                    <source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
                </field>
                <field id="cron_expression" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="0" showInStore="0" canRestore="1">
                    <label>Add Item Cron Expression</label>
                </field>
            </group>
        </section>
    </system>
</config>

In /var/www/html/magento2/app/code/CompanyName/ReviewRating/etc/adminhtml/menu.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Magento/Backend/etc/menu.xsd">
    <menu>
        <add id="CompanyName_ReviewRating::parent" title="ReviewRating" 
             module="CompanyName_ReviewRating" sortOrder="100" 
             resource="CompanyName_ReviewRating::parent"/>

        <add id="CompanyName_ReviewRating::index" title="ReviewRating Index" 
             module="CompanyName_ReviewRating" sortOrder="10" 
             action="reviewrating/index" resource="CompanyName_ReviewRating::index" 
              parent="CompanyName_ReviewRating::parent"/>

         <add id="CompanyName_ReviewRating::settings" title="Settings" module="CompanyName_ReviewRating" sortOrder="30" action="adminhtml/system_config/edit/section/reviewrating/" resource="CompanyName_ReviewRating::settings"/>   
    </menu>
</config>

Best Answer

For this you have to add menu for your module's configuration in menu.xml file, you can add below code in your menu.xml to add link of your module's configuration

<add id="Namespace_Module::settings" title="Settings" module="Namespace_Module" parent="Namespace_Module::your_parent_menu_id" sortOrder="30" action="adminhtml/system_config/edit/section/your_section_id/" resource="Namespace_Module::settings"/>
Related Topic