openwrt - Agregar columna - Agregar página

1. Agregue una página de configuración en la columna original

1. Los archivos en /usr/lib/lua/luci/controller/admin son las columnas correspondientes a la página de la interfaz de usuario .

Si necesita agregarlo en esa columna, abra el archivo lua correspondiente

Por ejemplo, si quiero agregar una página en la columna del sistema, abro el archivo system.lua y agrego una línea de código

entry({"admin", "system", "test"}, cbi("admin_system/test"), _("Test"), 60)

Nota: 1. sistema significa en la columna del sistema, y ​​prueba es la página que se creará

        2. cbi("admin_system/test") es para poner el archivo de configuración aquí más tarde. De hecho, es para cambiar la prueba.

        3. 60 significa ordenar. Puedes ver que la siguiente cifra está en orden, de menor a mayor. Si quieres ponerlo en esa posición, escríbelo de acuerdo con los números antes y después

Tenga en cuenta que generalmente modifique los archivos en el controlador, luego reinícielo o elimine luci-indexcache luci-modulecache/luci-sessions/ en el directorio /tmp/

Guárdelo, reinicie la máquina y podrá ver que la página de prueba se ha agregado a la página de la interfaz de usuario

2. Cree un nuevo archivo de prueba en /etc/config

config test
        option name '123'
        option url '123.com'

3. Cree una nueva página test.lua en /usr/lib/lua/luci/model/cbi/admin_system.

Con respecto al contenido en test.lua, puede consultar Openwrt: CBI of LuCI (2)_Jags' Blog-CSDN Blog , puede reescribirlo según sus necesidades

local ipc = require "luci.ip"

m = Map("test", translate("Test1"))

s = m:section(TypedSection, "test", translate("Example Info"))
s.addremove = true
s.anonymous = true
s.template = "cbi/tblsection"

name = s:option(Value, "name", translate("Name"))
name.datatype = "string"
name.rmempty  = true

url = s:option(Value, "url", translate("Url"))
url.datatype = "hostname"
url.rmempty  = true

return m

 4. Actualizar, también sale la página de UI

2. Agregue una nueva columna y agregue una página de configuración en la nueva columna

De hecho, es similar a agregar páginas en la columna original. Veamos primero la imagen. Sabemos que cada columna corresponde a un archivo lua. Para agregar una página en la columna original, solo necesita encontrar el archivo correspondiente y agregar una declaración.

Luego agregue una columna, es decir, cree un nuevo archivo.

1. Cree un nuevo archivo busservice.lua en /usr/lib/lua/luci/model/cbi/

(es decir, agregar una nueva columna)

Edite el contenido en el archivo busservice.lua, puede consultar otros archivos, por ejemplo

module("luci.controller.admin.busservice", package.seeall)

function index()
        entry({"admin", "busservice"}, alias("admin", "busservice", "busservice"), _("Busservice"), 35).index = true
        entry({"admin", "busservice", "access_restrictions"}, cbi("admin_busservice/access_restrictions"), _("Access Restrictions"), 10)

        entry({"admin", "busservice", "urlfiltering"}, cbi("admin_busservice/urlfiltering"), _("Urlfiltering"), 20)

end

Aquí escribí dos páginas, access_restrictions y urlfiltering, puedes reescribirlas según tus necesidades.

La columna se creó recientemente, reinicie el tablero, actualice la página de la interfaz de usuario y podrá verla

2. Cree un nuevo archivo de configuración

Aquí escribí la página access_restrictions, de hecho, ya le puse la página urlfiltering, pero le cambié el nombre.

El archivo de configuración está en /etc/config/

vi /etc/config/access_restrictions
config access_restrictions
        option name '123'
        option ip '123.12.12.12'
        option protocol 'tcp'
        option starport '10'
        option endport '888'

La opción interior se puede reescribir según sus propias necesidades.

3. Cree una nueva página cbi y cree el directorio admin_busservice en /usr/lib/lua/luci/model/cbi/

(O cambie el nombre por el suyo propio, de acuerdo con su propio nombre de columna, consulte otros archivos)

mkdir admin_busservice
cd admin_busservice
进入admin_busservice文件(这个就相当于是栏目),新建页面文件(此栏目里面的页面)

vi access_restrictions.lua
m = Map("access_restrictions", translate("Access_Restrictions"))

s = m:section(TypedSection, "access_restrictions",translate("Example Info"))
s.addremove = true
s.anonymous = true
s.template = "cbi/tblsection"

name = s:option(Value, "name", translate("Name"))
name.datatype = "string"
name.rmempty  = true

ip = s:option(Value, "ip", translate("IP address"))
ip.datatype = "ipaddr"
ip.rmempty  = true

ipc.neighbors({ }, function(n)
        if n.mac and n.dest and not n.dest:is6linklocal() then
                ip:value(n.dest:string(), "%s (%s)" %{ n.dest:string(), n.mac })
        end
end)

-- 下拉框
p = s:option(ListValue, "protocol", translate("Protocol"))
p:value("tcp","TCP")
p:value("udp","UDP")
p:value("tcp+udp","TCP+UDP")

sp = s:option(Value, "starport", translate("Star port"))
sp.datatype = "and(min(1),max(65534))"
sp.rmempty  = true

ep = s:option(Value, "endport", translate("End port"))
ep.datatype = "and(min(1),max(65535))"
ep.rmempty  = true

return m

Guarde, actualice la página, el contenido ha salido.

 

Aquellos que quieran aprender CBI son el contenido en el archivo access_restrictions.lua, haga clic en el enlace a continuación. Creo que este no está mal.

Openwrt: CBI de LuCI (2) - Blog de Jags - Blog de CSDN

Ok, los pasos anteriores son los pasos para crear una nueva columna y página en openwrt. Si hay algo que no entiendes, solo ve a Baidu. Pregúntame. Tal vez mi conocimiento sea menor que el tuyo. También grabo mientras estudio. Si hay algún error en el texto, espero que Dios lo haya señalado.

Supongo que te gusta

Origin blog.csdn.net/m0_60027682/article/details/126876256
Recomendado
Clasificación