OpenWrt Web介面修改及功能實現例項說明

2021-06-23 04:29:44 字數 3050 閱讀 2107

通過上篇文章的介紹,我們應該了解了lua語言在openwrt web配置頁面的基本對應功能設計方法。本文將以乙個頁面為例,來說明lua語言如何實現頁面控制項以及怎麼使輸入或操作的選項在系統中生效。

頁面如圖所示:

首先,我們要在system欄下建立分頁"test by wayne",使用cbi模組實現,修改目錄lua\luci\controller\admin下的system.lua檔案。

在function index()中新增語句:

entry(, cbi(

"admin_system/test

"), 

"test by wayne

",  30).dependent=

false

接下來就需要在lua\luci\model\cbi\admin_system中建立test.lua檔案並完成控制項元素編輯。

m = map(

"network

", translate(

"test page by wayne (~_~)

"), translate(

"on this page we can learn how the .lua works.

"))

然後需要建立分塊」network configuration」。建立section之前,需要在etc/config目錄下的network檔案中新增乙個配置,就取名叫netset吧,network檔案如下:

config 

'inte***ce''

loopback

'option 

'ifname''

lo'option 

'proto''

static'……

config 

'inte***ce''

lan'

option 

'ifname''

eth0

'option 

'type''

bridge

'option 

'proto''

static'……

config 

'netset'

修改好配置檔案後,使用如下語句建立section:

s = m:section(typedsection, 

"netset

", translate(

"network configuration

"))

第乙個控制項」address」屬於cbi型別的value型別,並且定義輸入型別為ip4addr,實現如下:

ipaddr1 = s:taboption(

"wan1

", value, 

"ipaddr1

", translate(

"address

"))

ipaddr1.datatype = 

"ip4addr"

控制項」netmask」在這裡其實是listvalue的效果,但是此處為了擁有custom自定義的選項,設定的型別為value,實現如下:

到這裡,控制項都已經可以新增並顯示了,剩下的工作就是輸入的值如ip位址和閘道器資訊怎麼獲取生效了。

config 

'inte***ce''

loopback

'option 

'ifname''

lo'option 

'proto''

static'……

config 

'inte***ce''

lan'

option 

'ifname''

eth0

'option 

'type''

bridge

'option 

'proto''

static'……

config 

'netset

'option 

'ipaddr1''

192.168.1.30

'option 

'netmask1''

255.255.255.0

'option 

'gateway1''

192.168.1.5'

即所操作的內容都在配置檔案中自動儲存,而配置檔案中的值獲取方式就很多了,我們可以使用uci命令得到。

usage: uci  <

command> 

commands:

batch

export     

import     

changes    

commit     

add        type>

add_list   ..=

show       [[.[.]]]

get        .[.]

set.[.]=

delete     [.]]

rename

.[.]=

revert     [.[.]]

reorder    .=

這樣,乙個頁面的定製和功能的實現過程就完成了。

出處:

OpenWrt Web介面修改及功能實現例項說明

通過上篇文章的介紹,我們應該了解了lua語言在openwrt web配置頁面的基本對應功能設計方法。本文將以乙個頁面為例,來說明lua語言如何實現頁面控制項以及怎麼使輸入或操作的選項在系統中生效。頁面如圖所示 首先,我們要在system欄下建立分頁 test by wayne 使用cbi模組實現,修...

修改arm linux啟動介面

最近要改一下啟動介面,友善之臂提供的那個logomaker在我的debian下不能用,上網找了一下原因,原來是呼叫netpbm的 so 修改啟動介面的原理就是替換掉核心原始碼中的 drivers video logo linux logo clut224.ppm檔案 apt get install ...

修改blog介面提要

1 設定 天氣預報 欄目時 引數 city 後面為預設的城市名稱,直接寫 武漢 時,整個框架不會顯示出來,只有把 武漢 改寫成對應的字串 ce e4 ba ba 才顯示正常,此字串可以通過在baidu中搜尋 武漢 然後在瀏覽器位址列得到 好辦法,寢室乙個哥們的妙招 2 顯示郵件位址的圖示的實際大小是...