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.