Model : OpenWrt의 모든 configuration을 저장하는 UCI모델을 사용
View : HTML page을 생성하는데 사용
Controller : 사용자로부터 요청된 URL을 가져와서 동적으로 페이지를 생성하는 LuCI 코드의 매핑 세트
Luci는 dispatching tree를 사용하는데 이는 controller의 index() 함수에 의해 실행된다.
(dispatching tree 관련 함수는 dispatcher.lua 에 정의되어 있음)
dispatching tree에 함수를 등록하기 위해서 entry() 함수를 사용하며, entry() 함수는 4개의 argument를 갖는다.
entry(path, target, title=nil, order=nil)
path : 트리의 위치를 설명한다.
ex) entry({"admin", "system", "reboot"}, call("action_reboot"), _("Reboot"), 90)
위 예제의 경우 admin.system.reboot에 노드를 삽입한다는 의미
target : 사용자가 모든 노드를 요청할 때 취할 action을 설명한다.
allias, template, post, call, cbi 등이 있다.
title : 메뉴에서 사용자가 보게되는 제목을 정의한다.
order : 메뉴에서 같은 레벨의 노드가 정렬되는 수
cbi 모델은 UCI config 구조와 HTML 양식을 설명하는 Lua 파일이다. 모든 cbi 모델 파일은 Map 유형의 객체를 반환해야한다.
Map(config, title, description)
config : 매핑될 config 파일 이름, /etc/config 하위 폴더에서 확인 가능하다.
title : LuCI 웹에 보여지는 제목
description : LuCI 웹에 보여지는 설명