Luci 頁面編輯
Luci 的界面用戶目錄在/usr/lib/lua/luci身辨,
luci 是 mvc 架構(gòu)屁魏,
/usr/lib/lua/luci/下有三個目錄
model鸥拧、view绢彤、controller梯啤,它們對應(yīng) M谴垫、V章母、C。
下面簡單介紹生成界面的方法翩剪。
其中 M 是已經(jīng)生成的 web 控件乳怎,
其實這里就是寫好的 lua 腳本,V 是給外部提供的一些 web 界面前弯,C 控制其 V 和 M 的顯示方式蚪缀,從上面的描述可以看出 C 部分是其入口的地方秫逝, 現(xiàn)在就進(jìn)入 controller 看看他的內(nèi)容, 其實它的入口地址在 controller的 admin 目錄下面,里面的各個 lua 文件就是各個入口芜辕,比如 system.lua 就對應(yīng)的主界面的 system 欄下面豪直,咱們現(xiàn)在希望在 system 欄中增加一個自定義的界面,
這里為了方面描述只顯示 helloworld刷后。
每個功能界面的入口地址為對應(yīng)的 lua 文件中 entry 功能函數(shù),entry 功能函數(shù)的原型為
entry(path, target, title=nil, order=nil)
前面兩個參數(shù)是必須的渊抄,后面兩個是可選的尝胆。
Path 形如(admin,system护桦,reboot)含衔,
entry 根據(jù)這些屬性創(chuàng)建節(jié)點,比如上面內(nèi)容代表在 system 標(biāo)簽中的 reboot 頁面二庵,target 是這里的重點贪染,它描述了當(dāng)用戶調(diào)用這個界面所執(zhí)行的行為。
這里主要由三種行為眨猎,call抑进、template、cbi睡陪,
其中 call 為調(diào)用文件中的功能函數(shù)寺渗,
template 為調(diào)用 view 中的 html 界面,
cbi 為調(diào)用 mode 中的 lua 文件兰迫。
Title 是在頁面中顯示的內(nèi)容信殊,
order 是顯示的順序,順序越小顯示內(nèi)容越靠前汁果。
下面在 system.lua 中增加一條
entry({"admin", "system", "helloworld"}, template("admin_system/helloworld"), _("helloworld "), 99)
- 第一個參數(shù)代表一個節(jié)點涡拘,
- 第二個參數(shù),調(diào)用 view/admin_system/helloworld.htm 文件据德,
- 第三個參數(shù)為顯示的名字鳄乏,
- 第四個參數(shù)為顯示順序,這里在最后顯示棘利,
其中 helloworld.htm 文件的內(nèi)容如下:
<%+header%>
<h1><%:Hello World%></h1>
<%+footer%>
執(zhí)行完之后可以看下界面的顯示,