找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 4789|回复: 10

Openwrt菜鸟开发日志(从建立一个界面开始)

[复制链接]
发表于 2017-7-13 16:31 | 显示全部楼层 |阅读模式
这个帖子主要是对自己的激励,也希望各位大神看到了多多指正。
新人朋友们可以一起学习拉!还是本科学生,之前说要玩一直没玩,暑假就把它再玩起来
比较喜欢DIY,所以一点一点的去了解,买了一本教材《智能路由器开发指南》还在学习之中
2017/6/29 重新拾回Openwrt 一下开始正确编辑教程,做相关记录,高效解决问题
Mission:
l  创建一个Luci界面
l  使用iptable对包进行截取
l  将两者结合
Mission 1
                                                                                                  ——创建一个Luci界面
Tools:
       WinSCP
Reference:
openwrtluci学习笔记
MVC框架 百度百科
Procedure
(1)   认识MVC框架:
MVCModelViewController
Controller实现ModelView的同步,一旦Model改变,View立即改变。
l  Model(模型):应用程序的核心(比如数据库记录列表);是应用程序中用于处理应用程序数据逻辑的部分。
l  View(视图):显示数据(数据库记录);应用程序中处理数据显示的部分,通常视图(View)是依据模型(Model)数据创建的。
l  Controller(控制器):处理输入(写入数据库记录);应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 模式同时提供了对 HTMLCSS JavaScript 的完全控制。
(2)   在/usr/lib/lua/luci/controller/admin目录下创建Sao.lua文件,
内容如下:
                     module("luci.controller.admin.Sao", package.seeall)
                     function index()
                                        entry({"admin","Sao"}, alias("admin", "Sao", "Sao"),_("inner-Sao"), 30).index = true
                                        entry({"admin","Sao", "Sao"}, cbi("admin_Sao/Sao"),_("BoardType"), 1)
                                        entry({"admin","Sao", "control"}, cbi("admin_Sao/control"),_("Control"), 2)
                    end
       说明:
       1) lua单行注释使用“--”,类似于C语言的“//”,多行注释时,“--[[”类似C语言中的“/*”,“]]--”类似C语言中的“*/”。
        2) 1行定义了模块的入口。即“/usr/lib/lua/luci/controller/admin”所示的目录下建立一个Sao.lua文件。如果程序比较多,可能分为好几个模块,那么可以在controller下再建立一个子目录,比如controller/Saosix/,那么就可以写成“luci.controller.Saosix.Sao”
        3)
从第3行到10行即是function index函数,该函数定义了inner-Sao下各个选项卡。
        function
内:
l  entry表示添加一个新的模块入口,entry的定义如下,其中后两项都是可以为空:
entry(path, target, title=nil, order=nil)
“path”是访问的路径,路径是按字符串数组给定的,比如路径按如下方式写:
“{"admin", "Sao", "control"}”
那么就可以在浏览器里访问“http://192.168.1.1/cgi-bin/luci/admin/Sao/control”来访问这个脚本。
       其中的“admin”表示为管理员添加脚本,“Sao”即为一级菜单名,“control”为     菜单项名。系统会自动在对应的菜单中生成菜单项。
       比如想在“System”菜单下创建一个菜单项,那么一级菜单名可以写为       “system”。
换句话说,在Path中,顺序为用户项、一级菜单,二级菜单,。。。但是到后面具体为哪一级的菜单名称,它现实的title,是在_(“string”)国际化中定义的。
l  “target”为调用目标,调用目标分为三种,分别是:
       等同于别的链接(alias)执行指定方法(Action)、访问指定页面(Views)、调用CBI Module。
n  第零种Alias并不确定属不属于调用,它直接把这个entry指向别的entry,上级菜单到下级菜单需要用到这个。
n  第一种可以直接调用指定的函数,比如点击菜单项就直接重启路由器等等,比如写为“call("function_name")”,然后在该lua文件下编写名为function_name的函数就可以调用了。
n  第二种可以访问指定的页面,比如写为“template("myapp/mymodule")”就可以调用/usr/lib/lua/luci/view/myapp/mymodule.htm文件了。
n  第三种主要应用在配置界面,比如写为“cbi("myapp/mymodule")”就可以调用/usr/lib/lu  a/luci/model/cbi/myapp/mymodule.lua文件了。
title和order是针对管理员菜单的,其中的title即是显示在网页上的内容。这里我们创建“/usr/lib/lua/luci/controller/Sao.lua”文件,定义我们的入口为“Sao”。
l  从上面的程序可以看出,在“inner-Sao”选项卡下共有两个分选项,名称分别为“BoardType”和“Control”。根据cbi指示的目录,在                                                                           /usr/lib/lua/luci/model/cbi/admin_Sao”
目录下有Sao.lua和control.lua两个文件,两个界面类似,我们选取"Control"界面讲述。


点评

想学习OpenWrt开发,但是摸不着门道?自学没毅力?怕太难学不会?快关注<跟着佐大学OpenWrt开发入门培训班>保证你能学有所成,报名地址:http://forgotfun.org/2018/04/openwrt-training-2018.html  发表于 2019-1-9 02:05
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-7-13 16:44 | 显示全部楼层
写在自己博客里,版面会好看点~~

点评

好的好的,我也是这么想的 找了半天没找到删帖的  详情 回复 发表于 2017-7-14 16:31
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-7-13 17:08 | 显示全部楼层
在我眼里,能搞开发的就是高手了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-7-13 18:13 | 显示全部楼层
在我眼里看得懂代码的都算高手了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-7-13 18:41 来自手机 | 显示全部楼层
我是来支持的加油啊
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-7-13 23:18 | 显示全部楼层
謝謝發佈這麼好的學習教程,期待更新!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2017-7-14 16:31 | 显示全部楼层
juyyao 发表于 2017-7-13 16:44
写在自己博客里,版面会好看点~~

好的好的,我也是这么想的 找了半天没找到删帖的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-7-14 16:50 | 显示全部楼层
我是来支持的加油啊
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2017-7-24 16:16 | 显示全部楼层

http://blog.sina.com.cn/shaoniancool
后续的发在这里了。还在慢慢学习,希望大家多指点批评
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-3-29 17:37

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表