-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzlocal-cdn.php
26 lines (26 loc) · 1.11 KB
/
zlocal-cdn.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
global $Wcms;
function replace_assets($args) {
global $Wcms;
$assets = [
"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css",
"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js",
"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js",
"https://cdn.jsdelivr.net/gh/robiso/[email protected]/wcms-admin.min.css",
"https://cdn.jsdelivr.net/gh/robiso/[email protected]/wcms-admin.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/build/output/taboverride.min.js",
"https://cdn.jsdelivr.net/npm/[email protected]/dist/autosize.min.js"
];
foreach($assets as $remote) {
$name = basename($remote);
$local = $Wcms->url("plugins/zlocal-cdn/assets/$name");
$args[0] = str_replace($remote, $local, $args[0]);
// Download files
if(!file_exists(__DIR__ . "/assets/$name")) {
file_put_contents(__DIR__ . "/assets/$name", file_get_contents($remote));
}
}
return $args;
}
$Wcms->addListener('js', 'replace_assets');
$Wcms->addListener('css', 'replace_assets');