您现在的位置是:首页 > cms教程 > shopxo教程shopxo教程

shopxo插件开发钩子引入静态css/js的方法

阿森2025-07-25shopxo教程已有人查阅

导读如果一些小插件,没有控制器,但是页面显示的内容可能需要css或者js,我们也可以在config.json里面定义 plugins_css 或 plugins_js 钩子

如果一些小插件,没有控制器,但是页面显示的内容可能需要css或者js,我们也可以在config.json里面定义 plugins_css 或 plugins_js 钩子
{
"base":{
"plugins":"test_xxx",
"name":"测试插件",
"logo":"\/static\/upload\/images\/plugins_test_xxx\/2025\/04\/21\/1745219584289850.jpg",
"author":"Devil",
"author_url":"https:\/\/shopxo.net\/",
"version":"1.0.0",
"desc":"测试插件的开发",
"apply_terminal":[
"pc",
"h5"
],
"apply_version":[
"6.5.0"
],
"is_home":false
},
"extend":"",
"hook":{
"plugins_css":[
"app\\plugins\\test_xxx\\Hook"
],
"plugins_js":[
"app\\plugins\\test_xxx\\Hook"
]
}
}
Hook.php里面使用指定自己随便创建的css或js文件,路径位置都没要求,如下:
public/static/plugins/text_xxx/css/index/public/style.css
public/static/plugins/text_xxx/js/index/public/style.js
public/static/plugins/text_xxx/js/index/public/style2.js
public/static/plugins/text_xxx/js/index/public/style3.js
<?php
namespace app\plugins\test_xxx;
// 测试插件 - 钩子入口
class Hook
{
// 应用响应入口
public function handle($params = [])
{
// 钩子名称
if(!empty($params['hook_name']))
{
// 走钩子
$ret = '';
switch($params['hook_name'])
{
case 'plugins_css' :
$ret = 'static/plugins/text_xxx/css/index/public/style.css';
break;
case 'plugins_js' :
// 我们也可以自己通过一些条件限制,哪些页面需要引入在这里做判断即可
// 单个文件引入
$ret = 'static/plugins/text_xxx/js/index/public/style.js';
// 如果要同时引入多个文件也可以使用数组的方式,如:
$ret = [
'static/plugins/text_xxx/js/index/public/style.js',
'static/plugins/text_xxx/js/index/public/style2.js',
'static/plugins/text_xxx/js/index/public/style3.js',
];
break;
}
return $ret;
}
}
}
?>
如果静态的代码太少,您觉得引入文件太麻烦了,也可以直接写css或者js,直接使用头尾钩子 plugins_common_header 和 plugins_common_page_bottom  参考如下:
config.json 文件
{
"base":{
"plugins":"test_xxx",
"name":"测试插件",
"logo":"\/static\/upload\/images\/plugins_test_xxx\/2025\/04\/21\/1745219584289850.jpg",
"author":"Devil",
"author_url":"https:\/\/shopxo.net\/",
"version":"1.0.0",
"desc":"测试插件的开发",
"apply_terminal":[
"pc",
"h5"
],
"apply_version":[
"6.5.0"
],
"is_home":false
},
"extend":"",
"hook":{
"plugins_common_header":[
"app\\plugins\\test_xxx\\Hook"
],
"plugins_common_page_bottom":[
"app\\plugins\\test_xxx\\Hook"
]
}
}
Hook.php 文件
<?php
namespace app\plugins\test_xxx;
// 测试插件 - 钩子入口
class Hook
{
// 应用响应入口
public function handle($params = [])
{
// 钩子名称
if(!empty($params['hook_name']))
{
// 走钩子
$ret = '';
switch($params['hook_name'])
{
// 网站head内 插入css代码
case 'plugins_common_header' :
$ret = '<style type="text/css">
.name {
font-size: 200px;
color: #f00;
}
</style>';
break;
// 网站底部插入js代码
case 'plugins_common_page_bottom' :
$ret = '<script type="text/javascript">
alert("test_xxx js");
</script>';
break;
}
return $ret;
}
}
}
?>
PS:config.json 文件增加或移除钩子后,需要在后台左侧 应用 -> 应用管理里面重启插件

本文标签:

很赞哦! ()

相关源码

  • (自适应响应式)绿色环保防腐木材轻钢别墅建材pbootcms模板下载本模板为环保防腐木材、轻钢别墅建材类企业设计开发,基于PbootCMS内核构建,充分考虑了建材行业的展示需求与产品特点。模板设计风格自然环保,布局清晰合理,呈现建材产品特性与专业优势,帮助访客直观了解产品特点并建立信任感。查看源码
  • (自适应)行业协会工会机构单位pbootcms网站源码本模板基于PbootCMS内核开发,为行业协会、工会组织及机构单位量身打造。采用响应式布局设计,可自动适配手机、平板等移动设备,数据实时同步更新。模板包含行业资讯查看源码
  • 深蓝色风景摄影机构网站(自适应多端)pbootcms模板该模板基于PbootCMS内核开发,专为风景摄影机构、户外摄影企业设计,采用深蓝色主题传递专业与艺术感,全栈响应式架构确保PC、平板、手机端无缝适配PHP程序结合轻量级SQLite数据库也可以更换MySQL数据库查看源码
  • 自适应响应式绿色装修公司定制家居类pbootcms网站下载(自适应手机端)响应式全屋装修定制家居类网站pbootcms模板 绿色装修公司网站源码下载PbootCMS内核开发的网站模板,该模板适用于装修定制网站、装查看源码
  • (响应式)WordPress主题Ripro9.0博客免扩展二开版RiPro9.0是基于RiPro8.9版本深度二开优化的资源付费主题,源码修正,修复原版多处功能异常,确保系统稳定运行。支持虚拟主机环境部署,无需特殊服务器配置。查看源码
  • (自适应)物流运输快递仓储货运网站模板免费下载基于PbootCMS内核开发的物流运输行业专用模板,深度适配仓储货运企业的业务展示需求。前端采用响应式布局,自动适配手机端访问,后台数据实时同步更新,帮助企业高效展示运输网络、仓储设施、服务流程等核心业务模块。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐