站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
ZenTaoPMS/扩展机制简介
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{ZenTaoPMS top}} [[禅道]][[项目管理软件]]的框架是采用了自主研发的[[ZenTaoPHP]]框架。通过该框架,我们实现了禅道项目管理软件灵活多变的扩展机制,通过这个扩展机制,你可以开发自己完全独立的模块,也可以对现有模块功能进行覆盖,追加。通过扩展机制,你拥有了对禅道完全的控制权。 ==扩展的类型== 从总体来讲,插件可以分为独立的模块、模块的扩展,类库的扩展 ==独立的模块== 独立的模块和禅道核心的模块没有什么区别,目录部署在禅道的module目录下面,里面按照mvc进行划分。 ==对现有模块的扩展== '''1. 目录结构''' 某一个模块所有的扩展都部署在该模块的ext目录下面,并且按照目录分开,control, model, view, config, lang,分别存储control的扩展,model的扩展, view的扩展,config的扩展和lang的扩展。 '''2. control的扩展''' 对现有模块的control层的扩展有两种,一种是覆盖现有的方法,一种是增加新的方法。无论是覆盖现有的方法,还是新增方法,扩展文件都是以方法名为名(小写)。比如以misc模块为例,我们来新增一个getsid的方法,用来获取session的id。那么只需要建立misc/ext/control/getsid.php,代码为: <pre> class misc extends control { public function getsid() { $this->view->header->title = 'getsid'; $this->view->sid = session_id(); $this->view->test = $this->misc->test(); $this->display(); } } </pre> 然后就可以了。需要说明的是,这个地方的类,可以直接继承自control类,也可以继承自misc类。如果是后者,则需要这么写: </pre> include '../../control.php'; misc的contro类文件需要手工包含。 class myMisc extends misc { public function getsid() { } } </pre> 通过第二种方式,可以调用misc类的其他方法,实现代码的重用。 '''3. model的扩展。''' model的扩展文件命名与control类似,在ext/model/目录下面建立相应的以方法为名的文件,里面实现对应的查询功能。比如,我们打算对misc的model新增一个方法,叫做foo,那么只需要在misc/ext/model/下面建立foo.php,代码如下: <pre> public function foo() { return 'foo'; } </pre> 需要说明的是,这里面不不包含的起止符号,也不包含类的声明。就只是一个方法的声明。禅道框架在执行的时候,会自动将扩展目录下面的foo.php里面的代码,替换misc/model.php中的foo方法的代码。如果是新增的方法,则会追加到misc/model.php的代码中,最终生成一个合并之后的model类文件。 '''4. view的扩展''' *视图的扩展也是同样的命名,以当前访问的control的方法为名。视图文件的扩展分为两种,一种是完全覆盖原来的视图文件,文件名为xxx.[[html]].[[php]]。xxx为当前访问的方法名。还有一种是钩子文件,为xxx.html.hook.php。该钩子文件会在整个模板加载完之后加载,在里面可以执行相应的php代码,或者js代码。这样就提供了一种通过js来动态修改页面元素的机制,从而达到对页面元素的完全控制。 *比如misc/ext/view/getsid.html.hook.php *通过上面这段[[js]]代码,实现了对顶部导航条的加红显示。 '''5. 配置的扩展''' 配置文件存放在ext/config/目录下面,可以由多个文件,禅道框架会自动加载该目录下面以config开头的.php文件。这样不同的扩展可以有自己的配置项,彼此之间不会冲突。 '''6. 语言的扩展''' *语言的扩展文件存放在ext/lang/目录下面。按照不同的语言建立相应的目录,比如zh-cn下面,可以有多个文件,禅道框架会自动加载该目录下面所有以.php结尾的文件。 *比如扩展bug模块的语言文件,可以建立module/bug/ext/lang/zh-cn/1.php。 ==独立的类库== *独立的类库文件和通常的[[php]] [[class]]没有任何区别,只要将其存放在lib目录下面,文件名为小写的类名,或者建立一个目录。比如,新增一个image的类,可以存放在lib/image.class.php,也可以存放在lib/image/image.class.php *这样,通过上面的扩展机制,无论是企业内部的修改(配置文件的修改,语言文件的修改,或者自己对现有逻辑的修改),还是第三方的扩展,都可以完美的并存。并且不用担心禅道核心代码升级的问题。 ==参考来源== *http://www.zentao.net/help-book-zentaopmshelp.html [[category:ZenTaoPMS|Z]] {{ZenTaoPMS}}
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:ZenTaoPMS
(
编辑
)
模板:ZenTaoPMS top
(
编辑
)