openwrt - Ajouter une colonne - Ajouter une page

1. Ajouter une page de configuration dans la colonne d'origine

1. Les fichiers dans /usr/lib/lua/luci/controller/admin sont les colonnes correspondant à la page UI .

Si vous devez l'ajouter dans cette colonne, ouvrez le fichier lua correspondant

Par exemple, si je veux ajouter une page dans la colonne système, j'ouvre le fichier system.lua et j'ajoute une ligne de code

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

Remarque : 1. système signifie dans la colonne système, et test est la page à créer

        2. cbi("admin_system/test") c'est mettre le fichier de configuration ici plus tard, c'est en fait changer le test.

        3. 60 signifie tri. Vous pouvez voir que le chiffre suivant est dans l'ordre, du plus petit au plus grand. Si vous voulez le mettre dans cette position, écrivez-le en fonction des nombres avant et après

Attention, modifiez généralement les fichiers dans le contrôleur, puis redémarrez-le, ou supprimez luci-indexcache luci-modulecache/luci-sessions/ dans le répertoire /tmp/

Enregistrez-le, redémarrez la machine et vous pouvez voir que la page de test a été ajoutée à la page de l'interface utilisateur

2. Créez un nouveau fichier de test dans /etc/config

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

3. Créez une nouvelle page test.lua sous /usr/lib/lua/luci/model/cbi/admin_system.

Concernant le contenu dans test.lua, vous pouvez vous référer à Openwrt: CBI of LuCI (2)_Jags' Blog-CSDN Blog , vous pouvez le réécrire selon vos besoins

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. Actualisez, la page de l'interface utilisateur apparaît également

2. Ajouter une nouvelle colonne et ajouter une page de configuration dans la nouvelle colonne

En fait, cela revient à ajouter des pages dans la colonne d'origine. Regardons d'abord l'image. Nous savons que chaque colonne correspond à un fichier lua. Pour ajouter une page dans la colonne d'origine, il vous suffit de trouver le fichier correspondant et ajouter une déclaration.

Ajoutez ensuite une colonne, c'est-à-dire créez un nouveau fichier.

1. Créez un nouveau fichier busservice.lua sous /usr/lib/lua/luci/model/cbi/

(c'est-à-dire ajouter une nouvelle colonne)

Modifiez le contenu du fichier busservice.lua, vous pouvez vous référer à d'autres fichiers, par exemple

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

Ici j'ai écrit deux pages, access_restrictions et urlfiltering, que vous pouvez réécrire selon vos besoins.

La colonne est nouvellement créée, redémarrez le tableau, actualisez la page de l'interface utilisateur et vous pouvez la voir

2. Créez un nouveau fichier de configuration

Ici j'ai écrit la page access_restrictions.En fait, j'ai déjà mis la page urlfiltering dessus, mais j'ai changé le nom.

Le fichier de configuration est sous /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'

L'option à l'intérieur peut être réécrite selon vos propres besoins

3. Créez une nouvelle page cbi et créez le répertoire admin_busservice sous /usr/lib/lua/luci/model/cbi/

(Ou changez le nom par le vôtre, en fonction de votre propre nom de colonne, reportez-vous à d'autres fichiers)

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

Enregistrez, actualisez la page, le contenu est sorti.

 

Ceux qui veulent apprendre CBI sont le contenu du fichier access_restrictions.lua, cliquez sur le lien ci-dessous. Je pense que celui-ci est pas mal.

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

Ok, ce qui précède sont les étapes pour créer une nouvelle colonne et une nouvelle page sur openwrt. S'il y a quelque chose que vous ne comprenez pas, allez simplement sur Baidu. Demandez-moi. Peut-être que mes connaissances sont inférieures aux vôtres. J'enregistre aussi pendant mes études. Si il y a des erreurs dans le texte, j'espère que Dieu l'a souligné.

Je suppose que tu aimes

Origine blog.csdn.net/m0_60027682/article/details/126876256
conseillé
Classement