Luci 頁面編輯
Luci 的界面用戶目錄在/usr/lib/lua/luci,
luci 是 mvc 架構(gòu),
/usr/lib/lua/luci/下有三個(gè)目錄
model、view、controller,它們對應(yīng) M、V、C。
下面簡單介紹生成界面的方法。
其中 M 是已經(jīng)生成的 web 控件,
其實(shí)這里就是寫好的 lua 腳本,V 是給外部提供的一些 web 界面,C 控制其 V 和 M 的顯示方式,從上面的描述可以看出 C 部分是其入口的地方, 現(xiàn)在就進(jìn)入 controller 看看他的內(nèi)容, 其實(shí)它的入口地址在 controller的 admin 目錄下面,里面的各個(gè) lua 文件就是各個(gè)入口,比如 system.lua 就對應(yīng)的主界面的 system 欄下面,咱們現(xiàn)在希望在 system 欄中增加一個(gè)自定義的界面,
這里為了方面描述只顯示 helloworld。
每個(gè)功能界面的入口地址為對應(yīng)的 lua 文件中 entry 功能函數(shù),entry 功能函數(shù)的原型為
entry(path, target, title=nil, order=nil) 前面兩個(gè)參數(shù)是必須的,后面兩個(gè)是可選的。
Path 形如(admin,system,reboot),
entry 根據(jù)這些屬性創(chuàng)建節(jié)點(diǎn),比如上面內(nèi)容代表在 system 標(biāo)簽中的 reboot 頁面,target 是這里的重點(diǎn),它描述了當(dāng)用戶調(diào)用這個(gè)界面所執(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)
- 第一個(gè)參數(shù)代表一個(gè)節(jié)點(diǎn),
- 第二個(gè)參數(shù),調(diào)用 view/admin_system/helloworld.htm 文件,
- 第三個(gè)參數(shù)為顯示的名字,
- 第四個(gè)參數(shù)為顯示順序,這里在最后顯示,
其中 helloworld.htm 文件的內(nèi)容如下:
<%+header%>
<h1><%:Hello World%></h1>
<%+footer%>
執(zhí)行完之后可以看下界面的顯示,