先看看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:
- m = Map("network")
- n = m:section(NamedSection, "lan", translate("接口配置"))
- n.anonymous = true
- n.addremove = false --不增加移除的按鈕
- 這裏使用的是名字匹配,還有類型匹配,加如要config switch 這個時候我們可以使用 :
- n = m:section(TypedSection, "switch",translate("xx"))
這個時候我們已經綁定了lan端口的字段 ,就可以開始對裏面的ipaddr,netmask等進行修改 :
- ip = n:option(Value,"ipaddr",translate("IP地址")
- ip = n:option(Value,"ipaddr","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 = 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.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