PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > WellCMS

Wellcms,overwrite功能

管理员 2024-12-15
WellCMS
187

比如 wellcms php功能或htm 模板无法满足需要时,这个时候你可以使用 Overwrite 机制,对原有文件进行覆盖。如果新的覆盖文件中仍保留了旧有的 hook 钩子,那么系统仍会进行 hook 到该文件的钩子处,最后将合并后的文件存放到tmp目录里。


不推荐使用这种方式开发插件,因为官方更新程序使用了新的文件,而您却用自己的文件覆盖了新的文件,会导致系统bug。


举例,对官方默认 view/htm/header_nav.inc.htm 文件进行覆盖:

在 plugin 目录下新建插件目录 my_plugin

plugin/

    conf.json (配置文件)

icon.png (图标宽高:200*200)

my_plugin/  (插件目录)

overwrite/ (覆盖文件目录)

       view/ (覆盖文件目录)

htm/ (覆盖文件目录)

header.inc.htm (被覆盖的文件)


完整的路径为 plugin/my_plugin/overwrite/view/htm/header.inc.htm


以下文件可以被 overwrite:

index.inc.php
route/*.php
model/*.php
view/htm/*.htm
admin/view/htm/*.htm
admin/route/*.php
admin/index.inc.php
admin/menu.conf.php
lang/*.php


如果多个插件同时都使用了 overwrite 一个文件,那么如何保证自己的被优先使用。相同文件多处 overwrite 程序只将会进行一次 overwrite。如何使自己的文件被采用进行overwrite?


根据 conf.json 文件 overwrites_rank 配置,进行选择使用哪个文件 overwrite ,多个插件同时 overwrite 一个文件,程序会根据 设置的最大值 overwrite

{
    "name": "插件名example",
    "brief": "插件介绍example brief",
    "type": "0", // 无需修改
    "version": "1.0.0", // 插件版本
    "software_version": "2.0.0",
    "installed": 0,
    "enable": 0,
    "hooks_rank": [], // 同一点hook优先插入
    "overwrites_rank": {
        "header.inc.htm":"1000",
        "index.php":"100"
    }, // 仅限最大值 overwrite 一次,可同时设置多个文件优先 overwrite 对应的数值越大越会被优先使用
    "dependencies": [] // 依赖其他插件
}



希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, LeCMS, ClassCMS, Fastadmin, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部