一个用于压缩和合并JavaScript和CSS文件的库
我很高兴地说,我已经完成了平台和系统插件的实施,以便在CMS上启用库功能。
库和CMS插件可以在以下链接中找到
- https://github.com/kaviththiranga/joomla-platform/tree/JMedia/libraries/joomla/media
- https://github.com/kaviththiranga/plg_compress/tree/master/plugins/system/compress
在我的开发者网络之前的文章中,我发布了一个关于使用库来合并和压缩JavaScript/CSS文件的指南。您可以在这里找到该文章。
首先,我必须提到,根据社区成员的建议,我对库的代码进行了一些可能的更改。例如,从库中删除JFile和JFolder的使用,并使用本机php函数。我推迟了这些更改,因为在最终评估截止日期之前我没有太多时间来处理这些更改。您可以在这里找到我的帖子。您可以在那里提供反馈。
CMS的系统插件将在onBeforeCompileHead事件上被调用。插件将捕获所有使用本机平台方法(如addStyleSheet()、addScript()等)注册的资产。然后,它将根据插件提供的选项压缩、合并和缓存资产。
以下是插件配置页面的屏幕截图,点击可放大。
压缩选项
缓存选项
插件如何影响渲染页面的代码?
实际上,插件不涉及页面的渲染。它真正做的是在编译头部之前用修改后的javascript/css文件替换JDocument对象的$_script、$_scripts、$_style和$_styleSheets属性。
因此,在头文件编译时,修改后的资源将用于渲染文档的头部。请注意,在合并文件时,会根据属性创建文件集,所以只有具有相似属性的文件才会被合并。
以下是启用插件前后渲染的HTML页面源代码的屏幕截图。
启用插件前的页面源代码
启用压缩后的页面源代码
(注意文件路径和文件名的更改以及javascript/css声明中删除的注释)
启用资源合并后的页面源代码
希望这些屏幕截图能给您对系统插件的初步了解。欢迎提出宝贵意见。请提供您的反馈。
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人意见或经验,可能并不代表Joomla项目的官方立场。
通过接受,您将访问由https://magazine.joomla.net.cn/之外的第三方提供的服务
评论