产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请编程助手免费智能写代码、翻译NewAMYSQL 免费MySQL管理工具AMFTP 免费FTP管理客户端

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] LNMP面板 - AMH3.0 模块(module) 开发文档

admin
创始人
31852.40 价值分

admin 发表于 2013-02-24 20:26:20
关于AMH模块
----------------------------------------------------------------------------------------------------

amh3.0新增一重要功能:module 模块,支持用户创建编写新的功能模块运行,这使amh今后会更加开放、灵活。

使用模块可以额外在线安装相关软件、程序或结合amh面板自身的控制器(Controller)与数据模型(Model)扩展出新的面板功能,如目前已发布的amh模块:AMProxy-1.0(反代模块)AMAPI-1.0(api模块)AMFTP-1.0(文件管理模块)
同时amh模块拥有最高运行权限,用户可按需求编码无任何限制,
欢迎有开发能力的朋友加入、集思广益共同扩展丰富amh面板功能。




应用AMH模块
----------------------------------------------------------------------------------------------------

模块工作目录
/root/amh/modules

模块使用编码
utf8


SSH命令管理模块
1) 有步骤提示操作:
ssh执行命令: amh module
然后选择对应的模块进行管理。

2) 或直接操作:
下载模块: amh module download [模块名字]
模块信息: amh module [模块名字] info
安装模块: amh module [模块名字] install
卸载模块: amh module [模块名字] uninstall
管理模块: amh module [模块名字] admin
安装状态: amh module [模块名字] status
删除状态: amh module [模块名字] delete





开发AMH模块:
----------------------------------------------------------------------------------------------------

amh模块开发流程

1) 以模块名字命名创建模块脚本目录,
例如: my_module-1.0
/root/amh/modules/my_module-1.0

2) 创建模块主脚本文件 AMHScript
/root/amh/modules/my_module-1.0/AMHScript

其中AMHScript包含5个函数供AMH调用,分别是:
amh_module_info
amh_module_install
amh_module_admin
amh_module_uninstall
amh_module_status


----------------------------------------------------------------------------------------------------




以下为函数详细说明

amh_module_info 模块信息函数
-------------------------
amh_module_info函数当中echo输出模块具体的一些说明信息,分别有:
AMH-ModuleName (模块名字)
AMH-ModuleDescription (模块说明描述,请不要换行)
AMH-ModuleButton (amh面板后台按钮文字,如: 安装/卸载)
AMH-ModuleDate (模块发布时间)
AMH-ModuleAdmin (amh面板后台"管理模块"按钮链接,如无管理页面请留空)
AMH-ModuleWebSite (模块开发者网站)
AMH-MoudleScriptBy (模块开发者名字)

当用户执行命令 amh module my_module-1.0 info 将会执行amh_module_info函数,也就输出上面用户定义模块信息。
同时在amh面板后台AMH » Module也会调用显示出以上定义的信息。




amh_module_install 模块安装函数
-------------------------
开发者可以在amh_module_install函数中编写模块安装脚本,
当用户执行命令 amh module my_module-1.0 install 或是通过面板点击安装,将会执行amh_module_install函数执行当中的脚本,
注意写好判断避免用户重复安装,您可以参考amh现已发布的模块,调用amh_module_status函数判断。





amh_module_admin 模块管理函数
-------------------------
amh_module_admin为模块的管理函数,模块安装后可以使用amh_module_admin函数管理维护模块的功能。
如amh反代模块,AMProxy-1.0,创建、删除管理反代网站,关键字添加管理都是通过amh_module_admin函数进行处理。
通常管理模块需要传递参数给amh_module_admin函数进行响应相关事件,如上面创建、删除反代网站,
您可以额外传递一参数给amh_module_admin函数,像下面这行命令的add,user参数,
amh module my_module-1.0 admin add,user
这时就可以在amh_module_admin函数当中使用$*接收参数值进行判断响应相关事件。





amh_module_uninstall 模块卸载函数
-------------------------
amh_module_uninstall为模块的卸载函数,开发者可编写模块相关卸载脚本,
当用户执行命令 amh module my_module-1.0 uninstall 或是通过面板点击卸载,将会执行amh_module_uninstall函数执行当中的脚本,
无特殊情况务必要清除干净安装时生成或下载的目录文件,
与及还原先前安装改动过的文件内容,保证可恢复至安装模块之前的状态。





amh_module_status 模块安装状态函数
-------------------------
amh_module_status 模块当前安装状态函数,用于判断模块是否已安装,
当用户执行命令 amh module my_module-1.0 status
一样会执行amh_module_status函数当中的脚本。

开发者请根据安装后的改动做出判断是否已安装本模块。
如已安装请返回 return 0;
相反未安装请返回 return 1;
amh面板上会根据您返回的状态显示相关按钮(安装/管理/卸载),以能正确响应对应的事件,

同样上面所提到的函数:安装(amh_module_install)、管理(amh_module_admin)、卸载(amh_module_uninstall)
您都可调用amh_module_status函数进行判断使用,
当模块未安装时才可以执行安装脚本,
当模块已安装时才可以执行卸载脚本,
当模块已安装时才可以进行管理维护模块提供的功能,这样就避免重复安装、卸载出错等问题。


----------------------------------------------------------------------------------------------------

小提示:
您编写模块同样可以执行amh相关命令,如模块安装新软件后需要重载php,
您可使用amh php reload;命令,同样重载Nginx,可以使用amh nginx reload;
更多命令请查阅amh命令全集:
http://amysql.com/bbs/post-196-1-1.htm

[lnmp] AMH面板模块开发入门实例
http://amysql.com/bbs/post-253-1-1.htm

模块开发入门实例:MyModule-1.0 安装动画
http://amysql.com/bbs/post-254-1-1.htm


评价: 这个问题有价值吗?  没有 (0分)   有, 感谢 (2分)
2013-02-24 20:26:20 1

AMH官方号 2011~2021 (10周年)

neil
铝牌会员
334.00 价值分

有些功能没有的, 正准备自己写扩展呢。





评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-02-05 23:05:57 2

laotang
铜牌会员
910.89 价值分

菜鸟很无助,顶上去给其他大侠看
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-02-14 23:04:35 3

Captain
金牌会员
6928.40 价值分

非常有用的开发文档
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-02-15 18:12:47 4

reg2012
银牌会员
1971.00 价值分

已经开发出一个模块了,正在自己的机子上测试
怎么才能提交给官方呢?
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-04-12 16:07:13 5

ali
银牌会员
3123.65 价值分

进来学习 支持 支持
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2014-04-12 18:38:31 6
 1  (总1页)
AMH社区列表
用户服务中心