OpenWrt的luci web管理器新增新選單

fulinux發表於2015-09-28

OpenWrt的luci web管理器新增新選單

本篇部落格主要描述luci新增選單的兩個例項,即CBI和View(Template):

  • 新增新元素到luci中去
  • 新增新的頂級選項卡標籤(主選單)
  • 新增cbi標籤的程式碼
  • 新增cbi配置檔案
  • 新增view標籤程式碼

關鍵字

  • luci
  • cbi
  • view
  • template
  • fulinux

新增新元素到luci中去

這裡將向大家展示如何在luci中新增新標籤的方法。
作為一個例項我將向大家展示luci新增新標籤的兩種方法:
CBI
2.View(template)

新增新的頂級選項卡標籤(主選單)

我們在瀏覽器位址列上通過輸入192.168.1.1(我的是192.168.170.1)地址即可訪問openwrt的web介面,主選單包括Status,System,Network和logout,如圖所示:
這裡寫圖片描述
這裡我們要加入一個新的主選單名為:”New Tab”

登入openwrt後在/usr/lib/lua/luci/controller/admin目錄下新增new_tab.lua檔案,檔案內容如下:

-- Copyright 2008 fulinux <fulinux@sina.com>
-- Licensed to the public under the Apache License 2.0.

module("luci.controller.admin.new_tab", package.seeall) --notice that new_tab is the name of the file new_tab.lua
function index()                                                                                                                    
        entry({"admin", "new_tab"}, firstchild(), "New tab", 30).dependent=false  --this adds the top level tab and defaults to the first sub-tab (tab_from_cbi), also it is set to position 30                                                  
        entry({"admin", "new_tab", "tab_from_cbi"}, cbi("admin_myapp/cbi_tab"), "CBI Tab", 1)  --this adds the first sub-tab that is located in /usr/lib/lua/luci/model/cbi/admin_myapp and the file is called cbi_tab.lua, also set to first position                                     
        entry({"admin", "new_tab", "tab_from_view"}, template("admin_myapp/view_tab"), "View Tab", 2)  --this adds the second sub-tab that is located in /usr/lib/lua/luci/view/admin_myapp and the file is called view_tab.htm, also set to the second position
end

新增cbi標籤的程式碼

按照上面new_tab.lua檔案中的程式碼,我們需要在/usr/lib/lua/luci/model/cbi/admin_myapp目錄下新建一個cbi_tab.lua檔案,包含如下程式碼:

-- Copyright 2008 fulinux <fulinux@sina.com>
-- Licensed to the public under the Apache License 2.0.
m = Map("cbi_file", translate("First Tab Form"), translate("Please fill out the form below")) -- cbi_file is the config file in /etc/config
d = m:section(TypedSection, "info", "Part A of the form")  -- info is the section called info in cbi_file
a = d:option(Value, "name", "Name"); a.optional=false; a.rmempty = false;  -- name is the option in the cbi_file
return m

新增cbi配置檔案

從上面的程式碼我們知道需要一個config檔案包含section和options,在這裡我們在/etc/confi目錄下新建一個cbi_file檔案,類似如下內容:

config 'info' 'A'
    option 'name' 'OpenWRT'

新增view標籤程式碼

最後我們在/usr/lib/lua/luci/view/admin_myapp目錄下新建view_tab.htm檔案,包含如下程式碼:

<%+header%>                                                                    
<h1><%:Hello World%></h1>                                                      
<%+footer%>

效果圖展示

CBI:
這裡寫圖片描述

VIEW:
這裡寫圖片描述

宣告

作者:fulinux
地址:點選fulinux部落格
版權:可以自由轉載

相關文章