파일이름으로 unload 할 수 없도록 변경 (호환성 파괴 위험성이 크므로)
This commit is contained in:
conory 2018-08-03 12:32:42 +09:00
parent 798480df01
commit 30e0a5c583
4 changed files with 64 additions and 91 deletions

View file

@ -2101,7 +2101,7 @@ class Context
}
/**
* unload basic files that load in HTMLDisplayHandler (filename|all|common|admin|mobile)
* unload basic files that load in HTMLDisplayHandler (all|css/rhymix|css/mobile|js/jquery|js/rhymix)
*
* @return void
*/

View file

@ -239,18 +239,7 @@ class HTMLDisplayHandler
Context::set('content', $output);
// load basic files
if(!in_array('all', Context::getUnloadedBasicFiles()))
{
if(Mobile::isFromMobilePhone())
{
$this->_loadMobileJSCSS();
}
else
{
$this->_loadDesktopJSCSS();
}
$this->_loadCommonJSCSS();
}
$this->_loadBasicJSCSS();
// set common layout
$output = TemplateHandler::getInstance()->compile('common/tpl', 'common_layout');
@ -562,99 +551,75 @@ class HTMLDisplayHandler
Context::addOpenGraphData('og:article:modified_time', $oDocument->getUpdate('c'));
}
}
/**
* import basic .js files.
* @return void
*/
private function _loadDesktopJSCSS()
{
// add admin css
if(!in_array('admin', Context::getUnloadedBasicFiles()))
{
if(Context::get('module') == 'admin' || strpos(Context::get('act'), 'Admin') > 0)
{
$this->_loadBasicFile('modules/admin/tpl/css/admin.css', 10);
$this->_loadBasicFile('modules/admin/tpl/css/admin.iefix.css', 10, '', true);
$this->_loadBasicFile('modules/admin/tpl/css/admin.bootstrap.css', 1);
$this->_loadBasicFile('modules/admin/tpl/js/admin.js');
$this->_loadBasicFile('modules/admin/tpl/js/jquery.tmpl.js', 1);
$this->_loadBasicFile('modules/admin/tpl/js/jquery.jstree.js', 1);
}
}
}
/**
* import basic .js files for mobile
*/
private function _loadMobileJSCSS()
{
if(in_array('mobile', Context::getUnloadedBasicFiles()))
{
return;
}
$this->_loadBasicFile('common/css/mobile.css', -1500000000);
}
/**
* import common .js and .css files for (both desktop and mobile)
*/
private function _loadCommonJSCSS()
private function _loadBasicJSCSS()
{
if(in_array('common', Context::getUnloadedBasicFiles()))
if(in_array('all', Context::getUnloadedBasicFiles()))
{
return;
}
$jquery_version = preg_match('/MSIE [5-8]\./', $_SERVER['HTTP_USER_AGENT']) ? self::JQUERY_V1 : self::JQUERY_V2;
$original_file_list = array(
'plugins/jquery.migrate/jquery-migrate-1.4.1.min.js',
'plugins/blankshield/blankshield.min.js',
'plugins/uri/URI.min.js',
'x.js',
'common.js',
'js_app.js',
'xml_handler.js',
'xml_js_filter.js',
);
$this->_loadBasicFile('common/css/rhymix.less', -1600000000);
$this->_loadBasicFile('common/js/jquery-' . $jquery_version . (config('view.minify_scripts') !== 'none' ? '.min' : '') . '.js', -1800000000, 'head');
if(config('view.minify_scripts') === 'none')
if(!in_array('css/rhymix', Context::getUnloadedBasicFiles()))
{
foreach($original_file_list as $filename)
{
$this->_loadBasicFile('common/js/' . $filename, -1700000000, 'head');
}
$this->_loadBasicFile('common/css/rhymix.less', -1600000000);
}
else
if(!in_array('css/mobile', Context::getUnloadedBasicFiles()) && Mobile::isFromMobilePhone())
{
$concat_target_filename = 'files/cache/assets/minified/rhymix.min.js';
if(file_exists(\RX_BASEDIR . $concat_target_filename))
$this->_loadBasicFile('common/css/mobile.css', -1500000000);
}
if(!in_array('js/jquery', Context::getUnloadedBasicFiles()))
{
$jquery_version = preg_match('/MSIE [5-8]\./', $_SERVER['HTTP_USER_AGENT']) ? self::JQUERY_V1 : self::JQUERY_V2;
$this->_loadBasicFile('common/js/jquery-' . $jquery_version . (config('view.minify_scripts') !== 'none' ? '.min' : '') . '.js', -1800000000, 'head');
}
if(!in_array('js/rhymix', Context::getUnloadedBasicFiles()))
{
$original_file_list = array(
'plugins/jquery.migrate/jquery-migrate-1.4.1.min.js',
'plugins/blankshield/blankshield.min.js',
'plugins/uri/URI.min.js',
'x.js',
'common.js',
'js_app.js',
'xml_handler.js',
'xml_js_filter.js',
);
if(config('view.minify_scripts') === 'none')
{
$original_mtime = 0;
$concat_target_mtime = filemtime(\RX_BASEDIR . $concat_target_filename);
foreach($original_file_list as $filename)
{
$original_mtime = max($original_mtime, filemtime(\RX_BASEDIR . 'common/js/' . $filename));
}
if($concat_target_mtime > $original_mtime)
{
$no_renew = true;
$this->_loadBasicFile('common/js/' . $filename, -1700000000, 'head');
}
}
if(!isset($no_renew))
else
{
$target_file_list = array();
foreach($original_file_list as $filename)
$concat_target_filename = 'files/cache/assets/minified/rhymix.min.js';
if(file_exists(\RX_BASEDIR . $concat_target_filename))
{
$target_file_list[] = \RX_BASEDIR . 'common/js/' . $filename;
$original_mtime = 0;
$concat_target_mtime = filemtime(\RX_BASEDIR . $concat_target_filename);
foreach($original_file_list as $filename)
{
$original_mtime = max($original_mtime, filemtime(\RX_BASEDIR . 'common/js/' . $filename));
}
if($concat_target_mtime > $original_mtime)
{
$no_renew = true;
}
}
Rhymix\Framework\Formatter::minifyJS($target_file_list, \RX_BASEDIR . $concat_target_filename);
if(!isset($no_renew))
{
$target_file_list = array();
foreach($original_file_list as $filename)
{
$target_file_list[] = \RX_BASEDIR . 'common/js/' . $filename;
}
Rhymix\Framework\Formatter::minifyJS($target_file_list, \RX_BASEDIR . $concat_target_filename);
}
$this->_loadBasicFile($concat_target_filename, -1700000000, 'head');
}
$this->_loadBasicFile($concat_target_filename, -1700000000, 'head');
}
}
@ -663,10 +628,6 @@ class HTMLDisplayHandler
*/
private function _loadBasicFile($filename, $index = 0, $type = '', $ie = false)
{
if(in_array(pathinfo($filename, PATHINFO_BASENAME), Context::getUnloadedBasicFiles()))
{
return;
}
Context::loadFile(array($filename, $type, $ie ? 'ie' : '', $index));
}
}

View file

@ -1,3 +1,9 @@
<load target="css/admin.bootstrap.css" />
<load target="css/admin.iefix.css" />
<load target="css/admin.css" />
<load target="js/admin.js" />
<load target="js/jquery.tmpl.js" />
<load target="js/jquery.jstree.js" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=2, user-scalable=yes" />
<script>

View file

@ -1,3 +1,9 @@
<load target="css/admin.bootstrap.css" />
<load target="css/admin.iefix.css" />
<load target="css/admin.css" />
<load target="js/admin.js" />
<load target="js/jquery.tmpl.js" />
<load target="js/jquery.jstree.js" />
<div class="x">
<div class="content" id="content">
{$content}