luci接口说明

luci.dispatcher

entry (path, target, title, order)

Create a new dispatching node and define common parameters.

Parameters

  • path: Virtual path
  • target: Target function to call when dispatched.
  • title: Destination node title
  • order: Destination node order value (optional)

Return value:

Dispatching tree node


接口说明:创建一个新的分发节点,并定义相关的参数

参数说明:

path:访问的路径,不过路径是按字符串数组给定的,比如路径按如下方式写“{"sixing", “advanced", "ddns"}”,那么就可以在浏览器里访问“http://192.168.1.1/cgi-bin/luci/sixing/advanced/ddns”来访问这个脚本。而通常我们希望为管理员菜单添加脚本,那么我们需要按如下方式编写“{"admin", "一级菜单名", "菜单项名"}”,系统会自动在对应的菜单中生成菜单项。比如想在“网络”菜单下创建一个菜单项,那么一级菜单名可以写为“network”。注意,这个路径是在mcv架构下的control目录下的路径,在control目录下是定义luci菜单的节点,建立整个luci菜单的框架。

target:当定义的菜单显示或者分发的时候,调用的实际的行为。调用目标分为三种,分别是:

1、执行指定方法(Action)

2、访问指定页面(Views)

3、调用CBI Module

4、调用alias(...)

5、调用arcombine(trg1,trg2)

  • 第一种可以直接调用指定的函数,比如点击菜单项就直接重启路由器等等,比如写为“call("function_name")”,然后在当前lua文件下编写名为function_name的函数就可以调用了,通过这个函数来完成相应的动作。
  • 第二种可以访问指定的页面,比如写为“template("myapp/mymodule")”就可以调用/usr/lib/lua/luci/view/myapp/mymodule.htm文件了。注意,这个指定的是html页面,属于显示view的范畴,所以该html的路径应该是在view
  • 第三种,如果要编写配置页面,就要调用cbi,比如写为“cbi("myapp/mymodule")”就可以调用/usr/lib/lua/luci/model/cbi/myapp/mymodule.lua文件了。另外,cbi渲染可以加入一些另外的参数,比如帮助界面:
    entry({"sixing", "advanced", "ddns"}, cbi("sixing/ddns", {help_url="sixing/help/ddns"}), _("Dynamic DNS"), 11) ,其中
    {help_url="sixing/help/ddns"}就是help界面的连接,"sixing/help/ddns"是在controler目录下的help.lua文件中定义的help入口,也是一个entry定义的入口。这个入口又根据自己定义的相关内容进行处理。
  •  注意,因为是要配置参数,所以必须用到cgi进行底层数据库操作那么这就是model的范畴,所以相应调用的lua脚本就要放在model目录下.
  • 第四种,如果点击了某个菜单,相应的动作是另外一个菜单的入口,那么就使用alias来指明另外路口的路径,如,alias(”sixing “ ,”advanced“,”ddns“),如:entry({"sixing", "advanced"}, alias("sixing", "advanced", "ddns"), _("Advanced"), 50)),表示入口("sixing", "advanced", "ddns")是入口{"sixing", "advanced"}的别名
  • 第五种,如果target有分有参数和没有参数的情况,那么就要将这两种target结合起来,就用combine,比如:
     entry({"sixing", "advanced", "routes", "route"}, arcombine(cbi("sixing/route_zone"),cbi("sixing/routes")), nil, 130).leaf = true, 其中arcombine(cbi("sixing/route_zone"),cbi("sixing/routes")就结合了两个target,根据是否参数输入自动进行调用,


title:定义的节点的名称,比如:entry({"sixing", "advanced"}, alias("sixing", "advanced", "ddns"), _("Advanced"), 50),其中
_("Advanced")就是定义的菜单入口名称,

_()表示菜单名称翻译的入口为 build/i18n-scan.pl,而不是po文件夹路径。该参数不是必须的,可以直接放空。


order:目标节点显示的顺序,可以放空




_ ()

No-op function used to mark translation entries for menu labels. This function does not actually translate the given argument but is used by build/i18n-scan.pl to find translatable entries.接口说明:在定义title的时候,使用这个函数可以指定翻译的入口不为po,而是 build/i18n-scan.pl


alias (...)
Create a redirect to another dispatching node.

Parameters

  • ...: Virtual path destination

接口说明:为当前入口创建另外一个入口别名。这个入口别名也是用字符串数组作为输入参数给出,

entry({"sixing", "advanced"}, alias("sixing", "advanced", "ddns"), _("Advanced"), 50),那么别名也是用,字符串参数给出。

arcombine (trg1, trg2)
Create a combined dispatching target for non argv and argv requests.

Parameters

  • trg1: Overview Target
  • trg2: Detail Target
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LuCI是Openwrt中的一个项目,它是由UCI(统一配置接口)和Lua语言实现的Openwrt网页系统配置接口。具体来说,LuCI是将UCI和Lua合并在一起,用于实现路由器的网页配置界面。UCI是Openwrt中用于实现系统配置的统一接口,而Lua是一种轻量级的解释性脚本语言。通过LuCI,开发者可以使用简单的Lua脚本来开发新的功能页面,而剩下的部分则由Openwrt自动完成。这种开发模式遵循MVC(模型-视图-控制器)框架。总之,LuCI是Openwrt中一种方便的方式,用于通过网页界面进行系统配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Openwrt:LuCI入门(一)](https://blog.csdn.net/qq_28812525/article/details/103870169)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [【OpenWrt】(Luci)OpenWrt Web GUI 开发之 Luci 框架粗解](https://blog.csdn.net/qq_29757283/article/details/101056612)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值