用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6717|回复: 10
收起左侧

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

[复制链接]
发表于 2011-10-15 02:56:25 | 显示全部楼层 |阅读模式
假设现在有一CMS,我想把论坛做成一个可以添加或删除的模块。后台能提供安装和删除的功能。如果我添加了论坛模块,在CMS里能实现如下效果:菜单上加上论坛链接,个人账号中心里加上我的主题,我的帖子链接,CMS首页可以引用今日新贴。

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

这样的功能怎么实现呢?大家交流下。
发表于 2011-10-15 10:30:25 | 显示全部楼层
不懂。来留个脚步
发表于 2011-10-15 11:11:33 | 显示全部楼层
这样的东西,底层就得做好,可以看看drupal
 楼主| 发表于 2011-10-15 19:28:30 | 显示全部楼层
jeongee 发表于 2011-10-15 11:11
这样的东西,底层就得做好,可以看看drupal

嗯,我知道drupal joomla xoops都有这种功能。
不过没搞清楚,他们的原理是什么。
发表于 2011-10-15 23:08:33 CI中国手机版 | 显示全部楼层
我已经为我的项目开发了这个功能。一个模块无非由sql语句、文档、实体文件组成。我的做法是,将这些文件打包成压缩文件,导入时自解压,将文件move到对应目录,同时执行sql文件,将文档与接口、权限配置等同时修改,然后直接将上传的压缩文件删除。卸载操作反向即可。
 楼主| 发表于 2011-10-16 09:55:58 | 显示全部楼层
ciogao 发表于 2011-10-15 23:08
我已经为我的项目开发了这个功能。一个模块无非由sql语句、文档、实体文件组成。我的做法是,将这些文件打 ...

这种做法感觉耦合性很高,卸载时容易出问题吧?而且安装时,如果想让已安装的模块调用刚安装的模块的一些功能的话,好像很难办。
发表于 2011-10-20 10:03:18 | 显示全部楼层
关注
 楼主| 发表于 2011-10-20 10:32:18 | 显示全部楼层
Minux2007 发表于 2011-10-20 10:03
关注

期待高手来讨论
发表于 2011-10-24 17:25:42 | 显示全部楼层
baiyuxiong 发表于 2011-10-16 09:55
这种做法感觉耦合性很高,卸载时容易出问题吧?而且安装时,如果想让已安装的模块调用刚安装的模块的一些 ...

每个模块加些widget?像wordpress那种,有些插件安装以后就有一些widget可调用。具体也没怎么看过。。。同楼上,共期待
发表于 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就好了

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

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


本版积分规则