小米路由研究之一添加菜单

openWRT之小米路由lucicontroller

controller下有很多文件夹他们都独立的建立相应的树:

Webindex.htm   --注册了web树结点下的很多枝叶

Mobileindex    --注册了mbile下的一些结点

Dispatch:        ...

Api:            ...

Sevice:         ...

 

根据我们之前原生的openWRT下环境可以得知,如果我们想要要在web界面创建一个选项,我们需要做几个基本的步骤:

1、在controller下显示的web界面注册结点,以及注册结点时该处理方式

2、根据处理方式编写相应的文件

Atemplate方式在view下编写htm文件

Bcbi方式在model下编写相应的文件

Ccall方式调用controller下相应的函数(包括一些导入的库的函数)

    一般在我controller下写一个lua文件时,如果是call方式处理,调用的本文件中的

函数或者是调用导入库中的函数。

 

 

 

简单实战项目:在小米路由下添加一个菜单选项并做相应的处理

后端处理:注册结点

controllerweb下的index.lua文件中我们注册一个结点

    --added by heyg: test htm

entry({"web", "testhyg"}, template("web/heyg"), _(“testhyg"), 74)

 

前端处理:

view下编写heyg.htm文件,由于关于前端的一些jshtm语言不是很熟悉我这里直接将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>

....

 

 

保存完成之后,可以再小米菜单上显示自己的菜单了....之余菜单中的一些jshtml以及嵌入lua语言和c语言的处理,我这里也不是很清楚,就没有多余去赘述。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。