WHMCS 6 如何修改导航条菜单(主菜单)
来源:互联网 发布:源码大师官网 编辑:程序博客网 时间:2024/05/18 12:36
如果你刚升级了 WHMCS 6 ,你会发现导航条菜单连产品分类都没有。
如果你是做 WHMCS 模板开发的,你会发现 WHMCS 6 的主菜单已经不能直接在模板修改了。
那如何修改 WHMCS 6 导航条菜单(主菜单)呢?
查阅了官方文档,发现 WHMCS 使用 Hooks 来修改导航条。
那么 WHMCS Hooks 是什么呢?又如何使用呢?
下面以 WHMCS Hooks 修改 WHMCS 导航条按钮为例做一个简单说明:
1、在WHMCS根目录的 /includes/hooks/ 目录新建一个 Hooks.php 文件(注意文件编码一定是 utf-8 );
2、将下面的代码粘贴到 Hooks.php 文件,增加一个显示 “Menu Name” 指向“https://www.example.com/”的按钮:
<?php#adding Menu Item to primaryNavbaruse WHMCS\View\Menu\Item as MenuItem;add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar){ $primaryNavbar->addChild('Menu Name') ->setUri('https://www.example.com/') ->setOrder(70);});
其中:
1、addChild(‘Menu Name’) 中的 Menu Name 是按钮名字,也是按钮显示的文字
2、setUri(‘https://www.example.com/’) 中的 https://www.example.com/ 是按钮指向的链接
3、setOrder(70) 中的 70 表示按钮排序,数字越小排序越靠前。
菜单操作示例代码:
1、修改按钮文字:
<?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar){ $navItem = $primaryNavbar->getChild('Support'); if (is_null($navItem)) { return; } $navItem = $navItem->getChild('Announcements'); if (is_null($navItem)) { return; } $navItem->setLabel('Custom Title Here'); });
2、修改按钮的链接指向:
<?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar){ $navItem = $primaryNavbar->getChild('Support'); if (is_null($navItem)) { return; } $navItem = $navItem->getChild('Announcements'); if (is_null($navItem)) { return; } $navItem->setUri('https://www.example.com/3rdpartyblogsystem'); });
3、设置按钮的排序:
<?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar){ $navItem = $primaryNavbar->getChild('Support'); if (is_null($navItem)) { return; } $navItem = $navItem->getChild('Announcements'); if (is_null($navItem)) { return; } $navItem->setOrder(1); });
也可以用下面的代码重新排序:
// 按钮排名往前一位$primaryNavbar->getChild('Support')->getChild('Announcements')->moveUp();// 按钮排名往后一位$primaryNavbar->getChild('Support')->getChild('Announcements')->moveDown();// 按钮移动到最前面$primaryNavbar->getChild('Support')->getChild('Announcements')->moveToFront();// 按钮移动到最后面$primaryNavbar->getChild('Support')->getChild('Announcements')->moveToBack();
4、增加一个按钮
<?php#adding Menu Item to primaryNavbaruse WHMCS\View\Menu\Item as MenuItem;add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar){ $primaryNavbar->addChild('Menu Name') ->setUri('https://www.example.com/') ->setOrder(70);});
4.1、增加一个子菜单
<?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar){ if (!is_null($primaryNavbar->getChild('Support'))) { $primaryNavbar->getChild('Support') ->addChild('Emergency Contacts', array( 'label' => 'Emergency Contacts', 'uri' => 'emergency.php', 'order' => '100', )); }});
4.2、使用翻译文件显示按钮
<?php use WHMCS\View\Menu\Item as MenuItem;add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar){ if (!is_null($primaryNavbar->getChild('Support'))) { $primaryNavbar->getChild('Support') ->addChild('Emergency Contacts', array( 'label' => Lang::trans('emergencyContacts'), 'uri' => 'emergency.php', 'order' => '100', )); }});
4.3、根据登陆状态显示按钮
<?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar){ $client = Menu::context('client'); // 客户没有登陆时显示 if (is_null($client)) { $primaryNavbar->addChild('Example') ->setUri('https://www.example.com/') ->setOrder(100); }});
5、删除一个菜单
<?phpuse WHMCS\View\Menu\Item as MenuItem;add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar){ if (!is_null($primaryNavbar->getChild('Network Status'))) { $primaryNavbar->removeChild('Network Status'); }});
5.1删除一个子菜单
<?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar){ if (!is_null($primaryNavbar->getChild('Support'))) { $primaryNavbar->getChild('Support')->removeChild('Announcements'); }});
提示:你可以把多个操作合并在同一起,避免重复代码。
例如:
<?php#adding Menu Item to primaryNavbaruse WHMCS\View\Menu\Item as MenuItem;add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar){ $primaryNavbar->addChild('按钮1') ->setUri('链接1') ->setOrder(70); $$primaryNavbar->addChild('按钮2') ->setUri('链接2') ->setOrder(80);});
原文链接:http://hosttry.com/2015/11/14/whmcseditareamenu/
- WHMCS 6 如何修改导航条菜单(主菜单)
- [VC MFC] 修改主菜单和子菜单的文本
- VC 修改主菜单和子菜单的文本
- 如何修改dedeCMS后台主菜单修改方法
- 如何在ie主菜单里添加顶部菜单项
- 选项菜单之主菜单
- 控件(主菜单、上下文菜单、工具栏、状态栏)
- css简单导航触到主菜单显示子菜单横栏展示
- 兼容性网站导航主菜单--Head
- 如何调用主菜单方法
- 使菜单条主菜单项灰化
- ExpandableListView主菜单跟子菜单
- C# 主菜单 & 关联菜单 & RchTextBox文本框
- AndroidL中修改launcher3主菜单布局
- bootstrap导航条、分页导航学习笔记6-3(为导航条添加标题、二级菜单及状态)
- 导航条菜单的制作(笔记)
- 导航条菜单的制作(一)
- 导航条菜单
- iis express启动临时站点
- ffplay for mfc 代码备忘
- 罗密欧与朱丽叶迷宫问题
- 可持久化线段树笔记
- Java之统计字符串频率
- WHMCS 6 如何修改导航条菜单(主菜单)
- LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化
- 基础篇(十二) AdapterView和Adapter(适配器)
- 随想录(中断中真的不能上下文切换吗)
- 在Ubuntu下搭建Python以及相关组件
- 链表的快速排序
- 手动安装liberty版本openstack环境(allinone)---安装neutron
- 阿里云第1天
- Fedora23安装有道词典