luci自定义之初识

       第一次接触op的时候,第一感觉就是配置很繁琐,而且不怎么耐看。所以一直寻思着把luci修改得更加的简单。

       本来以为,要修改luci无非是改改样式而已,真正接触了luci才知道,并不是想象之中那么简单,所以这也让我头疼了好几天。

       没办法,急着要赶工,完全修改样式这么庞大的改动是很难在短时间内完成的,所以只能是另辟蹊径吧。所以,我们得了解luci是怎么从输入地址之后到登录界面,然后再到登录成功后的页面。这样,我们就可以把登录成功之后的页面改成指向我们自己定义的页面了。

       首先当你输入地址,就会访问/www目录下面的index.html,也就是那个黑黑的页面,接着就会跳转到/www/cgi-bin中的luci。luci文件代码如下:

       #!/usr/bin/lua -- 执行命令的路径

       require"luci.cacheloader" -- 导入 cacheloader 包

       require"luci.sgi.cgi" -- 导入 sgi.cgi 包

       luci.dispatcher.indexcache = "/tmp/luci-indexcache" --cache 缓存路径地址

       luci.sgi.cgi.run() -- 执 行 run 方法,此方法位于 /usr/lib/lua/luci/sgi/cgi.lua中

       接着就经过一系列的执行还有登录操作,最后会找到/usr/lib/lua/luci/controller/admin里面的index.lua脚本,我们通过修改这个脚本就可以使登录成功之后的页面指向改道,跳转到我们要跳转的页面,这样我们就可以自己定义想要的页面啦。这里贴出我的index.lua代码:

function index()
    local root = node()
    if not root.target then
        root.target = alias("admin")
        root.index = true
    end

    local page   = node("admin")

    require "luci.common"
    require "luci.sys"
    page.target  = template("admin_mypage/poindex") --登录成功后跳转的页面

    page.title   = _("Administration")
    page.order   = 10
    page.sysauth = "root"
    page.sysauth_authenticator = "htmlauth"
    page.ucidata = true
    page.index = true

    entry({"admin", "logout"}, call("action_logout"), _("Logout"), 90)
end

      当然,要做这些还需要了解luci的精髓MVC界面生成。这个可以自己去百度,这里推荐几个博客去了解就可以了。

      http://www.cnblogs.com/gnuhpc/p/3293643.html

      http://www.verydemo.com/demo_c101_i42459.html

      http://www.cnblogs.com/gnuhpc/archive/2013/08/31/3293204.html

      这是上班偷偷写的,有点乱,下期继续我们的luci界面自定义之旅。

      下期爆照几张做好的。

上一篇:云支付常见问题汇总


下一篇:阿里云突发性实例与通用型实例区别