openwrt web管理luci界面修改

openwrt web管理luci界面修改

添加isolate和maxassoc後的效果

以前都沒聽過openwrt和luci,只接觸過簡單的php語言。由於工作原因,要修改下luci的界面,竟然用了我2天的時間才簡單的瞭解了luci的用法。這裏簡單的和大家分享下。(就接觸2天,本人又是菜鳥級別,高手直接略過吧)大家發現有什麼錯誤就和我說下大家共同學習。我主要是想修改下open後臺界面網頁的內容。

具體怎麼安裝已經有人介紹過來了,我就不詳細說了。下面說配置好之後,修改UI的做法

在瀏覽器中輸入:http://192.168.1.1/   會自動跳到http://192.168.1.1/cgi-bin/luci   登陸默認root 密碼是空

默認的幾個一級菜單都是在modules\admin-full\luasrc\controller\admin\ 這個目錄下

這個就類似於php的根目錄了。/etc/config/這個目錄下面的文件,個人觀點是可以把它當做是php中的數據庫連看待,這樣反而更方便理解。

實際上luci界面提供的已經很全了,我們並沒有多少必要要新建立頁面,我們大多就是在已有的界面上添加一些內容。比如我們公司現在需要添加wifi的isolate和maxassoc這兩項屬性。就讓我找了半天才找到

首先要找到network-wifi對應的文件,

在找點擊edit後頁面對應的文件。

openwrt luci wifi edit

network.lua這個文件裏面就定義了network下面有哪些二級目錄。

比如我要改wifi,我就看到有

if has_wifi and has_wifi.size > 0 then page = entry({“admin”, “network”, “wireless”}, arcombine(template(“admin_network/wifi_overview”), cbi(“admin_network/wifi”)), _(“Wifi”), 15) page.leaf = true page.subindex = true

這裏面有cbi(“admin_network/wifi”)這條語句。知道的人就知道,不知道也沒關係,想知道可以自己查下。

這時我們到目錄\modules\admin-full\luasrc\model\cbi\admin_network\下面可以發現一個wifi.lua的文件,cbi的語句就是指向的這個文件。我們打開wifi.lua後,在———————- Interface ———————–這個下面地方添加

isolate = s:taboption(“advanced”, Flag, “isolate”, translate(“Separate Clients”),translate(“Prevents client-to-client communication”))

maxassoc = s:taboption(“advanced”, Value, “maxassoc”, translate(“Connection Limi”),translate(“Specifies the maximum number of clients to connect.”))

 

這樣兩條語句就可以了。進入network-wifi   edit看下我們修改的效果

我們進入network-wifi之後選擇一個無線網絡點擊edit後進入頁面

添加isolate和maxassoc後的效果

在Interface Configuration下面的Advanced Settings下面可以進行修改之後點擊Save & Apply

修改這兩項是保存在什麼地方呢?剛剛我說了,/etc/config/目錄下相當於數據庫的功能。

這時我們vi /etc/config/wireless可以查看到我們剛剛修改內容。

可以看到已經修改爲我們剛剛調整的77了。

有的人想要添加新的頁面和功能,可以看下下面的內容。

下面內容來源於chaochaoblog

要完成一個新模塊並用到裏面需要兩個東西,

第一個我們先找到usr/lib/lua/LuCI/controller在裏面建立一個文件夾,也就是我們的模塊名稱,就叫smustar吧

在smustar下面再寫我們模塊的主文件就叫smumodule.lua吧

參考官網,我們的模塊寫法應該是這樣子的

module(“LuCI.controller.smustar.smumodule”, package.seeall)

function index()
entry({“admin”, “network”, “802.1x“}, cbi(“smustar-smumodule/netifaces”), “Network interfaces”, 30).dependent=false
end

第一句話是聲明一下這個模塊了,沒什麼可說的。

第二句話就是我們模塊的主函數,其中呢要告訴它我們的入口,與其說入口,不如說就是告訴它是要admin登錄才能用的,是在network這個菜單下,名字呢,叫做802.1x。模塊執行的程序呢在smustar-smumodule/netifaces這裏。

好了各位又鬱悶了smustar-smumodule/netifaces是什麼東西,這是我們要建立的另外一個文件,上面不是說要兩個麼

我們找到路徑/usr/lib/lua/LuCI/module

在下面建立文件夾smustar-smmodule建立文件netfaces.lua

好了接下來就是要在netfaces.lua寫我們的程序了,參考官網所說的這個什麼LuCI最酷的地方,也就是修改config文件

不要說你不懂什麼是config文件了,最簡單的比如network。

我們在/etc/config下面建立一個配置文件叫smuset吧

那這就是一個config文件的寫法

config  ‘interface’  ‘smustar’

option ‘user’ ‘youruser’
option ‘pass’ ‘yourpass’

ok這個config文件就是這樣子了接下來寫netfaces.lua

m = Map(“smuset”, “smustar”) — We want to edit the uci config file /etc/config/smustar 這裏是我們要配置的文件了,默認的路徑它已經能夠區別的,不用管了
s = m:section(TypedSection, “interface”, “smustar”) — Especially the “interface”-sections讀出裏面的interface區域來
s.addremove = true — Allow the user to create and remove the interfaces

s:option(Value, “user”, “youruser”)這個能就是一個input即一個輸入框了讀取的是smuset中的user項。youruser是提示語羅

key=s:option(Value, “pass”, “your password”)

key.password=true; 設置爲星號的密碼輸入框

return m — Returns the map
好了文件就完成了,之後我們進入LuCI配置界面

在network下可以看到了802.1x選項

進入後有賬號和密碼輸入框 改一下之後

save&apply一下,發現密碼被修改了。我們的802.1x配置界面就做好了!

歡迎大家留言指教


From: http://www.nrud.com/software-technology/modified-openwrt-web-management-luci-interface.html



發佈了38 篇原創文章 · 獲贊 13 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章