本帖最后由 代祥军 于 2015-3-25 11:16 编辑
1.开发环境构建 1.1同步代码 git branch 看到的事mater分支 但是我们不是master分支开发 git pull origin trunk:trunk 从git服务器同步trunk分支,并且在本地命名为trunk git branch可以看到如下结果 * master trunk 星号表示处于的分支. 切换到 trunk分支 git checkout trunk git branch查看所在分支 master * trunk 1.2ubuntu下编译luci 如果你的lua版本是5.2, 你可以下载lua源码直接编译源码可以将版本降低到5.1 - svn co http://svn.luci.subsignal.org/luci/branches/luci-0.11
- sudo apt-get install lua5.1
- sudo apt-get install liblua5.1-0-dev
- sudo apt-get install libssl-dev
- sudo apt-get install bridge-utils
- make runhttpd &
- 输入 :http://127.0.0.1:8080/luci
复制代码
2.进入applications
新建一个目录 luci-demo
然后新建目录和文件结构如下:
然后新建目录和文件结构如下: ├── luasrc │ ├── controller │ │ └── demo.lua │ └── model │ └── cbi │ └── demo.lua └── Makefile
2.1.vim Makefile 容如下:
- PO = XXX
- include ../../build/config.mk
- include ../../build/module.mk
复制代码其中 PO=XXX表示翻译模块。
2.2.controller目录中demo.lua内容-------------------------------------------------------------------------------------------------------------
- module("luci.controller.demo", package.seeall)
- function index()
- local page
- page = entry({"admin", "services", "demo"}, cbi("demo"), _("test demo"))
- page.dependent=true
- end
复制代码
---------------------------------------------------------------------------------------------------------------
demo 位于admin/services下,调用的cbi方法是demo,页面的名字是test_demo. [size=14.0000pt]3.进入modul/cbi目录编写控件
3.1 要到了map函数,必须在luci-demo下建立如下目录文件
mkidr -p root/etc/config/ 在此目录下建立vim demo配置文件。
然后在 demo.lua下写入下面内容
- m = Map("demo", translate("test demo"))
- return m
复制代码效果如下:
下面来创建一个 section
- m = Map("demo", translate("test demo"))
- s = m:section(TypedSection,"demo","Demo")
- s.anonymous = true --表示是否展示section的名字
- return m
复制代码效果:
在 section中创建两个tab
- m = Map("demo", translate("test demo"))
- s = m:section(TypedSection,"demo","Demo")
- s.anonymous = true --表示是否展示section的名字
- s:tab("general",translate("general Settings"))
- s:tab("template",translate("Edit Template"))
- return m
复制代码
效果如下: 今后多番查找,发现在配置文件中如果没有选项在这个 tab下显示,这个tab会被自动忽略。
所以修改配置文件 demo
- config demo 'demo'
- option name 'xwifi'
复制代码
在 general的tab下添加如下代码
- m = Map("demo", translate("test demo"))
- s = m:section(TypedSection,"demo","Demo")
- s.anonymous = true --表示是否展示section的名字
- s:tab("general",translate("general Settings"))
- s:tab("template",translate("Edit Template"))
- s:taboption("general",Value,"name",translate("Hostname")); --添加的代码
- return
复制代码查看效果:
QQ:574889524
|