在OpenWrt中隐藏菜单

在实际的开发中,有时候我们需要根据情况来创建一个隐藏的菜单,这个功能仅作为一个子功能存在于程序之中,而不表现在菜单中。这时候,我们可以在写module使用hidden属性来创建一个隐藏菜单。例如:

创建一个/usr/lib/lua/luci/controller/admin/test.lua文件。

module("luci.controller.admin.test", package.seeall)

function index()
local page
page = entry({ "admin", "user", "list" }, template("admin/user/list.htm"), _("user list"), 10)
page.i18n = 'auoo'
page.hidden = true
page.dependent = true
end

 

PS:

是否能够真正的隐藏还要看主题是否支持。在/usr/lib/lua/luci/view/themes/主题名称/header.htm中找到subtree函数。查找是否在里面使用dispatcher.node_childs(node)方法来获取节点。如果没有使用node_childs那么基本上就可以断定不支持hidden这个属性。如果不支持,则可以通过修改header.htm中的subtree函数。找到如下相似的代码:

for k, n in pairs(node.nodes) do 
if n.title and n.target then
table.insert(index, {name=k, order=n.order or 100})
count = count + 1
end
end



 把if改为

if n.title and n.target and not n.hidden then


,即判断节点的hidden属性。

posted @ 2012-03-12 15:06  AUOONG  阅读(3030)  评论(0编辑  收藏  举报