先看看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. Kafka的3节点集群详细启动步骤(Zookeeper是外装)

    首先,声明,kafka集群是搭建在hadoop1.hadoop2和hadoop3机器上. kafka_2.10-0.8.1.1.tgz的1或3节点集群的下载.安装和配置(图文详细教程)绝对干货 如下分 ...

  2. Java编程思想读书笔记_第二章

    java对于将一个较大作用域的变量“隐藏”的场景会有保护:编译告警.比如: int x = 5; { int x = 6; } 但是对于类中方法的局部变量和类成员变量确是可以重名的,比如 class ...

  3. 查看Windows XP是否已激活的方法

    打开开始→运行, 在输入:oobe/msoobe /a,回车后系统会弹出窗口告诉你系统是否已经激活

  4. 【HTTP/S】透明代理、匿名代理、混淆代理、高匿代理有什么区别?

    这4种代理,主要是在代理服务器端的配置不同,导致其向目标地址发送请求时,REMOTE_ADDR, HTTP_VIA,HTTP_X_FORWARDED_FOR三个变量不同. 1.透明代理(Transpa ...

  5. 在oninitdialog后添加初始化变量

    需要 UpdateData(FALSE); 刷新界面 不然有时会不显示.

  6. How To: Multipath Linux x86-64 Release 6.4

    [root@node01 ~]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0 ...

  7. solaris roles cannot login directly

    oracle@solaris:~$ su - root Password: Oracle Corporation SunOS root@solaris:~# cat /etc/user_attr # ...

  8. HUD 1426 Sudoku Killer (DFS)

    链接 : Here! 思路 : 记录下所有 "?" , 出现的位置, 然后 $DFS$ 一下, 对于每个位置来说都可以填充 $9$ 种数值, 然后对于判断填充是否合法需要三个标记数 ...

  9. cogs——66. [HAOI2004模拟] 数列问题

    66. [HAOI2004模拟] 数列问题 本以为会TLE,可... dfs水题(很基础) #include<bits/stdc++.h> using namespace std; ],a ...

  10. JS练习:表格全选与全不选

    代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title ...