use vendor JS directly instead of copy-pasting

This commit is contained in:
Shish 2018-11-07 14:01:14 +00:00
parent f772b30301
commit 9e795f41a7
6 changed files with 24 additions and 70 deletions

View File

@ -9,7 +9,7 @@ RUN apt install -y composer imagemagick vim
COPY composer.json /app/ COPY composer.json /app/
WORKDIR /app WORKDIR /app
RUN mkdir -p lib/vendor/css lib/vendor/js lib/vendor/swf data/config RUN mkdir -p data/config
RUN composer install RUN composer install
COPY . /app/ COPY . /app/

View File

@ -24,6 +24,7 @@
"require" : { "require" : {
"php" : ">=7.1", "php" : ">=7.1",
"ext-pdo": "*",
"flexihash/flexihash" : "^2.0.0", "flexihash/flexihash" : "^2.0.0",
"ifixit/php-akismet" : "1.*", "ifixit/php-akismet" : "1.*",
@ -36,36 +37,10 @@
"bower-asset/jquery-timeago" : "1.5.2", "bower-asset/jquery-timeago" : "1.5.2",
"bower-asset/tablesorter" : "dev-master", "bower-asset/tablesorter" : "dev-master",
"bower-asset/mediaelement" : "2.21.1", "bower-asset/mediaelement" : "2.21.1",
"bower-asset/js-cookie" : "2.1.1", "bower-asset/js-cookie" : "2.1.1"
"ext-pdo": "*"
}, },
"require-dev" : { "require-dev" : {
"phpunit/phpunit" : "6.*" "phpunit/phpunit" : "6.*"
},
"vendor-copy": {
"vendor/bower-asset/jquery/dist/jquery.min.js" : "lib/vendor/js/jquery-1.12.3.min.js",
"vendor/bower-asset/jquery/dist/jquery.min.map" : "lib/vendor/js/jquery-1.12.3.min.map",
"vendor/bower-asset/jquery-timeago/jquery.timeago.js" : "lib/vendor/js/jquery.timeago.js",
"vendor/bower-asset/tablesorter/jquery.tablesorter.min.js" : "lib/vendor/js/jquery.tablesorter.min.js",
"vendor/bower-asset/mediaelement/build/flashmediaelement.swf" : "lib/vendor/swf/flashmediaelement.swf",
"vendor/bower-asset/js-cookie/src/js.cookie.js" : "lib/vendor/js/js.cookie.js"
},
"scripts": {
"pre-install-cmd" : [
"php -r \"array_map('unlink', array_merge(glob('lib/vendor/js/j*.{js,map}', GLOB_BRACE), glob('lib/vendor/css/*.css'), glob('lib/vendor/swf/*.swf')));\""
],
"pre-update-cmd" : [
"php -r \"array_map('unlink', array_merge(glob('lib/vendor/js/j*.{js,map}', GLOB_BRACE), glob('lib/vendor/css/*.css'), glob('lib/vendor/swf/*.swf')));\""
],
"post-install-cmd" : [
"php -r \"array_map('copy', array_keys(json_decode(file_get_contents('composer.json'), TRUE)['vendor-copy']), json_decode(file_get_contents('composer.json'), TRUE)['vendor-copy']);\""
],
"post-update-cmd" : [
"php -r \"array_map('copy', array_keys(json_decode(file_get_contents('composer.json'), TRUE)['vendor-copy']), json_decode(file_get_contents('composer.json'), TRUE)['vendor-copy']);\""
]
} }
} }

View File

@ -27,7 +27,7 @@ date_default_timezone_set('UTC');
<title>Shimmie Installation</title> <title>Shimmie Installation</title>
<link rel="shortcut icon" href="lib/static/favicon.ico"> <link rel="shortcut icon" href="lib/static/favicon.ico">
<link rel="stylesheet" href="lib/shimmie.css" type="text/css"> <link rel="stylesheet" href="lib/shimmie.css" type="text/css">
<script type="text/javascript" src="lib/vendor/js/jquery-1.12.3.min.js"></script> <script type="text/javascript" src="vendor/bower-asset/jquery/dist/jquery.min.js"></script>
</head> </head>
<body> <body>
<?php if(FALSE) { ?> <?php if(FALSE) { ?>

View File

@ -333,33 +333,17 @@ class Page {
} }
/*** Generate CSS cache files ***/ /*** Generate CSS cache files ***/
$css_lib_latest = $config_latest;
$css_lib_files = zglob("lib/vendor/css/*.css");
foreach($css_lib_files as $css) {
$css_lib_latest = max($css_lib_latest, filemtime($css));
}
$css_lib_md5 = md5(serialize($css_lib_files));
$css_lib_cache_file = data_path("cache/style.lib.{$theme_name}.{$css_lib_latest}.{$css_lib_md5}.css");
if(!file_exists($css_lib_cache_file)) {
$css_lib_data = "";
foreach($css_lib_files as $file) {
$file_data = file_get_contents($file);
$pattern = '/url[\s]*\([\s]*["\']?([^"\'\)]+)["\']?[\s]*\)/';
$replace = 'url("../../'.dirname($file).'/$1")';
$file_data = preg_replace($pattern, $replace, $file_data);
$css_lib_data .= $file_data . "\n";
}
file_put_contents($css_lib_cache_file, $css_lib_data);
}
$this->add_html_header("<link rel='stylesheet' href='$data_href/$css_lib_cache_file' type='text/css'>", 43);
$css_latest = $config_latest; $css_latest = $config_latest;
$css_files = array_merge(zglob("lib/shimmie.css"), zglob("ext/{".ENABLED_EXTS."}/style.css"), zglob("themes/$theme_name/style.css")); $css_files = array_merge(
zglob("lib/shimmie.css"),
zglob("ext/{".ENABLED_EXTS."}/style.css"),
zglob("themes/$theme_name/style.css"),
);
foreach($css_files as $css) { foreach($css_files as $css) {
$css_latest = max($css_latest, filemtime($css)); $css_latest = max($css_latest, filemtime($css));
} }
$css_md5 = md5(serialize($css_files)); $css_md5 = md5(serialize($css_files));
$css_cache_file = data_path("cache/style.main.{$theme_name}.{$css_latest}.{$css_md5}.css"); $css_cache_file = data_path("cache/style.{$theme_name}.{$css_latest}.{$css_md5}.css");
if(!file_exists($css_cache_file)) { if(!file_exists($css_cache_file)) {
$css_data = ""; $css_data = "";
foreach($css_files as $file) { foreach($css_files as $file) {
@ -374,29 +358,24 @@ class Page {
$this->add_html_header("<link rel='stylesheet' href='$data_href/$css_cache_file' type='text/css'>", 100); $this->add_html_header("<link rel='stylesheet' href='$data_href/$css_cache_file' type='text/css'>", 100);
/*** Generate JS cache files ***/ /*** Generate JS cache files ***/
$js_lib_latest = $config_latest;
$js_lib_files = zglob("lib/vendor/js/*.js");
foreach($js_lib_files as $js) {
$js_lib_latest = max($js_lib_latest, filemtime($js));
}
$js_lib_md5 = md5(serialize($js_lib_files));
$js_lib_cache_file = data_path("cache/script.lib.{$theme_name}.{$js_lib_latest}.{$js_lib_md5}.js");
if(!file_exists($js_lib_cache_file)) {
$js_data = "";
foreach($js_lib_files as $file) {
$js_data .= file_get_contents($file) . "\n";
}
file_put_contents($js_lib_cache_file, $js_data);
}
$this->add_html_header("<script src='$data_href/$js_lib_cache_file' type='text/javascript'></script>", 45);
$js_latest = $config_latest; $js_latest = $config_latest;
$js_files = array_merge(zglob("lib/shimmie.js"), zglob("ext/{".ENABLED_EXTS."}/script.js"), zglob("themes/$theme_name/script.js")); $js_files = array_merge(
[
"vendor/bower-asset/jquery/dist/jquery.min.js",
"vendor/bower-asset/jquery-timeago/jquery.timeago.js",
"vendor/bower-asset/tablesorter/jquery.tablesorter.min.js",
"vendor/bower-asset/js-cookie/src/js.cookie.js",
"lib/modernizr-3.3.1.custom.js",
],
zglob("lib/shimmie.js"),
zglob("ext/{".ENABLED_EXTS."}/script.js"),
zglob("themes/$theme_name/script.js")
);
foreach($js_files as $js) { foreach($js_files as $js) {
$js_latest = max($js_latest, filemtime($js)); $js_latest = max($js_latest, filemtime($js));
} }
$js_md5 = md5(serialize($js_files)); $js_md5 = md5(serialize($js_files));
$js_cache_file = data_path("cache/script.main.{$theme_name}.{$js_latest}.{$js_md5}.js"); $js_cache_file = data_path("cache/script.{$theme_name}.{$js_latest}.{$js_md5}.js");
if(!file_exists($js_cache_file)) { if(!file_exists($js_cache_file)) {
$js_data = ""; $js_data = "";
foreach($js_files as $file) { foreach($js_files as $file) {

View File

@ -9,7 +9,7 @@ class VideoFileHandlerTheme extends Themelet {
$full_url = make_http($ilink); $full_url = make_http($ilink);
$autoplay = $config->get_bool("video_playback_autoplay"); $autoplay = $config->get_bool("video_playback_autoplay");
$loop = $config->get_bool("video_playback_loop"); $loop = $config->get_bool("video_playback_loop");
$player = make_link('lib/vendor/swf/flashmediaelement.swf'); $player = make_link('vendor/bower-asset/mediaelement/build/flashmediaelement.swf');
$html = "Video not playing? <a href='$ilink'>Click here</a> to download the file.<br/>"; $html = "Video not playing? <a href='$ilink'>Click here</a> to download the file.<br/>";