如何在OpenWrt的Luci Web添加一个新菜单选项卡

刚刚接触路由器的luci Web界面我是懵的,完全没有什么头绪,经过一番上网查资料,有了一点了解.luci添加菜单有cbi和View两种方式,我主要介绍第二种View(template),对于有网页编程基础的人会更好地理解。

首先理解一个函数entry(),用于定义一个(子)菜单。

entry(路径, 调用目标, _("显示名称"), 显示顺序)
entry(path, target, title=nil, order=nil)

第一个参数:菜单入口。

第二个参数:菜单对应的页面.可以是lua的源代码文件,也可以是html页面,甚至可以是以上两种页面的组合。

                   lua介绍: https://baike.baidu.com/item/lua/7570719?fr=aladdin

第三个参数:菜单的名字,直接使用string不怎么国际化规范,而_('string')就比较好。

第四个参数:同一级别的菜单,该菜单所处的位置,由大到小排列。

添加新的顶级选项卡标签(主菜单)

在浏览器地址栏上通过输入192.168.1.1(我的是192.168.8.1)就可以访问openwrt的web界面,主菜单包括Status,System,Network和logout,如图所示,其中Demo是我后期加上去的。 

如输入 192.168.1.1 没出现界面,那么就是IP地址错了,可以在进入OpenWrt后在 /etc/config 目录下输入 ifconfig br_lan 命令查看 inet addr,inet addr 后面的IP地址就是我们需要的在浏览器中输入的。

这里我们选择新加入一个新的主菜单名为:”Demo"

登录 openwrt后在 /usr/lib/lua/luci/controller/admin 目录下添加nDemo.lua文件,文件编码内容如下:

module("luci.controller.admin.Demo", package.seeall) --notice that new_tab is the name of the file new_tab.lua
function index()                                                                                                                    
        entry({"admin", "Demo"}, firstchild(), "New tab", 30).dependent=false  --this adds the top level tab and defaults to the first sub-tab (tab_from_cbi), also it is set to position 30                                                  
        entry({"admin", "Demo", "tab_from_cbi"}, cbi("admin_myapp/cbi_tab"), "CBI Tab", 1)  --this adds the first sub-tab that is located in /usr/lib/lua/luci/model/cbi/admin_myapp and the file is called cbi_tab.lua, also set to first position                                     
        entry({"admin", "Demo", "tab_from_view"}, template("admin_myapp/view_tab"), "View Tab", 2)  --this adds the second sub-tab that is located in /usr/lib/lua/luci/view/admin_myapp and the file is called view_tab.htm, also set to the second position
end

添加view标签代码

   最后我们在  /usr/lib/lua/luci/view/admin_myapp  目录下新建 view_tab.htm 文件,包含如下代码:

<%+header%>                                                                    

<%:Hello World%>

<%+footer%>

效果图展示

在Demo的下拉菜单中点击View

你可能感兴趣的:(Linux)