zoukankan      html  css  js  c++  java
  • openwrt web管理luci界面修改

    1.jpg

    以前都没听过openwrt和luci,只接触过简单的php语言。由于工作原因,要修改下luci的界面,竟然用了我2天的时间才简单的了解了luci的用法。这里简单的和大家分享下。(就接触2天,本人又是菜鸟级别,高手直接略过吧)大家发现有什么错误就和我说下大家共同学习。我主要是想修改下open后台界面网页的内容。

    具体怎么安装已经有人介绍过来了,我就不详细说了。下面说配置好之后,修改UI的做法

    在浏览器中输入:http://192.168.1.1/ 会自动跳到http://192.168.1.1/cgi-bin/luci 登陆默认root 密码是空

    默认的几个一级菜单都是在modulesadmin-fullluasrccontrolleradmin 这个目录下

    这个就类似于php的根目录了。/etc/config/这个目录下面的文件,个人观点是可以把它当做是php中的数据库连看待,这样反而更方便理解。

    实际上luci界面提供的已经很全了,我们并没有多少必要要新建立页面,我们大多就是在已有的界面上添加一些内容。比如我们公司现在需要添加wifi的isolate和maxassoc这两项属性。就让我找了半天才找到
    wifi.jpg

    首先要找到network-wifi对应的文件,

    在找点击edit后页面对应的文件。
    wifi-edit.jpg

    network.lua这个文件里面就定义了network下面有哪些二级目录。

    比如我要改wifi,我就看到有

    if has_wifi and has_wifi.size > 0 then page = entry({“admin”, “network”, “wireless”}, arcombine(template(“admin_network/wifi_overview”), cbi(“admin_network/wifi”)), _(“Wifi”), 15) page.leaf = true page.subindex = true

    这里面有cbi(“admin_network/wifi”)这条语句。知道的人就知道,不知道也没关系,想知道可以自己查下。

    这时我们到目录modulesadmin-fullluasrcmodelcbiadmin_network下面可以发现一个wifi.lua的文件,cbi的语句就是指向的这个文件。我们打开wifi.lua后,在———————- Interface ———————–这个下面地方添加

    isolate = s:taboption(“advanced”, Flag, “isolate”, translate(“Separate Clients”),translate(“Prevents client-to-client communication”))

    maxassoc = s:taboption(“advanced”, Value, “maxassoc”, translate(“Connection Limi”),translate(“Specifies the maximum number of clients to connect.”))

    这样两条语句就可以了。进入network-wifi edit看下我们修改的效果

    我们进入network-wifi之后选择一个无线网络点击edit后进入页面
    example.jpg

    在Interface Configuration下面的Advanced Settings下面可以进行修改之后点击Save & Apply

    修改这两项是保存在什么地方呢?刚刚我说了,/etc/config/目录下相当于数据库的功能。

    这时我们vi /etc/config/wireless可以查看到我们刚刚修改内容。
    wireless-config.jpg

    可以看到已经修改为我们刚刚调整的77了。

    有的人想要添加新的页面和功能,可以看下下面的内容。

    下面内容来源于chaochaoblog

    要完成一个新模块并用到里面需要两个东西,

    第一个我们先找到usr/lib/lua/LuCI/controller在里面建立一个文件夹,也就是我们的模块名称,就叫smustar吧

    在smustar下面再写我们模块的主文件就叫smumodule.lua吧

    参考官网,我们的模块写法应该是这样子的

    module(“LuCI.controller.smustar.smumodule”, package.seeall)

    function index()
    entry({“admin”, “network”, “802.1x“}, cbi(“smustar-smumodule/netifaces”), “Network interfaces”, 30).dependent=false
    end

    第一句话是声明一下这个模块了,没什么可说的。

    第二句话就是我们模块的主函数,其中呢要告诉它我们的入口,与其说入口,不如说就是告诉它是要admin登录才能用的,是在network这个菜单下,名字呢,叫做802.1x。模块执行的程序呢在smustar-smumodule/netifaces这里。

    好了各位又郁闷了smustar-smumodule/netifaces是什么东西,这是我们要建立的另外一个文件,上面不是说要两个么

    我们找到路径/usr/lib/lua/LuCI/module

    在下面建立文件夹smustar-smmodule建立文件netfaces.lua

    好了接下来就是要在netfaces.lua写我们的程序了,参考官网所说的这个什么LuCI最酷的地方,也就是修改config文件

    不要说你不懂什么是config文件了,最简单的比如network。

    我们在/etc/config下面建立一个配置文件叫smuset吧

    那这就是一个config文件的写法

    config ‘interface’ ‘smustar’

    option ‘user’ ‘youruser’
    option ‘pass’ ‘yourpass’

    ok这个config文件就是这样子了接下来写netfaces.lua

    m = Map(“smuset”, “smustar”) — We want to edit the uci config file /etc/config/smustar 这里是我们要配置的文件了,默认的路径它已经能够区别的,不用管了
    s = m:section(TypedSection, “interface”, “smustar”) — Especially the “interface”-sections读出里面的interface区域来
    s.addremove = true — Allow the user to create and remove the interfaces

    s:option(Value, “user”, “youruser”)这个能就是一个input即一个输入框了读取的是smuset中的user项。youruser是提示语罗

    key=s:option(Value, “pass”, “your password”)

    key.password=true; 设置为星号的密码输入框

    return m — Returns the map
    好了文件就完成了,之后我们进入LuCI配置界面

    在network下可以看到了802.1x选项

    进入后有账号和密码输入框 改一下之后

    save&apply一下,发现密码被修改了。我们的802.1x配置界面就做好了!

    本文章由http://www.wifidog.pro/2015/07/30/openwrt-luci%E4%BF%AE%E6%94%B9.html整理编辑,转载请注明出处

  • 相关阅读:
    JdbcTemplate增删改查案例
    顾问和注解
    使用多种方式实现AOP
    面试题
    Spring Bean的生命周期和作用域
    IOC和AOP交互拓展(二)
    AOP
    错题
    Spring核心概念
    hadoop-MapReduce框架原理之OutputFormat数据输出
  • 原文地址:https://www.cnblogs.com/wifidog/p/4690540.html
Copyright © 2011-2022 走看看