baiyuxiong 发表于 2011-10-15 02:56:25

如何实现模块的安装和删除功能?

假设现在有一CMS,我想把论坛做成一个可以添加或删除的模块。后台能提供安装和删除的功能。如果我添加了论坛模块,在CMS里能实现如下效果:菜单上加上论坛链接,个人账号中心里加上我的主题,我的帖子链接,CMS首页可以引用今日新贴。

如果我删除了论坛模块,则把上面的修改也删掉。

这样的功能怎么实现呢?大家交流下。

sdink 发表于 2011-10-15 10:30:25

不懂。来留个脚步

jeongee 发表于 2011-10-15 11:11:33

这样的东西,底层就得做好,可以看看drupal

baiyuxiong 发表于 2011-10-15 19:28:30

jeongee 发表于 2011-10-15 11:11 static/image/common/back.gif
这样的东西,底层就得做好,可以看看drupal

嗯,我知道drupal joomla xoops都有这种功能。
不过没搞清楚,他们的原理是什么。

ciogao 发表于 2011-10-15 23:08:33

我已经为我的项目开发了这个功能。一个模块无非由sql语句、文档、实体文件组成。我的做法是,将这些文件打包成压缩文件,导入时自解压,将文件move到对应目录,同时执行sql文件,将文档与接口、权限配置等同时修改,然后直接将上传的压缩文件删除。卸载操作反向即可。

baiyuxiong 发表于 2011-10-16 09:55:58

ciogao 发表于 2011-10-15 23:08 static/image/common/back.gif
我已经为我的项目开发了这个功能。一个模块无非由sql语句、文档、实体文件组成。我的做法是,将这些文件打 ...

这种做法感觉耦合性很高,卸载时容易出问题吧?而且安装时,如果想让已安装的模块调用刚安装的模块的一些功能的话,好像很难办。

Minux2007 发表于 2011-10-20 10:03:18

关注

baiyuxiong 发表于 2011-10-20 10:32:18

Minux2007 发表于 2011-10-20 10:03 static/image/common/back.gif
关注

期待高手来讨论

sunboat 发表于 2011-10-24 17:25:42

baiyuxiong 发表于 2011-10-16 09:55 static/image/common/back.gif
这种做法感觉耦合性很高,卸载时容易出问题吧?而且安装时,如果想让已安装的模块调用刚安装的模块的一些 ...

每个模块加些widget?像wordpress那种,有些插件安装以后就有一些widget可调用。具体也没怎么看过。。。同楼上,共期待

acabin 发表于 2011-10-27 14:55:52

本帖最后由 acabin 于 2011-10-27 15:00 编辑

主程序准备:
数据库放一个模块列表
在可能引入模块的位置置入foreach之类的钩子
例如,引出设置项可以是(view):
foreach($module in $modules)
echo "<a href='$module['setting_url']'>$module['name']</a>"

安装时将本模块注册
建立模块专用表
然后使用钩子将本模块注入到网站(自动)
其他模块引用本模块时,先查找注册信息
类似httpd的IfModule就好了

卸载时只需要删除注册信息
以及模块专用表
和模块自身的文件就行了

这个方案应该是低耦合度的


页: [1] 2
查看完整版本: 如何实现模块的安装和删除功能?