小米路由研究之一添加菜单
openWRT之小米路由luci之controller
在controller下有很多文件夹他们都独立的建立相应的树:
Web:index.htm --注册了web树结点下的很多枝叶
Mobile:index --注册了mbile下的一些结点
Dispatch: ...
Api: ...
Sevice: ...
根据我们之前原生的openWRT下环境可以得知,如果我们想要要在web界面创建一个选项,我们需要做几个基本的步骤:
1、在controller下显示的web界面注册结点,以及注册结点时该处理方式
2、根据处理方式编写相应的文件
A、template方式在view下编写htm文件
B、cbi方式在model下编写相应的文件
C、call方式调用controller下相应的函数(包括一些导入的库的函数)
一般在我controller下写一个lua文件时,如果是call方式处理,调用的本文件中的
函数或者是调用导入库中的函数。
简单实战项目:在小米路由下添加一个菜单选项并做相应的处理
后端处理:注册结点
在controller下web下的index.lua文件中我们注册一个结点
--added by heyg: test htm
entry({"web", "testhyg"}, template("web/heyg"), _(“testhyg"), 74)
前端处理:
在view下编写heyg.htm文件,由于关于前端的一些js和htm语言不是很熟悉我这里直接将manager.htm文件内容拷贝到heyg.htm文件中
需要注意以下关于htm文件地方:
....
<div id="nav">
<script>
var navCurrent = ‘.manager‘;
</script>
<%include ("web/inc/nav")%>
</div>
....
上面的.manager很重要,在小米路由界面上,在后端注册结点之外,在前端:布局、布局中块id关联等等,都做了很多处理,目前我也没有具体去了解小米前端的编码东西。
如:<%include ("web/inc/nav")%>观察,我们还需要在web/inc/nav.htm中添加一个<li>...</li>以在菜单上显示,添加内容如下:
<li class="testhyg">
<a href="<%=luci.dispatcher.build_url("web", "testhyg")%>"><i class="ico ico-nav-4"></i><span>testhyg</span></a>
</li>
对应的要将heyg.htm相应的位置改为下面:
....
<div id="nav">
<script>
var navCurrent = ‘.testhyg‘;
</script>
<%include ("web/inc/nav")%>
</div>
....
保存完成之后,可以再小米菜单上显示自己的菜单了....之余菜单中的一些js和html以及嵌入lua语言和c语言的处理,我这里也不是很清楚,就没有多余去赘述。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。