luci笔记1, admin-mini模块分析

参考了网上的luci学习指南,还有自己的学习,胡扯来胡扯去。

function index()
        local root = node()
	if not root.lock then
		root.target = alias("mini")
		root.index = true
	end
	
	entry({"about"}, template("about"))
	
	local page   = entry({"mini"}, alias("mini", "index"), _("Essentials"), 10)
	page.sysauth = "root"
	page.sysauth_authenticator = "htmlauth"
	page.index = true
	
	entry({"mini", "index"}, alias("mini", "index", "index"), _("Overview"), 10).index = true
	entry({"mini", "index", "index"}, form("mini/index"), _("General"), 1).ignoreindex = true
	entry({"mini", "index", "luci"}, cbi("mini/luci", {autoapply=true}), _("Settings"), 10)
	entry({"mini", "index", "logout"}, call("action_logout"), _("Logout"))
end


root=node()定义了最外面的节点,也就是最上层的菜单显示。entry定义了一系列的菜单,及对应的业务处理路径。

page.sysauth = "root"
	page.sysauth_authenticator = "htmlauth"

这两行是把Essentials定义为需要认证用户的登陆,可以注释掉这两行,就无需登录操作了。

page.sysauth_authenticator="htmlauth"处理的函数位于luci目录下的dispatcher.lua

function authenticator.htmlauth(validator, accs, default)
	local user = luci.http.formvalue("username")
	local pass = luci.http.formvalue("password")

	if user and validator(user, pass) then
		return user
	end

	require("luci.i18n")
	require("luci.template")
	context.path = {}
	luci.template.render("sysauth", {duser=default, fuser=user})
	return false

end

调用的模板文件,位于luci/view/sysauth.html



entry()函数,

第一个参数是定义菜单的显示(Virtual path)。

第二个参数定义相应的处理方式(target)。

alias是指向别的entry的别名,from调用的某一个view,cbi调用某一个model,call直接调用函数。

第三个参数是菜单的文本,直接添加string不会国际化,_("string"),就国际化了,

第四个参数是是同级菜单下,此菜单项的位置,从大到小。

后面跟着的index=true忘了啥意思,哎,蛋疼。。。。。。。。。。。。。









评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值