如何实现模块的安装和删除功能?
假设现在有一CMS,我想把论坛做成一个可以添加或删除的模块。后台能提供安装和删除的功能。如果我添加了论坛模块,在CMS里能实现如下效果:菜单上加上论坛链接,个人账号中心里加上我的主题,我的帖子链接,CMS首页可以引用今日新贴。如果我删除了论坛模块,则把上面的修改也删掉。
这样的功能怎么实现呢?大家交流下。
不懂。来留个脚步 这样的东西,底层就得做好,可以看看drupal jeongee 发表于 2011-10-15 11:11 static/image/common/back.gif
这样的东西,底层就得做好,可以看看drupal
嗯,我知道drupal joomla xoops都有这种功能。
不过没搞清楚,他们的原理是什么。 我已经为我的项目开发了这个功能。一个模块无非由sql语句、文档、实体文件组成。我的做法是,将这些文件打包成压缩文件,导入时自解压,将文件move到对应目录,同时执行sql文件,将文档与接口、权限配置等同时修改,然后直接将上传的压缩文件删除。卸载操作反向即可。 ciogao 发表于 2011-10-15 23:08 static/image/common/back.gif
我已经为我的项目开发了这个功能。一个模块无非由sql语句、文档、实体文件组成。我的做法是,将这些文件打 ...
这种做法感觉耦合性很高,卸载时容易出问题吧?而且安装时,如果想让已安装的模块调用刚安装的模块的一些功能的话,好像很难办。 关注 Minux2007 发表于 2011-10-20 10:03 static/image/common/back.gif
关注
期待高手来讨论 baiyuxiong 发表于 2011-10-16 09:55 static/image/common/back.gif
这种做法感觉耦合性很高,卸载时容易出问题吧?而且安装时,如果想让已安装的模块调用刚安装的模块的一些 ...
每个模块加些widget?像wordpress那种,有些插件安装以后就有一些widget可调用。具体也没怎么看过。。。同楼上,共期待 本帖最后由 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