禅道博客

分享专业技术知识,文章内容干货满满

禅道扩展机制

2023-12-21 14:56:27
刘沙沙
原创 747
摘要:分享学习禅道项目管理软件的扩展机制。

老版

适用开源版16.5、企业版6.5、旗舰版3.0以下


对应模块ext文件夹下 module/task/ext/。扩展config.php:在ext下建config文件夹,在congfig下建文件比如test.php。

扩展控制器方法create():在ext下建control文件夹,在control下建文件create.php,自己写一个create方法。


继承原来的方法


  • 扩展css,建一个css目录,扩展创建页面的css文件,在css目录下再建一个create目录,建文件test.css;
  • 扩展js,类似css;
  • 扩展语言项目录,类似建lang/zh-cn/test.php,新的会覆盖老的;
  • 扩展model,类似control,但是不需要引入文件。

  • 扩展view下的文件,ext下新建view文件夹,直接复制原文件,比如create.html.php文件,注意修改引入路径(要多一层)。

    也可以这样写,会获取到module前的路径

    整个ext扩展目录结构是这样式的

    新的:


    比如扩展bug模块的代码,目录在下面,其他同老版本。

    扩展机制实现原理:control扩展机制。
    • 加载模块control文件时,先判断有没有被扩展过,如果扩展过,则引入扩展下的文件;
    • 实现代码在setActionExtFile()方法中。


    model扩展机制

    同一个模块下的所有model扩展文件会被加载到tmp/model下运行。类名叫ext模块名Model,如extadminModel,有直接扩展和通过钩子扩展两种。

    直接扩展,进入tmp下查看:

    钩子扩展:
    ext/model/hook下建文件将钩子文件下写的追加到tmp/model下文件相应方法的头部

    view扩展机制 (完全覆盖+钩子文件扩展,有扩展文件就引入扩展文件)在这个文件下:

    这个方法实现的。

    注意:文件名和目录名要小写,control方法文件名与方法名要一致,扩展view文件时要注意include路径要变化


暂时没有记录
评论通过审核后显示。