LuCI2源文件功能

时间:2019-02-21
本文章向大家介绍LuCI2源文件功能,主要包括LuCI2源文件功能使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

如下是对LuCI2源码中每个文件大致功能的解读,可以据此去看源码

 

 

feeds/luci2/luci2

├── htdocs

│   ├── luci2

│   │   ├── bootstrap.js Bootstrap框架源码,简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。http://www.bootcss.com/

│   │   ├── cbi.js   定义了直接读写UCI系统中的配置文件(位于/etc/config/目录下)的一些JS函数

│   │   ├── css  样式

│   │   │   ├── bootstrap.css

│   │   │   └── luci2.css

│   │   ├── firewall.js  应该是防火墙相关的一些函数封装

│   │   ├── html5.js  应该为了html5做向后兼容老的浏览器吧

│   │   ├── icons  一些图标文件

│   │   │   ├── bridge_disabled.png

│   │   │   ├── bridge.png

│   │   │   ├── cbi

│   │   │   │   ├── add.gif

│   │   │   │   ├── apply.gif

│   │   │   │   ├── arrow.gif

│   │   │   │   ├── down.gif

│   │   │   │   ├── download.gif

│   │   │   │   ├── edit.gif

│   │   │   │   ├── fieldadd.gif

│   │   │   │   ├── file.gif

│   │   │   │   ├── find.gif

│   │   │   │   ├── folder.gif

│   │   │   │   ├── help.gif

│   │   │   │   ├── key.gif

│   │   │   │   ├── link.gif

│   │   │   │   ├── reload.gif

│   │   │   │   ├── remove.gif

│   │   │   │   ├── reset.gif

│   │   │   │   ├── save.gif

│   │   │   │   ├── up.gif

│   │   │   │   └── user.gif

│   │   │   ├── encryption_disabled.png

│   │   │   ├── encryption.png

│   │   │   ├── ethernet_disabled.png

│   │   │   ├── ethernet.png

│   │   │   ├── loading.gif

│   │   │   ├── port_down.png

│   │   │   ├── port_up.png

│   │   │   ├── progress.gif

│   │   │   ├── signal-0-25.png

│   │   │   ├── signal-0.png

│   │   │   ├── signal-25-50.png

│   │   │   ├── signal-50-75.png

│   │   │   ├── signal-75-100.png

│   │   │   ├── signal-none.png

│   │   │   ├── switch_disabled.png

│   │   │   ├── switch.png

│   │   │   ├── tunnel_disabled.png

│   │   │   ├── tunnel.png

│   │   │   ├── vlan_disabled.png

│   │   │   ├── vlan.png

│   │   │   ├── wifi_big_disabled.png

│   │   │   ├── wifi_big.png

│   │   │   ├── wifi_disabled.png

│   │   │   └── wifi.png

│   │   ├── jquery-1.9.1.js

│   │   ├── jquery.peity.js

│   │   ├── luci2.js   luci2对象的函数定义

│   │   ├── network.js 读写有线无线网络相关参数的函数;处理ubus的network和luci2.network对象的一些函数

│   │   ├── proto

│   │   │   ├── 6in4.js

│   │   │   ├── 6rd.js

│   │   │   ├── 6to4.js

│   │   │   ├── dhcp.js

│   │   │   ├── dhcpv6.js

│   │   │   ├── dslite.js

│   │   │   ├── none.js

│   │   │   └── static.js

│   │   ├── respond.min.js

│   │   ├── rpc.js  实现JSON-RPC协议的一些函数

│   │   ├── session.js  实现用户登陆认证相关的一些函数;处理ubus session对象的一些方法,例如login/access等等;

│   │   ├── system.js  获取系统信息,以及控制系统reboot的一些函数

│   │   ├── template   每一个luCI2子页面对应的模板

│   │   │   ├── network.diagnostics.htm

│   │   │   ├── network.hosts.htm

│   │   │   ├── network.interfaces.htm

│   │   │   ├── network.routes.htm

│   │   │   ├── network.switch.htm

│   │   │   ├── network.wireless.htm

│   │   │   ├── status.dmesg.htm

│   │   │   ├── status.overview.htm

│   │   │   ├── status.processes.htm

│   │   │   ├── status.routes.htm

│   │   │   ├── status.syslog.htm

│   │   │   ├── system.admin.htm

│   │   │   ├── system.cron.htm

│   │   │   ├── system.leds.htm

│   │   │   ├── system.software.htm

│   │   │   ├── system.startup.htm

│   │   │   ├── system.system.htm

│   │   │   ├── system.upgrade.htm

│   │   │   └── system.users.htm

│   │   ├── uci.js  通过ubus通讯访问UCI系统提供的一些函数;get/set/add/delete/apply等等,具体可以用ubus -v list来看

│   │   ├── ui.js  UI相关的一组函数,例如loading,dialog,upload,login,cryptPassword,renderView,renderViewMenu等等

│   │   ├── view  每个LuCI2子页面也需要定义一个视图,存放在/www/luci2/view/目录下

│   │   │   ├── network.diagnostics.js

│   │   │   ├── network.hosts.js

│   │   │   ├── network.interfaces.js

│   │   │   ├── network.routes.js

│   │   │   ├── network.switch.js

│   │   │   ├── network.wireless.js

│   │   │   ├── status.dmesg.js

│   │   │   ├── status.overview.js

│   │   │   ├── status.processes.js

│   │   │   ├── status.routes.js

│   │   │   ├── status.syslog.js

│   │   │   ├── system.admin.js

│   │   │   ├── system.cron.js

│   │   │   ├── system.leds.js

│   │   │   ├── system.software.js

│   │   │   ├── system.startup.js

│   │   │   ├── system.system.js

│   │   │   ├── system.upgrade.js

│   │   │   └── system.users.js

│   │   ├── wireless.js  定义了一组获得当前wifi运行参数的函数,例如SSID,KEY认证/加密方式,bitrate等等; 处理ubus的iwinfo对象的一些函数;

│   │   └── zoneinfo.json

│   └── luci2.html  网页的主页

├── Makefile

├── share

│   ├── acl.d 这里的文件最终会拷贝到 /usr/share/rpcd/acl.d/*.json. 由rpcd来判断有没有访问操作权限;rpcd (OpenWrt ubus RPC backend server)//Openwrt ubus RPC后端服务;更多信息看https://openwrt.org/docs/techref/ubus

│   │   └── luci2.json     

│   └── menu.d  定义了整个网页的菜单

│       ├── network.json  一级菜单network项,及其子菜单的定义

│       ├── status.json  一级菜单status项,及其子菜单的定义

│       └── system.json  一级菜单system项,及其子菜单的定义

└── src

    ├── CMakeLists.txt

    ├── io

    │   ├── CMakeLists.txt

    │   ├── main.c

    │   ├── multipart_parser.c

    │   └── multipart_parser.h

    └── rpcd

        ├── bwmon.c 网络监控:网络发送和接收数据统计等等;

        ├── CMakeLists.txt

        └── luci2.c  LuCI2主要通过ubus和系统进行交互,但是很多功能不提供ubus接口,因此LuCI2通过提供在附加ubus名称空间的rpcd插件来解决;