Openwrt中luci配置页面cbi小记

先看看network的配置文件:

  1. config interface 'loopback'  
  2.         option ifname 'lo'  
  3.         option proto 'static'  
  4.         option ipaddr '127.0.0.1'  
  5.         option netmask '255.0.0.0'  
  6.   
  7. config interface 'lan'  
  8.         option ifname 'eth0 eth1'  
  9.         option type 'bridge'  
  10.         option proto 'static'  
  11.         option ipaddr '192.168.1.10'  
  12.         option netmask '255.255.255.0'  
  13.   
  14. config switch  
  15.         option name 'eth0'  
  16.         option reset '1'  
  17.         option enable_vlan '1'  
  18.   
  19. config switch_vlan  
  20.         option device 'eth0'  
  21.         option vlan '1'  
  22.         option ports '0 1 2 3 4'  

首先绑定/etc/config下的一个配置文件,比方network:

  1. m = Map("network")  
然后绑定network以下的一个部分,比方config interface 'lan' :
  1. n = m:section(NamedSection, "lan", translate("接口配置"))  
  2. n.anonymous = true  
  3. n.addremove = false --不添加移除的button  
  4. 这里使用的是名字匹配。还有类型匹配。加如要config switch 这个时候我们能够使用 :  
  1. n = m:section(TypedSection, "switch",translate("xx"))  
假如上面的lan使用TypedSection interface的话  ,是能够同一时候匹配 config interface loopback 里面的字段的。

这个时候我们已经绑定了lanport的字段 ,就能够開始对里面的ipaddr,netmask等进行改动 :

  1. ip = n:option(Value,"ipaddr",translate("IP地址")  
这个时候就会有一个IP地址 :                             。这种对话框,里面填写就可以,假设须要加入提示,能够这样:
  1. ip = n:option(Value,"ipaddr","IP地址","改动IP地址”)  
这个时候下方就会显示一句提示。改动IP地址。

当中的Value还有几种别的属性,比方Listvalue,下拉选择框,假如说我要选择netmask,给几个选项,下拉选择:

  1. mask = s:option(ListValue,"netmask",translate("子网掩码"))  
  2. mask.override_values = true  
  3. mask:value("255.255.255.0",translate("255.255.255.0"))  
  4. mask:value("xxx.xxx.xxx.x",translate("xxxxxx"))             
这个时候就会出现一个子网掩码的下拉框供选择。详细更复杂的功能能够參考官方文档

Value另一个属性就勾选框,Flag,用法类似,介绍一点最简单的使用 :

  1. encryption = s:option(Flag,"encryption",translate("............"))                                            
  2. encryption.default = encryption.enabled                                     
  3. encryption.enabled = "wpa-psk2"                                             
  4. encryption.disabled = "none"   
这个是选择加不加密的,一般这个时候我们选择以后要出现一个key的password框。这个时候就要用到depends()这个函数了,比方:
  1. key = s:option(Value,"key",translate("Password"))                                                            
  2. key:depends({encryption="wpa-psk2"})   
这里结合上面的勾选。假如勾选,就会出现一个password框,也能够和下拉框配合一起使用

最后通过改动帐号password来介绍几个參数 :

  1. username = s:option(Value,"username",".........")                                                             
  2. username.rmempty = false --不同意为空                                
  3.                                                                                                                 
  4. password = s:option(Value,"password",".........")                                                            
  5. password.password=true   --加密,也就是*号显示,往往后面会带一个button,能够即时显示密码                                         
  6. 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在非常多情况下不安常理出牌,还有待研究
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值