I have created 2 modules (A and B) in Magento. Each of these modules are managed from the admin section.
I tried creating a menu link under cms(menu) in the admin section for each module by writing the following configuration in modules' config files
Module A>etc>config.xml
<adminhtml>
<menu>
<a module="A">
<title>A</title>
<sort_order>100</sort_order>
<children>
<items module="A">
<title>Manage A</title>
<sort_order>0</sort_order>
<action>a/adminhtml_a</action>
</items>
</children>
</a>
</menu>
<adminhtml>
Module B>etc>config.xml
<adminhtml>
<menu>
<b module="B">
<title>B</title>
<sort_order>100</sort_order>
<children>
<items module="B">
<title>Manage B</title>
<sort_order>1</sort_order>
<action>b/adminhtml_b</action>
</items>
</children>
</b>
</menu>
<adminhtml>
However only the link for Module B shows up under CMS menu. How can I show both links?
the following worked
Module A>etc>config.xml
<menu>
<cms>
<children>
<a module="A">
<title>A</title>
<sort_order>5</sort_order>
<children>
<items module="A">
<title>Manage A</title>
<sort_order>0</sort_order>
<action>A/adminhtml_a</action>
</items>
</children>
</a>
</children>
</cms>
</menu>
Module B>etc>config.xml
<menu>
<cms>
<children>
<b module="B">
<title>B</title>
<sort_order>6</sort_order>
<children>
<items module="B">
<title>Manage B</title>
<sort_order>0</sort_order>
<action>B/adminhtml_b</action>
</items>
</children>
</b>
</children>
</cms>
</menu>
Related
I know how to create a sub-menu under catalog main navigation menu in config.xml which is:
<menu>
<catalog>
<children>
<testimonials>
<title>Manage Testimonials</title>
<sort_order>1</sort_order>
<action>adminhtml/adminhtml_testimonials</action>
</testimonials>
</children>
</catalog>
</menu>
but how do I create a sub-menu under Customers Menu? I tried:
<menu>
<customers>
<children>
<testimonials>
<title>Manage Testimonials</title>
<sort_order>1</sort_order>
<action>adminhtml/adminhtml_testimonials</action>
</testimonials>
</children>
</customers>
</menu>
but it doesn't work. Any suggestion would be appreciated.
Assuming that this is not a permission issue and you have clear cache and re-login.
In config.xml
<?xml version="1.0"?>
<config>
....
<adminhtml> <---
<menu>
<customer>
<children>
<testimonials>
<title>Manage Testimonials</title>
<sort_order>0</sort_order>
<action>adminhtml/adminhtml_testimonials</action>
</testimonials>
</children>
</customer>
</menu>
</adminhtml> <---
....
or
In adminhtml.xml
<?xml version="1.0"?>
<config>
...
<menu>
<customer>
<children>
<testimonials>
<title>Manage Testimonials</title>
<sort_order>0</sort_order>
<action>adminhtml/adminhtml_testimonials</action>
</testimonials>
</children>
</customer>
</menu>
...
I have an issue with a custom controllers ACL for the admin backend.
Ive read, re-read, checked....and still cant find my issue. Dammit.
First, the code...the module itself is working...i have blocks, helpers, front end controllers...system->config tab/group data...all working fine. My issue is just relating to admincontroller acl...so ill just add the relevant code for that area for now.
My backend tab is showing, but the urls (admin/mynewmodule/index, admin/mynewmodule/list) go to a 404 page.
config.xml, admin routers:
<admin>
<routers>
<adminhtml>
<args>
<modules>
<mynewmodule before="Mage_Adminhtml">
Mworkz_MyNewModule_Adminhtml
</mynewmodule >
</modules>
</args>
</adminhtml>
</routers>
</admin>
Adminhtml.xml, backend tab, and acl
<?xml version="1.0"?>
<config>
<menu>
<mynewmodule module="mynewmodule " translate="title">
<title>MyNewModule</title>
<sort_order>71</sort_order>
<children>
<items module="mynewmodule " translate="title">
<title>Index Action</title>
<sort_order>1</sort_order>
<action>adminhtml/mynewmodule/</action>
</items>
<list module="mynewmodule " translate="title">
<title>List Action</title>
<sort_order>2</sort_order>
<action>adminhtml/mynewmodule/list/</action>
</list>
</children>
</mynewmodule >
</menu>
<acl>
<resources>
<admin>
<children>
<system>
<children>
<config>
<children>
<mynewmodule translate="title">
<title>MyNewModule</title>
</mynewmodule>
</children>
</config>
</children>
</system>
<mynewmodule translate="title" module="mynewmodule">
<title>MyNewModule</title>
<sort_order>-100</sort_order>
<children>
<items translate="title">
<title>Index Action</title>
<sort_order>1</sort_order>
</items>
<list translate="title">
<title>List Action</title>
<sort_order>2</sort_order>
</list>
</children>
</mynewmodule>
</children>
</admin>
</resources>
</acl>
<layout>
<updates>
<mynewmodule>
<file>mworkz/mynewmodule.xml</file>
</mynewmodule>
</updates>
</layout>
</config>
Admin controller
class Mworkz_MyNewModule_Adminhtml_MyNewModuleController extends Mage_Adminhtml_Controller_action
{
protected function _initAction() {
$this->loadLayout()
->_setActiveMenu('extbuilderpro/items')
->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));
return $this;
}
public function indexAction() {
$this->_initAction()
->renderLayout();
}
public function listAction() {
$this->_initAction()
->renderLayout();
}
}
If you write your own extension, path must be module_name/admin_html/list. Download free magento extension, for example: http://www.magentocommerce.com/magento-connect/news-by-commercelab-3436.html and look at etc/config.xml.
So right code:
<menu>
<modulename module="modulename" translate="title">
<title>Module Name</title>
<sort_order>1</sort_order>
<children>
<add translate="title" module="modulename">
<title>Add New Item</title>
<sort_order>0</sort_order>
<action>modulename/adminhtml_news/new</action>
</add>
<items translate="title" module="modulename">
<title>Items Manager</title>
<sort_order>10</sort_order>
<action>modulename/adminhtml_news/index</action>
</items>
<settings translate="title" module="modulename">
<title>Settings</title>
<sort_order>40</sort_order>
<action>adminhtml/system_config/edit/section/modulename</action>
</settings>
</children>
</clnews>
</menu>
My existing code creates a menu that looks like this.
But I want a menu that is a sub-menu of the Catalog menu.
Here is my existing code in adminhtml.xml
<?xml version="1.0" ?>
<config>
<menu>
<mycustom_menu translate="title" module="brands">
<title>My Custom Menu Item</title>
<sort_order>300</sort_order>
<children>
<!-- child items go here -->
<subitem translate="title" module="brands">
<title>Manage Brands</title>
<sort_order>10</sort_order>
<action>adminhtml/mycustom_controller/</action>
</subitem>
</children>
</mycustom_menu>
</menu>
<acl>
<resources>
<admin>
<children>
<mycustom_menu translate="title" module="brands">
<title>My Custom Menu Item</title>
<sort_order>300</sort_order>
<children>
<subitem translate="title" module="brands">
<title>Subitem</title>
<sort_order>10</sort_order>
</subitem>
</children>
</mycustom_menu>
</children>
</admin>
</resources>
</acl>
</config>
Instead of using <mycustom_menu> you need to re-use the nodename that was used in the adminhtml.xml of the catalog module. That name is catalog.
So your XML should look like:
<?xml version="1.0"?>
<config>
<menu>
<catalog>
<children>
<your_subitem>
<title>Subitem 1</title>
<sort_order>10</sort_order>
<action>adminhtml/your_action</action>
</your_subitem>
</children>
</catalog>
</menu>
<acl>
<resources>
<admin>
<children>
<catalog>
<title>Subitem 1</title>
<sort_order>10</sort_order>
</catalog>
</children>
</admin>
</resources>
</acl>
</config>
For example to add submenu in customer tab:
<menu>
<customer>
<children>
<vendor module="yourmodule">
<title>Your Title</title>
<sort_order>0</sort_order>
<action>admin_yourmodule/adminhtml_yourmoduleaction</action>
</vendor>
</children>
</customer>
</menu>
Here's the situation:
I would like to add a Menu in the Magento backend navigation menu.
I accomplished this by adding the following code in app/etc/config.xml:
<adminhtml>
<menu>
<example translate="title" module="adminhtml">
<title>Inventory</title>
<sort_order>110</sort_order>
<children>
<set_time>
<title>Set It!</title>
<action>helloworld/index/goodbye</action>
</set_time>
</children>
</example>
</menu>
The problem is I can't include this menu in the permission->role resources so I can't assign this to a specific user.
How do I include this menu in the permission->role resources?
Thank you and more power!
You need to tell magento that you want your new menu position to be visible in the permission tree. To do this you have to add an ACL section to your configuration data. Put this inside your module's config.xml file:
<acl>
<resources>
<admin>
<children>
<example>
<title>Inventory</title>
<sort_order>110</sort_order>
<children>
<set_time>
<title>Set It!</title>
<sort_order>0</sort_order>
</set_time>
</children>
</example>
</children>
</admin>
</resources>
</acl>
thanks.. I got it to work with a few tweakings..
<adminhtml>
<acl>
<resources>
<admin>
<children>
<helloworld_options translate="label" module="helloworld">
<title> MENU</title>
<sort_order>999</sort_order>
<children>
<hello_children1>
<title> RELATION</title>
<sort_order>10</sort_order>
</hello_children1>
<hello_children2>
<title> MACHINE</title>
<sort_order>20</sort_order>
</hello_children2>
<hello_children3>
<title> INVOICE</title>
<sort_order>30</sort_order>
</hello_children3>
</children>
</helloworld_options>
<system>
<children>
<config>
<children>
<helloworld_options translate="label" module="helloworld">
<title> MENU</title>
</helloworld_options>
</children>
</config>
</children>
</system>
</children>
</admin>
</resources>
</acl>
</adminhtml>
this will display the following menu with sub menus in the backend.. plus this can be configured in the role resources.. :)
I currently have an extension that I created and it currently sits inside of its own top level menu. I would like to move it so that the item would appear inside of the Customers menu. Does anyone know how to do this?
It looks like this is handled inside the extensions config.xml file. The code that I have for it right now is as follows:
<menu>
<testimonials module="testimonials">
<title>Testimonials</title>
<sort_order>71</sort_order>
<children>
<items module="testimonials">
<title>Manage Items</title>
<sort_order>0</sort_order>
<action>testimonials/adminhtml_testimonials</action>
</items>
</children>
</testimonials>
</menu>
I tried changing the title element to Customers and it just created a duplicate Customers menu.
Try this:
<menu>
<customer>
<children>
<testimonials module="testimonials">
<title>Testimonials</title>
<sort_order>71</sort_order>
<children>
<items module="testimonials">
<title>Manage Items</title>
<sort_order>0</sort_order>
<action>testimonials/adminhtml_testimonials</action>
</items>
</children>
</testimonials>
</children>
</customer>
</menu>