小米路由研究之中的一个加入菜单

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语言的处理,我这里也不是非常清楚,就没有多余去赘述。

posted @ 2017-04-13 21:50  mfmdaoyou  阅读(200)  评论(0编辑  收藏  举报