如何在magento管理面板中添加菜单?

1.下面是自定义模块添加后台菜单配置

  • 在/app/etc/modules/下面添加 Lollicupstore_Payment.xml
<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <modules>
        <Lollicupstore_Payment>
            <active>true</active>
            <codePool>local</codePool>
        </Lollicupstore_Payment>
    </modules>
</config>
  • 建立文件\app\code\local\Lollicupstore\Payment\etc\config.xml
<?xml version="1.0"?>
<config>
    <modules>
        <Lollicupstore_Payment>
            <version>1.0</version>
        </Lollicupstore_Payment>
    </modules>
    <admin>   <!--下面action 路由配置开始,不配置,url路由将显示404->
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <lollicupstore_payment before="Mage_Adminhtml">Lollicupstore_Payment_Adminhtml</lollicupstore_payment>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
<!--路由配置结束-->
    <adminhtml>
        <menu>
            <payment module="payment">
                <title>Mobile Payment</title>
                <sort_order>800</sort_order>
                <children>
                    <items module="payment">
                        <title>Payment Configration</title>
                        <sort_order>0</sort_order>
                        <!--<action>blog/adminhtml_blog</action>-->
                        <children>
                            <paypal module="payment">
                                <title>PayPal</title>
                                <sort_order>1</sort_order>
                                <action>adminhtml/paypal</action>
                            </paypal>
                            <cybersource module="payment">
                                <title>Cybersource</title>
                                <sort_order>2</sort_order>
                                <action>adminhtml/cybersource</action>
                            </cybersource>
                        </children>
                    </items>
                </children>
            </payment>
        </menu>
    </adminhtml>
    <global>
        <helpers>
            <payment>
                <class>Lollicupstore_Payment_Helper</class>
            </payment>
        </helpers>
    </global>
</config>
  • 创建:\app\code\local\Lollicupstore\Payment\Helper\Data.php
<?php
/**
 * Created by PhpStorm.
 * User: lollicup
 * Date: 2019/5/16
 * Time: 10:44
 */
class Lollicupstore_Payment_Helper_Data extends Mage_Core_Helper_Abstract
{

}
  • 创建\app\code\local\Lollicupstore\Payment\controllers\Adminhtml\CybersourceController.php

\app\code\local\Lollicupstore\Payment\controllers\Adminhtml\PaypalController.php

  • 代码如下:
<?php
/**
 * Created by PhpStorm.
 * User: lollicup
 * Date: 2019/5/16
 * Time: 11:47
 */

class Lollicupstore_Payment_Adminhtml_CybersourceController extends Mage_Adminhtml_Controller_Action
{

    /**
     *
     */
    public function indexAction()
    {
        exit('cybersource:index');
    }
}
<?php
/**
 * Created by PhpStorm.
 * User: lollicup
 * Date: 2019/5/16
 * Time: 11:14
 */
class Lollicupstore_Payment_Adminhtml_PaypalController extends Mage_Adminhtml_Controller_Action{

    protected function _isAllowed()
    {
        return true;
    }

    /**
     *
     */
    public function indexAction()
    {
        exit('paypal:index');
    }
}
  • 代码结构如下:
代码结构如下

参考网站:
http://www.bubblecode.net/en/2012/02/08/magento-create-your-own-admin-controller-in-a-new-tab/


Alanstorm :Magento Admin Hello World Revisited https://alanstorm.com/magento_admin_hello_world_revisited/

参考地址:
https://tonytemplates.com/blog/how-to-create-a-new-menu-item-in-the-magento-admin-panel/

  • 菜单ACL

我们的菜单项目还不完善。上面,我们告诉您以具有特殊所有权限的用户身份登录管理控制台。如果您忽略了此建议,并以具有限制权限的用户身份登录,则您将看不到该菜单项。

这是因为Magento的管理控制台只呈现用户有明确权限查看的菜单项。在所有的用户可以查看所有的明确许可,但用户与指定角色的资源没有。

要为我们的新菜单项payment(admin/paypal)添加ACL权限,请将以下节点添加到您的adminhtml.xml文件中。

 <!--Access Control Settings-->
        <acl>
            <resources>
                <admin>
                    <children>
                        <payment translate="title" module="payment">
                            <title>Mobile Payment</title>
                            <sort_order>1000</sort_order>
                            <children>
                                <payment_items translate="title" module="payment">
                                    <title>Payment Configuration</title>
                                    <sort_order>10</sort_order>
                                    <children>
                                        <payment_paypal translate="title" module="payment">
                                            <title>Paypal</title>
                                            <sort_order>9</sort_order>
                                        </payment_paypal>
                                        <payment_cybersource translate="title" module="payment">
                                            <title>Cybersource</title>
                                            <sort_order>10</sort_order>
                                        </payment_cybersource>
                                    </children>
                                </payment_items>
                            </children>
                        </payment>
                    </children>
                </admin>
            </resources>
        </acl>

完成上述操作后,清除缓存并查看System -> Permissions -> Roles管理部分中的角色

2. 网络例子admin后台添加菜单

文件 – app / etc / modules / TonyTemplate_Blog.xml

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

此文件由Magento引擎读取并将文件添加到全局配置。现在Magento知道我们的新模块。

文件 – app / code / local / TonyTemplate / Blog / etc / config.xml

这是我们模块的主要配置文件(该文件也将添加到全局XML配置文件中)。该文件描述了菜单部分的结构

<?xml version="1.0"?>
<config>
    <modules>
        <TonyTemplate_Blog>
            <version>0.1.0</version>
        </TonyTemplate_Blog>
    </modules>
    <admin>
        <routers>
            <blog>
                <use>admin</use>
                <args>
                    <module>TonyTemplate_Blog</module>
                    <frontName>blog</frontName>
                </args>
            </blog>
        </routers>
    </admin>
    <adminhtml>
        <menu>
            <blog module="blog">
                <title>Blog</title>
                <sort_order>71</sort_order>
                <children>
                    <items module="blog">
                        <title>Manage Items</title>
                        <sort_order>0</sort_order>
                        <action>blog/adminhtml_blog</action>
                    </items>
                </children>
            </blog>
        </menu>
    </adminhtml>
</config>

在<sort_order>的帮助下,可以对菜单项进行排序。

要创建菜单的子元素,请使用<children>。新元素可以具有任意名称。例如,要添加新菜单项“注释”,您可以添加

<comments module="blog">
	<title>Comments</title>
	<sort_order>1</sort_order>
	<action>blog/adminhtml_comment</action>
</comments>

结果,你应该得到

<children>
	<items module="blog">
		<title>Manage Items</title>
		<sort_order>0</sort_order>
		<action>blog/adminhtml_blog</action>
	</items>
	<comments module="blog">
		<title>Comments</title>
		<sort_order>1</sort_order>
		<action>blog/adminhtml_comment</action>
	</comments>
</children>

这就是菜单的创建。

这是由于Magento运行的特殊性,它需要一个帮手。我们还不需要它,所以让我们创建一个空助手。

文件 – app / code / local / TonyTemplate / Blog / Helper / Data.php

<?php

class TonyTemplate_Blog_Helper_Data extends Mage_Core_Helper_Abstract

{

}

为了让Magento知道模块配置文件中的帮助器,应该留下以下内容:

 <global>
        <helpers>
            <blog>
                <class>TonyTemplate_Blog_Helper</class>
            </blog>
        </helpers>
    </global>

可以在此处下载生成的模块的存档文件

就这样。在新帖子中见到你。

Leave a comment

您的电子邮箱地址不会被公开。 必填项已用 * 标注