• 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在非常多情况下不安常理出牌,还有待研究
  • 相关阅读:
    学习Python必须要会的知识,在字符串、列表、元组三者之间相互转换的方法
    python字符串中strip() 函数和 split() 函数的详解
    学习Python必须要知道的4个内置函数
    腾讯轻云服务器,如何使用Windows2016、2019
    jenkins 配置git选分支拉取代码
    查看mysql二进制文件(binlog文件)【报错+解决办法】
    apollo源码部署
    Maven镜像仓库替换为阿里云镜像仓库
    gitlab 日志相关
    gitlab本地搭建后用户(默认)头像不显示问题
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7117775.html
Copyright © 2020-2023  润新知