WHMCS 6 如何修改导航条菜单(主菜单)
如果你刚升级了 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 primaryNavbar use 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、修改按钮的链接指向:
<?phpuse 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 primaryNavbar use 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、删除一个菜单
<?php use 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 primaryNavbar use 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 如何修改导航条菜单(主菜单)相关推荐
- 帝国cms 主导航条下拉菜单功能实现,模板功能扩展
主导航条下拉菜单样式: 具体应用请查看我的个人网站:无知人生 实现步骤 1.在公共模板变量>页面头部模板中使用以下标签来加载菜单项 [listshowclass]'0',13,0,0[/list ...
- 如何修改WSS站点的主菜单
如何修改WSS站点的主菜单? FP2003可以很方便的添加.修改.删除链接.但为了将页面调整的更加符合需求,有的时候我们需要移动主菜单的位置.显示样式.或者全新建立一个菜单,这种情况下,修改页面模板是 ...
- css修改导航条样式
css修改导航条样式 近期由于工作需要要修改table表格导航条样式. 本人特整理出相关代码,以及最后效果,供各位小伙伴参考. 具体代码如下: .xp-table-content ::-webkit- ...
- html导航栏字体颜色怎么换,在WordPress的默认主题TwentyTen中修改导航条的颜色
安装了WordPress后一直使用自带的TwentyTen主题,感觉比较简洁,但是用得太久难免有些审美疲劳,于是决定换一个,懒得去网上再找了,耗时费力,又不一定有何意的,于是就决定修改TwentyTe ...
- uni-app动态修改导航条的标题
由于这个微信小程序表单页面是用于创建和编辑的,所以导航条的标题不能是一样的,但是在路由配置里面只能设置一个.所以需要在页面中进行修改,在这里用到了uni-app给我们的uni.setNavigatio ...
- 民航票务管理系统-C语言--录入,查询,订票,退票,修改航班信息以及主菜单和子菜单。
概述: 我的课程设计题目为民航票务管理系统,其目的是为了便利人们购买飞机票的过程为广大人民群众提供便利,本系统主要为订票者提供订票服务以及相关的信息服务.同时增加了我对于程序设计的理解以及对于 C 语 ...
- 10款菜单导航代码_jquery 导航菜单_js 导航菜单_二级导航条下拉菜单(一)
jQuery左侧下拉导航菜单后台框架模板 js侧边隐藏菜单收缩特效 黑色的左侧导航管理面板ui特效 企业官网tab下拉菜单特效 Facebook自定义多级导航菜单查询 jQuery圆形转盘多级菜单代码 ...
- Bootstrap导航条鼠标悬停下拉菜单
Bootstrap导航条鼠标悬停下拉菜单 Bootstrap的导航条下拉菜单为了适应移动设备没有鼠标hover的状态,都是点击弹出下拉菜单,为了适应一般网站使用,我稍作了一些修改,鼠标hover时就弹 ...
- 鼠标点击出现下拉菜单html,Bootstrap导航条可点击和鼠标悬停显示下拉菜单
使用Bootstrap导航条组件时,如果你的导航条带有下拉菜单,那么这个带下拉菜单的导航在点击时只会浮出下拉菜单,它本身的href属性会失效,也就是失去了超链接功能,这并不是我想要的,我希望导航条的链 ...
最新文章
- 2022-2028年中国电子陶瓷行业深度调研及投资前景预测报告
- Android性能优化典范第二季
- ural(Timus) 1463. Happiness to People!
- (chap5 web服务器) 数据转发之“网关和隧道”
- (转) OpenLayers3基础教程——OL3 介绍control
- 前端工程师有哪些面试技巧值得掌握?
- OpenCV与图像处理学习十二——图像形状特征之HOG特征
- Zookeeper UI管理界面安装
- 机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率
- 110页PPT|集成供应链管理解决方案(附PDF下载)
- 系统集成项目管理工程师计算题(期望值)
- IAP之boot实现
- tq210 开发板 刷linux,TQ210开发板嵌入式笔记.pdf
- PTA 【java】7-2 将数组中的数逆序存放 (20 分)
- ros语音识别:pocketsphinx_continuous工作正常而gst-pocketsphinx不能识别相同语音的问题。
- 升级主板和CPU后OpenGL初始化失败问题的解决
- 推荐给初学者:如何学好C语言?
- Chrome,谷歌浏览器已经不会自动更新了,但是会有更新提示,关闭更新提示,window10系统,本人亲自操作过,不坑人
- Tita OKR:目标地图的妙用
- 静态成员和非静态成员的区别
热门文章
- webpack 合并压缩_极客起源 - geekori.com - 问题详情 - webpack如何打包压缩jquery 插件?...
- 推荐全网最好的开源压缩软件,没有之一!
- 利用深度学习进行交通灯识别_通过深度学习识别交通信号灯
- 接住喽????,送你个装逼的技能: JDK动态代理
- ssm mysql过程抛错_下列关于 SSM 框架的整合说法错误的是 。 ( ) B : 。 C : 。 D : 。_学小易找答案...
- 工业控制系统所面临的安全威胁
- SQL Server 中获取字符串拼音的标量函数实现
- 入门3dsmax游戏建模你需要掌握的基础规范
- 四大关键词 解读08年韩国游戏企业
- OrientDB Python连接操作