openwrt - 新增栏目 - 新增页面
一、在原有的栏目里添加配置页面
1、/usr/lib/lua/luci/controller/admin里面的文件是对应UI页面的栏目。
需要加在在那个栏目,就打开对应的lua文件
例如我想在系统栏目里面添加一个页面那我打开system.lua文件,添加一行代码
entry({"admin", "system", "test"}, cbi("admin_system/test"), _("Test"), 60)
注:1、system表示在system栏,test是要新建的页面
2、cbi("admin_system/test")是等会要把配置文件放在这里,其实就是test改一下,
3、60表示排序,可以看到下面图中后面都是有顺序的,从小到大排序的,你想放在那个位置就根据前后的数字来写
注,一般修改了 controller里面的文件,再重启一下,或者把/tmp/目录下luci-indexcache luci-modulecache/luci-sessions/删除一下
保存一下,机器重启,可以看到UI页面已经添加了test页面
2、在/etc/config新建一个test文件
config testoption name '123'option url '123.com'
3、在/usr/lib/lua/luci/model/cbi/admin_system下新建一个页面test.lua。
关于想学test.lua里面的内容,可以参考Openwrt:LuCI之CBI(二)_Jags的博客-CSDN博客,大家可以根据需要去改写
local ipc = require "luci.ip"m = Map("test", translate("Test1"))s = m:section(TypedSection, "test", translate("Example Info"))
s.addremove = true
s.anonymous = true
s.template = "cbi/tblsection"name = s:option(Value, "name", translate("Name"))
name.datatype = "string"
name.rmempty = trueurl = s:option(Value, "url", translate("Url"))
url.datatype = "hostname"
url.rmempty = truereturn m
4、刷新一下,UI页面也出来了
二、添加新栏目,并在新栏目里添加配置页面
其实和在原有栏目添加页面是差不多的,先看图,前面我们知道每个栏目对应一个lua文件,在原有的栏目添加页面只需要找到对应的文件,添加一条语句就行了。
那么添加栏目的话,就是新建一个文件。
1、在/usr/lib/lua/luci/model/cbi/下新建busservice.lua文件
( 即添加一个新栏目 )
编辑busservice.lua文件里面的内容,可以参照其他的文件,例如
module("luci.controller.admin.busservice", package.seeall)function index()entry({"admin", "busservice"}, alias("admin", "busservice", "busservice"), _("Busservice"), 35).index = trueentry({"admin", "busservice", "access_restrictions"}, cbi("admin_busservice/access_restrictions"), _("Access Restrictions"), 10)entry({"admin", "busservice", "urlfiltering"}, cbi("admin_busservice/urlfiltering"), _("Urlfiltering"), 20)end
在这里我写了两个页面,access_restrictions 和 urlfiltering,大家可以根据自己需要改写。
栏目新建好了,重启一下板子,UI页面刷新就可以看到了
2、新建配置文件
这里我就以access_restrictions页面来写了,其实urlfiltering页面,我已经放在上面了,只是改了名字。
配置文件在/etc/config/下
vi /etc/config/access_restrictions
config access_restrictionsoption name '123'option ip '123.12.12.12'option protocol 'tcp'option starport '10'option endport '888'
里面的option根据自己需要改写
3、新建cbi页面,在/usr/lib/lua/luci/model/cbi/下创建admin_busservice目录
(还是名字改自己的,根据自己的栏目名称,参考其他文件)
mkdir admin_busservice
cd admin_busservice
进入admin_busservice文件(这个就相当于是栏目),新建页面文件(此栏目里面的页面)vi access_restrictions.lua
m = Map("access_restrictions", translate("Access_Restrictions"))s = m:section(TypedSection, "access_restrictions",translate("Example Info"))
s.addremove = true
s.anonymous = true
s.template = "cbi/tblsection"name = s:option(Value, "name", translate("Name"))
name.datatype = "string"
name.rmempty = trueip = s:option(Value, "ip", translate("IP address"))
ip.datatype = "ipaddr"
ip.rmempty = trueipc.neighbors({ }, function(n)if n.mac and n.dest and not n.dest:is6linklocal() thenip:value(n.dest:string(), "%s (%s)" %{ n.dest:string(), n.mac })end
end)-- 下拉框
p = s:option(ListValue, "protocol", translate("Protocol"))
p:value("tcp","TCP")
p:value("udp","UDP")
p:value("tcp+udp","TCP+UDP")sp = s:option(Value, "starport", translate("Star port"))
sp.datatype = "and(min(1),max(65534))"
sp.rmempty = trueep = s:option(Value, "endport", translate("End port"))
ep.datatype = "and(min(1),max(65535))"
ep.rmempty = truereturn m
保存,刷新页面,内容已经出来了。
想要学习CBI的,就是access_restrictions.lua文件里面的内容,点下面链接。我觉得这个还不错。
Openwrt:LuCI之CBI(二)_Jags的博客-CSDN博客
好,以上就是在openwrt上新建栏目和页面的步骤了,有什么不懂的就百度了,问我,可能我的知识比你的还少,我也是一边学习一边记录,文中有什么错误,希望大神指出。
openwrt - 新增栏目 - 新增页面相关推荐
- CSDN Blog首页新增栏目和二级页面通告
各位网友: 在广大CSDN BLOG用户的要求下,同时也为了更好的满足大家的需求,CSDN Blog(blog.csdn.net)已于2006年6月29日再次对首页进行了调整,除了对界面的布局调整外, ...
- ZblogPHP度娘主题新增图片列表页面模版
ZblogPHP度娘主题新增图片列表页面模版 2016-04-26 10:42 网页设计 标签:Z-BlogPHP 主题 模板 954 3 这两天一直在考虑模仿百度图片搜索做一个类 ...
- Java版数据结构之单向链表 新增,有序新增的两种方式,修改和删除(CRUD)
Java版数据结构之单向链表 CRUD Java版数据结构之单向链表 新增,有序新增的两种方式,修改和删除; 留了一个疑问; 我的代码仓库:https://github.com/zhuangbinan ...
- Spring MVC+layui(基于bootstrap)+t 新增功能(页面和数据传递)
为开发的规范,更易于扩充,将新增与列表页分开为:list.html.add.html list.html: <!DOCTYPE html> <html xmlns:th=" ...
- ecstore 新增模块(页面)
1.custom\b2c\site.xml 新增 <module id='b2c' controller='site_employee' ><name>employee< ...
- html页面主详新增,HTML5 新增元素详解
一.HTML5新增结构元素 之前,我们只能用万能的div标签,并为其设置不同的id如header, footer, sidebar等来分别表达头部,底部或者侧栏等.而现在代码编写者不再需要为id的命名 ...
- 织梦5.7版本后台栏目新增“栏目图片” / “图片地址” / “缩略图” 功能的方法
"栏目图片 / 栏目缩略图" 搭配"外部链接"功能真的非常好用,织梦5.7版本的发现栏目没有此功能,那只能自己手动添加了.添加的时候大家不要怕麻烦,按照步骤仔细 ...
- Openwrt中luci配置页面cbi小记
先看看network的配置文件: [html] view plaincopy config interface 'loopback' option ifname 'lo' option proto ' ...
- linux本地时间与utc不一致_辽宁无新增 | 北京新增本地确诊病例31例,中高考时间目前不做调整...
滨城家长会 半岛晨报教育官方微信 辽宁无新增 6月16日0时至24时,辽宁省无新增新冠肺炎确诊病例,无新增治愈出院病例.全省累计报告境外输入确诊病例22例,治愈出院21例,在院治疗1例.全省累计报告 ...
最新文章
- hadoop使用lzo压缩文件笔记
- 世界杯直播“三分天下”,视频平台如何实现高清直播?
- 赫夫曼编码-译码器(Huffman Coding)
- 计算机控制技术黄勤,微型计算机控制技术 教学课件 黄勤 第3章微型计算机控制系统的常用控制.ppt...
- 【Servlet】HTTP 协议之请求方式、Servlet介绍、Servlet 的生命周期
- 宝塔访问域名访问不到
- 在多任务(RTOS)环境中使用看门狗
- Arraylist线程不安全原因
- Linux环境下安装和使用Hyperledger Composer
- 【论文笔记】使用物理原理和领域知识进行无标注的监督学习
- Spring Boot基础教程 - 程序猿DD
- rust卡在服务器列表不显示,rust服务器废料设置
- E哥的Git教程(一)
- 基于单片机的自行车码表设计
- 蓝天P7xxtm 系列9代最新BIOS
- 环境搭建 - 奥比中光3D摄像头(Deeyea)
- 计算机uc,UC浏览器
- 【硬件通信协议】4. 详细解析CAN总线通信协议
- 基于 C# 和 js 开发的程序员升职记 remake 版
- WIN10下Prolific USB-to-Serial Comm Port驱动