本帖最后由 mjyu51 于 2013-1-25 05:11 编辑
第二章 U-NAS 2.0应用(App)数据结构2.1 U-NAS 2.0应用的目录结构2.1.1 U-NAS应用的根目录: 由于多语言的存在,所以存在多个应用的根目录:/opt/web/webman/LANGUAGE/admin/apps · /opt/web/webman/zh_cn/admin/apps · /opt/web/webman/en_us/admin/apps · … 2.1.2 U-NAS 2.0 应用目录结构 [中文为例 apps/ |- App1 [应用目录 |- App2 [应用目录 |- App3 [应用目录 |- 。。。 2.1.3 单个App目录结构: 每个U-NAS 2.0应用安装包必须至少包含以下文件: 1. U-NAS_APP.xml [应用属性说明,xml格式 2. Menu文件,文件名的相对路径需要在U-NAS_APP.xml中 APP_MENU说明 3. js文件, 文件名的相对路径要在U-NAS_APP.xml中APP_JS说明 4. icon文件 (css目录/文件),文件名的相对路径要在U-NAS_APP.xml中APP_SHORTCUT说明 5. 其它应用相关的文件 apps/ |- --- App1_Path/ |-U-NAS_APP.xml [属性配置文件xml格式,必须 |- js [js文件,必须,js文件用于显示窗口 |- css [css目录及文件,用于显示 |-images [images目录及文件,必须? |-Menu文件 [实际是css,用于显示菜单 |-其它目录 [用户自己定义 |-。。。 |-----App2_Path/ |------。。。 注意:每个语言都要提供一个完整的目录及文件。 2.2 U-NAS 2.0应用安装包的数据结构 [U-NAS_APP.xml文件2.2.1 U-NAS应用 属性配置文件 U-NAS_APP.xml 由于deb 包的control文件还不能包含所有的Apps必须信息,另外control文件的约束比较大,所以U-NAS提供一个属性配置文件U-NAS_APP.xml。这个文件采用标准的XML文件格式。每个App都必须包含这个文件,并且放在安装目录的顶层(即apps/AppDir/U-NAS_APP.xml)。 No.
| Item
| Description
| Notes
|
| APP_NAME
| 应用名称
| 必须和 deb 的 Package一样
|
| APP_VERSION
| 版本号
|
|
|
|
|
|
| APP_ACCESS
| 访问权限:Admin/User(系统管理员/普通用户)
|
|
| APP_REMOVABLE
| 是否可卸载:Yes/No
|
|
|
|
|
|
| APP_JS
| JS File 用于显示窗口(包含在desktop-init.js)
| App窗口显示
|
|
|
|
|
| APP_SHORTCUT
| 用于显示在桌面上的图标,需要提供一个文件
| 指定桌面App icon样式
|
|
|
|
|
| APP_BACKUP
| 备份配置脚本,系统备份时会调用
|
|
| APP_RESTORE
| 恢复配置脚本,系统恢复配置时会调用
|
|
| APP_UPGRADE
| 升级脚本,系统在线升级时调用
|
|
|
|
|
|
| APP_MENU_POSITION
| 菜单安装位置 0:U-NAS 1:控制中心 2:窗口 3:工具 4:应用 5:帮助
| 指定 应用 属于那个 顶级菜单 一般应该用4
|
| APP_MENU
| 菜单文件
| 指定次级菜单位置
|
| APP_SUBMENU
| 子菜单? 考虑Debian标准菜单规则?
|
|
|
|
|
|
| APP_DESKTOP_CATEGORY
| APP属于哪个桌面框 0:桌面 1:控制中心 2:系统信息 3:应用服务 4:U下载 5:其它(目前还没有)
| 决定 Icon的 安装位置 0 —桌面独立图标 1-4 桌面分类框
|
| APP_DESKTOP_SUB_CATEGORY
|
| 目前还没用到 ,保留扩展用
|
|
|
|
|
U-NAS_APP.xml例子: <?xml version="1.0"?> <UNASOS> <APP_NAME>douban</APP_NAME> <APP_VERSION>1.0.0</APP_VERSION> <APP_ACCESS>User</APP_ACCESS> <APP_REMOVABLE>Yes</APP_REMOVABLE> <APP_JS>douban.js</APP_JS> <APP_SHORTCUT>douban_css.css></APP_SHORTCUT> <APP_BACKUP></APP_BACKUP> <APP_RESTORE></APP_RESTORE> <APP_UPGRADE></APP_UPGRADE> <APP_MENU_POSITION>5</APP_MENU_POSITION> <APP_MENU>css/doubanMenu</APP_MENU> <APP_SUBMENU>1</APP_SUBMENU> <APP_DESKTOP_CATEGORY>3</APP_DESKTOP_CATEGORY> <APP_DESKTOP_SUB_CATEGORY></APP_DESKTOP_SUB_CATEGORY> </UNASOS>
解释说明参考上面的表格。必须填写的部分用红色标出。 其它为选项。 其中APP_NAME必须和deb包的Package名一致。 2.3 U-NAS 2.0应用的安装位置 (目录位置) U-NAS的web os系统目录放在:/opt下,U-NAS应用统一放在:/opt/web/webman/LANGUAGE/admin/apps/App_Dir; 每个应用在/opt/web/webman/LANGUAGE/admin/apps下都有一个自己的单独目录。需要充分考虑其它应用存在的相同 目录的可能,因此,应用的 目录名应比较特殊,以防止重名。 2.4 U-NAS 2.0应用的多语言处理 U-NAS采用静态翻译的方法处理多语言问题,即每个页面都有对应的语言页面,分别放在不同的语言目录下。因此,U-NAS 2.0应用需要提供不同的语言页面。开发者需要完成多语言翻译,并置于不同语言目录下。 比如: · /opt/web/webman/zh_cn/admin/apps/App_Dir · /opt/web/webman/en_us/admin/apps/App_Dir · 语言的目录用iso的国家和语言代码,但用_替代-。 在/opt/etc/languages文件中,列出了所以支持的语言(不包含简体中文和英文)。 如果有新的语言支持,只需要在数组中添加相应的项即可。 <?php$Languages=array( array('zh_tw','繁体中文'), array('fr','français') );?>
|
2.5 U-NAS 2.0应用的菜单 菜单文件实际上也是一个 css文件,放到 应用的目录下,由 APP_MENU定义该文件的路径(相对路径) 菜单显示 位置由APP_MENU_POSITION 和APP_SUBMENU在U-NAS_APP.xml中定义 APP_MENU_POSITION 对应顶层菜单的位置(即属于那个 顶层菜单,数字 ) · 0 —用于扩展顶层菜单 · 1 --- U-NAS · 2 --- 控制中心 · 3 --- 窗口 · 4 --- 工具 · 5 --- 应用服务 · 6 --- 帮助 APP_SUBMENU对应的是属于哪个次级菜单 每个定级目录可以有不同的次级目录。比如应用服务下有: · 0--- 用于生成次级目录 · 1 --- Accessories · 2 --- Games · 3 --- Graphics · 4 --- Internet · 5 --- Office · 6 --- Sound & Video · 7 --- System Tools · 8 --- Universal Access · 9 --- Other 一个应用程序的菜单: <li class="icon_pw"><img src="images/icons/48x48/doubanLarge.png" width="16px"><a id="doubanMenu">douban FM</a></li>
|
带阴影的部分需要根据你的实际情况修改。 2.6 U-NAS 应用图标 每个U-NAS应用一般提供至少两种图标: · 48x48点阵的图标用于shortcut或者应用服务框内 · 16x16点阵的图标用于菜单 图标文件一般放在images/icons/48x48/; images/icons/16x16/下 。 2.7 U-NAS应用css文件 ——ICON显示 每个U-NAS应用必须提供一个css文件,这个css文件需要放在应用的子目录css/下,这个css文件需要越小越好。这个 css文件决定了ICON的显示,由APP_SHORTCUT定义。桌面图标只能在桌面框和桌面上二选一显示。 注意这两种显示方式的css文件写法不同:[但都由APP_SHORTCUT定义 直接在桌面上: <a class="abs icon menu-target" id="doubanLinkCheck" ><img src="images/icons/48x48/doubanLarge.png" />douban FM</a>
|
阴影部分根据你的应用修改 在桌面框里: 阴影部分根据你的应用修改 图标显示 位置由APP_DESKTOP_CATEGORY在U-NAS_APP.xml中定义 APP_DESKTOP_CATEGORY 指明App属于哪个桌面框 · 0:桌面 · 1:控制中心 · 2:系统信息 · 3:应用服务 · 4:U下载 · 5:其它(目前还没有) 2.8 U-NAS应用js文件 ——窗口显示 U-NAS应用可以提供一个独立的js文件,用于显示复杂窗口。由APP_JS在U-NAS_APP.xml中定义 例子: 2.9 U-NAS 应用Web页面编码 U-NAS应用的Web页面编码必须采用UTF-8。 2.10 U-NAS 安装过程中的pre-install / pre-rm 由deb的preinst和prerm来实现。 2.10 U-NAS 安装过程中的post-install / post-rm 由deb的postinst和postrm来实现 2.11 U-NAS应用的备份/恢复脚本 如果U-NAS应用有比较特殊的配置文件/方法,U-NAS应用需要提供一个备份/恢复配置脚本。/etc中的配置文件会被自动备份/恢复。 系统执行备份时,会逐个应用调用其备份脚本。 应用的备份脚本将备份文件打包成unasbackup.tar.gz,系统将unasbackup.tar.gz移动到/tmp/backup/apps/APP_Dir/下,最后一起打包。 系统执行恢复时,会先解开数据包,将各个 应用的备份数据unasbackup.tar.gz送回到各个应用下,然后执行各个应用的恢复脚本。 备份和恢复脚本文件名称由U-NAS_APP.xml中的APP_BACKUP 和APP_RESTORE定义 [注:目前尚未集成到系统中 2.12 U-NAS应用的升级脚本 U-NAS应用可以提供一个独立的升级脚本,这个脚本负责处理升级过程中的特殊方面。U-NAS系统执行升级时会逐个应用调用其升级脚本,由其自己完成升级。因此也是风险自负。 升级脚本由U-NAS_APP.xml中的APP_UPGRADE定义。 [注:目前尚未集成到系统中 2.13 U-NAS 2.0应用的卸载 应用必须负责将应用进行卸载,卸载通过dpkg -r的命令来完成的,应用在deb中可能需要提供清理应用目录的脚本(postrm)或其它动作。 2.14 U-NAS 2.0 应用的安装文件 U-NAS 2.0应用的安装程序必须是一个单一文件的deb包,如果U-NAS 2.0的应用必须包含其它的包,则可以通过写一个wrapper包的办法将其它包包含在内从而形成一个单一的deb包。这个deb必须按照debian标准生成并维护。 |