先看看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. config interface 'lan'
  7. option ifname 'eth0 eth1'
  8. option type 'bridge'
  9. option proto 'static'
  10. option ipaddr '192.168.1.10'
  11. option netmask '255.255.255.0'
  12. config switch
  13. option name 'eth0'
  14. option reset '1'
  15. option enable_vlan '1'
  16. config switch_vlan
  17. option device 'eth0'
  18. option vlan '1'
  19. 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. password = s:option(Value,"password",".........")
  4. password.password=true   --加密,也就是*号显示,往往后面会带一个button,能够即时显示密码
  5. 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在非常多情况下不安常理出牌,还有待研究

Openwrt中luci配置页面cbi小记的更多相关文章

  1. 转:openwrt中luci学习笔记

    原文地址:openwrt中luci学习笔记 最近在学习OpenWrt,需要在OpenWrt的WEB界面增加内容,本文将讲述修改OpenWrt的过程和其中遇到的问题. 一.WEB界面开发         ...

  2. openwrt 中route配置

    route配置项默认保存在文件 /etc/config/network 中. 配置route的接口“interface” 使用的协议需要为dhcp才可. config interface 'wan' ...

  3. OpenWrt 中安装配置Transmission

    参考文章https://wiki.openwrt.org/doc/uci/transmission 1. 安装包 必装的 transmission-daemon-openssl (后台服务)选装的 t ...

  4. NodeMCU之旅(四):实现Web配置页面

    引言 利用Web页面做配置可以轻松适应用户的多种设备,如Android, IOS等.本文将介绍如何在NodeMCU中实现配置页面. 接线图请参考NodeMCU之旅(三):响应配置按钮. 配置页面后端 ...

  5. openwrt开源系统LUCI配置界面

    转自:http://www.right.com.cn/forum/thread-131035-1-1.html 本人菜鸟,最近在学习这方面的知识,在参考资料的基础上总结如下内容.这篇文章针对如何对op ...

  6. 路由器开源系统openwrt配置页面定制

    1. 新建虚拟机,百度文库有一篇<使用VMware安装OpenWrt>,地址:http://wenku.baidu.com/link?url=NkvaQpTf2dR8FpYn7JD9A7- ...

  7. [转载]ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置

    ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置 最近在写一个CMS的内容管理系统,需要用到一个伪静态方面的方法,在网上找了一下这方面的资料,现将这方面的资源记录一下. 本机环境: ...

  8. 配置树莓派3的openwrt中的网络

    在上一篇中讲到openwrt的编译安装: http://www.cnblogs.com/yeqluofwupheng/p/7296218.html 但是烧写进去,启动系统后发现它的默认配置是路由器,所 ...

  9. 企业级监控软件Zabbix搭建部署之zabbix在WEB页面中的配置

    企业级监控软件zabbix搭建部署之zabbix在WEB页面中的配置 企业级监控软件zabbix搭建部署之zabbix在WEB页面中的配置 关于安装请看 http://www.linuxidc.com ...

随机推荐

  1. DataFrame编程模型初谈与Spark SQL

    Spark SQL在Spark内核基础上提供了对结构化数据的处理,在Spark1.3版本中,Spark SQL不仅可以作为分布式的SQL查询引擎,还引入了新的DataFrame编程模型. 在Spark ...

  2. Unity学习-元素类型(三)

    在看下面操作时,先记住三句话 1.游戏对象 是由 组件 组成的:衣服 2.材质(Material):就是衣服的设计方案 3.纹理(Texture):做衣服的布料 从GameObject到Cube 第一 ...

  3. wordpress 你所不知道的固定链接设置方法,设置适合自己的个性固定链接,适合SEO

    %year% 年份,四位数字,例如2004年  %monthnum% 一年的月份,例如05  %day% 一个月的日子,例如28  %hour% 一天中的小时,例如15  %minute% 小时,例如 ...

  4. 把多种验证规则用到一个model上

    基于标记特性的Model验证,真的太棒了,与jquery validate结合后激情四射,有木有,一句话完成前后端验证.简直让人秒爱... 但是爱是爱了,生活中总会有些小摩擦,这不问题来了:看图中那个 ...

  5. Moto P30(XT1943-1) 免解锁BL 免rec 保留数据 Magisk Xposed ROOT 救砖 ZUI 4.0.374

    >>>重点介绍<<< 第一:本刷机包可卡刷可线刷,刷机包比较大的原因是采用同时兼容卡刷和线刷的格式,所以比较大第二:[卡刷方法]卡刷不要解压刷机包,直接传入手机后用 ...

  6. win32窗口映射(部分)

    先理解一下“窗口”与“视区”的概念.“窗口”是逻辑坐标下的矩形区域,“视区”是设备坐标系下的区域.根据“窗口”和“视区”的大小可以确定x方向和y方向的比例因子. 例子如下: VOID OnPaint( ...

  7. 【译】x86程序员手册04 - 2.2数据类型

    2.2 Data Types 数据类型 Bytes, words, and doublewords are the fundamental data types (refer to Figure 2- ...

  8. 【技术累积】【点】【java】【21】序列化二三事

    基础概念 把对象等转为二进制进行传输的是序列化,反之为反序列化: 应用场景一般为读写文件,传输数据/接口调用: Externalizable和Serializable java的序列化方式有两种: S ...

  9. Ubuntu无线转有线教程

    本来想测试一下有线转无线的,奈何网卡不支持,所以就测试了一回无线转有线的测试!(真无聊,不过也算学习一下linux网桥的知识) ca0gu0@ub:~$ sudo brctl addbr br0 #添 ...

  10. drf07 过滤 排序 分页 异常处理 自动生成接口文档

    4. 过滤Filtering 对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持. pip install django-filter 在配置文件sett ...