一、在原有的栏目里添加配置页面

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 - 新增栏目 - 新增页面相关推荐

  1. CSDN Blog首页新增栏目和二级页面通告

    各位网友: 在广大CSDN BLOG用户的要求下,同时也为了更好的满足大家的需求,CSDN Blog(blog.csdn.net)已于2006年6月29日再次对首页进行了调整,除了对界面的布局调整外, ...

  2. ZblogPHP度娘主题新增图片列表页面模版

    ZblogPHP度娘主题新增图片列表页面模版  2016-04-26 10:42   网页设计   标签:Z-BlogPHP 主题 模板   954    3 这两天一直在考虑模仿百度图片搜索做一个类 ...

  3. Java版数据结构之单向链表 新增,有序新增的两种方式,修改和删除(CRUD)

    Java版数据结构之单向链表 CRUD Java版数据结构之单向链表 新增,有序新增的两种方式,修改和删除; 留了一个疑问; 我的代码仓库:https://github.com/zhuangbinan ...

  4. Spring MVC+layui(基于bootstrap)+t 新增功能(页面和数据传递)

    为开发的规范,更易于扩充,将新增与列表页分开为:list.html.add.html list.html: <!DOCTYPE html> <html xmlns:th=" ...

  5. ecstore 新增模块(页面)

    1.custom\b2c\site.xml  新增 <module id='b2c' controller='site_employee' ><name>employee< ...

  6. html页面主详新增,HTML5 新增元素详解

    一.HTML5新增结构元素 之前,我们只能用万能的div标签,并为其设置不同的id如header, footer, sidebar等来分别表达头部,底部或者侧栏等.而现在代码编写者不再需要为id的命名 ...

  7. 织梦5.7版本后台栏目新增“栏目图片” / “图片地址” / “缩略图” 功能的方法

    "栏目图片 / 栏目缩略图" 搭配"外部链接"功能真的非常好用,织梦5.7版本的发现栏目没有此功能,那只能自己手动添加了.添加的时候大家不要怕麻烦,按照步骤仔细 ...

  8. Openwrt中luci配置页面cbi小记

    先看看network的配置文件: [html] view plaincopy config interface 'loopback' option ifname 'lo' option proto ' ...

  9. linux本地时间与utc不一致_辽宁无新增 | 北京新增本地确诊病例31例,中高考时间目前不做调整...

    滨城家长会 半岛晨报教育官方微信 辽宁无新增  6月16日0时至24时,辽宁省无新增新冠肺炎确诊病例,无新增治愈出院病例.全省累计报告境外输入确诊病例22例,治愈出院21例,在院治疗1例.全省累计报告 ...

最新文章

  1. hadoop使用lzo压缩文件笔记
  2. 世界杯直播“三分天下”,视频平台如何实现高清直播?
  3. 赫夫曼编码-译码器(Huffman Coding)
  4. 计算机控制技术黄勤,微型计算机控制技术 教学课件 黄勤 第3章微型计算机控制系统的常用控制.ppt...
  5. 【Servlet】HTTP 协议之请求方式、Servlet介绍、Servlet 的生命周期
  6. 宝塔访问域名访问不到
  7. 在多任务(RTOS)环境中使用看门狗
  8. Arraylist线程不安全原因
  9. Linux环境下安装和使用Hyperledger Composer
  10. 【论文笔记】使用物理原理和领域知识进行无标注的监督学习
  11. Spring Boot基础教程 - 程序猿DD
  12. rust卡在服务器列表不显示,rust服务器废料设置
  13. E哥的Git教程(一)
  14. 基于单片机的自行车码表设计
  15. 蓝天P7xxtm 系列9代最新BIOS
  16. 环境搭建 - 奥比中光3D摄像头(Deeyea)
  17. 计算机uc,UC浏览器
  18. 【硬件通信协议】4. 详细解析CAN总线通信协议
  19. 基于 C# 和 js 开发的程序员升职记 remake 版
  20. WIN10下Prolific USB-to-Serial Comm Port驱动

热门文章

  1. Autostitch论文翻译
  2. ubuntu20.04如何安装搜狗输入法
  3. 苹果系统虚拟机无usb服务器,苹果电脑Mac系统中VMware虚拟机无法识别USB Key如何解决...
  4. 『每周译Go』Go sync map 的内部实现
  5. 用计算机唱歌 丑八怪乐谱,丑八怪歌曲谱子_丑八怪简谱
  6. flink on k8s部署方案调研
  7. Python实现打砖块小游戏
  8. 仿滴滴出行页面Demo
  9. Android手机凡客项目介绍
  10. 初步完成了一个处理PEN3电子鼻气味传感数据的Matlab-GUI程序