OpenWrt的luci web管理器新增新選單(三)

fulinux發表於2015-10-09

繼前面兩篇:OpenWrt的luci web管理器新增新選單 和 OpenWrt的luci web管理器新增新選單(二)


此次的擴充套件內容是實現一個登入介面,並且將登入介面中輸入的內容解析到一個配置檔案中


步驟一:

修改/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("login", translate("Login client"), translate("Please fill out the form below"))


s = m:section(TypedSection, "login", "Part login of the form")


s.addremove = false


s.anonymous = true


enable = s:option(Flag, "enable", translate("Enable"))


name = s:option(Value, "username", translate("Username"))


pass = s:option(Value, "password", translate("Password"))
pass.password = true


domain = s:option(Value, "domain", "Interfaces"); 


ifname = s:option(ListValue, "ifname", translate("Domain"))


for k, v in ipairs(luci.sys.net.devices()) do
        if v ~= "lo" then
                ifname:value(v)
        end
end


s.optional=false;
s.rmempty = false;


local apply = luci.http.formvalue("cbi.apply")
if apply then
        luci.sys.exec("/etc/init.d/login start")
end


return m

步驟二:

修改/etc/config/login配置檔案(檔案原名是cbi_file),內容如下:
config login
        option username 'fulinux'
        option enable ''
        option domain ''
        option ifname ''
        option password ''

步驟三:

新增/etc/init.d/login指令碼檔案,內容如下:
#!/bin/sh /etc/rc.common

START=14

run_copyconfig() {
        local enable
        config_get_bool enable $1 enable

        if [ $enable ]; then
                local username
                local password
                local domain
                local ifname

                config_get username $1 username
                config_get password $1 password
                config_get domain $1 domain
                config_get ifname $1 ifname

                echo $username > /var/run/testfile.conf
                echo $password >> /var/run/testfile.conf
                echo $domain >> /var/run/testfile.conf
                echo $ifname >> /var/run/testfile.conf

                echo "testfile has started."
        fi
}

start() {
        config_load login
        config_foreach run_copyconfig login
}

作品展示:

1、Web介面:



2、配置檔案:



3、生成的配置檔案:



相關文章