zepluf / plugin-ricjloader
"CSS - JS 加载器"插件
Requires
- php: >=5.3.3
- zepluf/installer: *
This package is not auto-updated.
Last update: 2024-09-28 13:32:12 UTC
README
riCjLoader 是 RubikIntegration.com 的产品。该插件/模块旨在用于 Zencart 电子商务框架
功能
- 允许不同的插件最小化 JavaScript 冲突
- 通过最小化和合并 CSS/JavaScript 文件来加速网站性能
- 加载位于根文件夹外的文件
- 从模板文件内部加载文件
- 尽可能晚地加载 JavaScript 文件(以加快页面渲染速度)
安装
先决条件
您必须先安装我们的 Zencart 插件框架(ZePLUF),才能使用此插件:https://github.com/yellow1912/ZenCartPluginFramework
如果您没有 ZePLUF,请使用此模块的主分支,它适用于没有 ZePLUF 的用户
安装非常简单
- 只需将此插件放入 plugins/ 文件夹中(如果您安装了 ZePLUF,则应该有此文件夹)
- 打开 plugins/settings.yaml 文件,并将 riCjLoader 添加到前端预加载列表中(我们正在努力使此步骤更加简单)
- 打开 includes/templates/your-current-templates/common/html_header.php 文件。如果没有,可以从 template_default/ 文件夹中复制。
查找
/**
* load all template-specific stylesheets, named like "style*.css", alphabetically
*/
删除找到 </head>
之前的所有内容
如需帮助和专业安装,请联系我们:http://helpdesk.rubikintegration.com
用法
从任何模板文件中加载
$view['loader']->load(array($array_of_files_to_load), $location, $silent)
$location
是可选的,您可以传递 "head"、"footer" 或什么都不传。注意,CSS 文件始终在头部加载。
$silent
是可选的,您可以传递布尔值,默认值为 false。此参数允许您告诉 cjloader 不要在该特定位置打印出加载器容器,更多内容将在后面解释。
正确格式的 $array_of_files_to_load
array('filename1.php' => array('type' => 'css'), 'filename3.css', 'filename2.js')
每个文件名之后的数组是可选的,通常仅在您想加载 PHP 文件时需要,此时您必须指定文件的类型
注意
- 文件可能不会在确切的位置加载,加载器可能会决定在可能的位置加载文件。
- 文件将按照数组中给出的确切顺序加载。例如,如果您传递 array('abc.js', 'def.js'),则 abc.js 将在 def.js 之前加载。
- 如果多个插件/模板文件请求加载同一个文件,则该文件只会在最早的位置加载一次,以确保可供其他程序使用。
- 如果您在一个位置需要加载一个文件,比如 my_file.js,并且该文件需要 abc.lib js 运行,那么您应该始终将 abc.js 也放入加载列表中(即使您可能知道之前已经请求了 jquery.js)。不要担心,加载器会做艰苦的工作,并决定为您加载的位置,并且只会加载一次。
加载内联 CSS/JS
您可以使用我们的加载器轻松加载内联 CSS 和 JS,有两种方法
假设我们需要在这里加载内联 JS,同时也使用 jQuery:$view['loader']->load(array('jquery.lib', 'inline.js' => array('inline' => '$("#test".html("test"))')))
请注意,在上面的示例代码中,我们将 inline.js 放在了文件名中,你可以使用任何名称,但必须使用正确的扩展名(js 或 css)。如果你在多个加载位置使用了相同的名称 inline.js,请不要担心,它们都会被加载。
第二种方式加载内联 css/js
使用上述示例
$view['loader']->load(array('jquery.lib'));
$view['loader']->startInline();
?>
$("#test".html("test"))
<?php
$view['loader']->endInline();
库
如果你查看上述示例,可能会注意到有时我使用了 jquery.lib,.lib 扩展名将告诉加载器加载 jquery 库(所有库目前都定义在 riCjLoader/configs/ 文件夹中。库允许你指定多个版本以及多个文件(包括 css 和 js)。例如,请求 jquery.ui.lib 将为你加载 css 和 js 文件。