先看看network的配置文件:
- config interface 'loopback'
- option ifname 'lo'
- option proto 'static'
- option ipaddr '127.0.0.1'
- option netmask '255.0.0.0'
-
- config interface 'lan'
- option ifname 'eth0 eth1'
- option type 'bridge'
- option proto 'static'
- option ipaddr '192.168.1.10'
- option netmask '255.255.255.0'
-
- config switch
- option name 'eth0'
- option reset '1'
- option enable_vlan '1'
-
- config switch_vlan
- option device 'eth0'
- option vlan '1'
- option ports '0 1 2 3 4'
首先绑定/etc/config下的一个配置文件,比如network:
然后绑定network下面的一个部分,比如config interface 'lan' :
- n = m:section(NamedSection, "lan", translate("接口配置"))
- n.anonymous = true
- n.addremove = false --不增加移除的按钮
- 这里使用的是名字匹配,还有类型匹配,加如要config switch 这个时候我们可以使用 :
- n = m:section(TypedSection, "switch",translate("xx"))
假如上面的lan使用TypedSection interface的话 ,是可以同时匹配 config interface loopback 里面的字段的。
这个时候我们已经绑定了lan端口的字段 ,就可以开始对里面的ipaddr,netmask等进行修改 :
- ip = n:option(Value,"ipaddr",translate("IP地址")
这个时候就会有一个IP地址 : ,这样的对话框,里面填写即可,如果需要添加提示,可以这样:
- ip = n:option(Value,"ipaddr","IP地址","修改IP地址”)
这个时候下方就会显示一句提示,修改IP地址。
其中的Value还有几种别的属性,比如Listvalue,下拉选择框,假如说我要选择netmask,给几个选项,下拉选择:
- mask = s:option(ListValue,"netmask",translate("子网掩码"))
- mask.override_values = true
- mask:value("255.255.255.0",translate("255.255.255.0"))
- mask:value("xxx.xxx.xxx.x",translate("xxxxxx"))
这个时候就会出现一个子网掩码的下拉框供选择,具体更复杂的功能可以参考官方文档
Value还有一个属性就勾选框,Flag,使用方法类似,介绍一点最简单的使用 :
- encryption = s:option(Flag,"encryption",translate("............"))
- encryption.default = encryption.enabled
- encryption.enabled = "wpa-psk2"
- encryption.disabled = "none"
这个是选择加不加密的,一般这个时候我们选择以后要出现一个key的密码框,这个时候就要用到depends()这个函数了,比如:
- key = s:option(Value,"key",translate("Password"))
- key:depends({encryption="wpa-psk2"})
这里结合上面的勾选,假如勾选,就会出现一个密码框,也可以和下拉框配合一起使用
最后通过修改帐号密码来介绍几个参数 :
- username = s:option(Value,"username",".........")
- username.rmempty = false --不允许为空
-
- password = s:option(Value,"password",".........")
- password.password=true --加密,也就是*号显示,往往后面会带一个按钮,可以即时显示密码
- password.rmempt =false
暂时就这么多,以后再慢慢补充,最近在写机器人,挂在irc上面,结合以前写的一些查询类程序,可以实现很多功能嘿嘿,上班没事的时候写写
对了 ,修改完了记得rm -rf /tmp/luci-*来更新缓存,不然看不到变化的,还有浏览器删掉重新输入地址!
新增button简单应用
button = modex:option(Button, "modename", "桥接模式")
button.inputtitle = translate("切换")
button.inputstyle = "apply"
function button.write(self, section, value)
AbstractValue.write(self, section, value)
luci.sys.call("uci set network.lan.ifname=\"eth0.1 eth0.2\" ;uci del network.wan")
--self.inputtitle = translate("路由模式")
return
end
DDummyValue 静态文本
depends在很多情况下不安常理出牌,还有待研究