Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2968816
  • 博文数量: 685
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5303
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-19 14:17
个人简介

文章分类

全部博文(685)

文章存档

2015年(116)

2014年(569)

分类: 嵌入式

2014-09-15 20:42:50

原文地址:http://blog.csdn.net/ruiyiin/article/details/8677080

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


  1. function index()
  2. local root = node()
  3. if not root.lock then
  4. root.target = alias("mini")
  5. root.index = true
  6. end
  7. entry({"about"}, template("about"))
  8. local page = entry({"mini"}, alias("mini", "index"), _("Essentials"), 10)
  9. page.sysauth = "root"
  10. page.sysauth_authenticator = "htmlauth"
  11. page.index = true
  12. entry({"mini", "index"}, alias("mini", "index", "index"), _("Overview"), 10).index = true
  13. entry({"mini", "index", "index"}, form("mini/index"), _("General"), 1).ignoreindex = true
  14. entry({"mini", "index", "luci"}, cbi("mini/luci", {autoapply=true}), _("Settings"), 10)
  15. entry({"mini", "index", "logout"}, call("action_logout"), _("Logout"))
  16. end



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


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

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


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


  1. function authenticator.htmlauth(validator, accs, default)
  2. local user = luci.http.formvalue("username")
  3. local pass = luci.http.formvalue("password")
  4. if user and validator(user, pass) then
  5. return user
  6. end
  7. require("luci.i18n")
  8. require("luci.template")
  9. context.path = {}
  10. luci.template.render("sysauth", {duser=default, fuser=user})
  11. return false
  12. end

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




entry()函数,

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

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

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

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

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

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


阅读(1779) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~