diff --git a/classes/template/TemplateHandler.class.php b/classes/template/TemplateHandler.class.php index bc0c062c9..88a6dbe8b 100644 --- a/classes/template/TemplateHandler.class.php +++ b/classes/template/TemplateHandler.class.php @@ -389,15 +389,18 @@ if($cmd == 'import') $cmd = 'load'; } - $isRemoteFile = !!preg_match('@^https?://@i', $attr['target']); - - if(!$isRemoteFile && !preg_match('@^\.?/@',$attr['target'])) $attr['target'] = './'.$attr['target']; - $metafile = ''; $pathinfo = pathinfo($attr['target']); - $relativeDir = $this->_getRelativeDir($pathinfo['dirname']); - if(!$isRemoteFile) $attr['target'] = $relativeDir.'/'.$pathinfo['basename']; + $isRemoteFile = !!preg_match('@^https?://@i', $attr['target']); + + if(!$isRemoteFile) { + if(!preg_match('@^\.?/@',$attr['target'])) $attr['target'] = './'.$attr['target']; + + $relativeDir = $this->_getRelativeDir($pathinfo['dirname']); + + $attr['target'] = $relativeDir.'/'.$pathinfo['basename']; + } switch($pathinfo['extension']) { @@ -411,18 +414,19 @@ } break; case 'js': - if($cmd == 'unload') { - $result = "Context::unloadFile('{$attr['target']}','{$attr['targetie']}');"; + if($cmd == 'load') { + $metafile = $attr['target']; + $result = "\$__tmp=array('{$attr['target']}','{$attr['type']}','{$attr['targetie']}','{$attr['index']}','{$attr['usecdn']}','{$attr['cdnprefix']}','{$attr['cdnversion']}');Context::loadFile(\$__tmp);unset(\$__tmp);"; } else { - $result = "\$__tmp=array('{$attr['target']}','{$attr['media']}','{$attr['targetie']}','{$attr['index']}','{$attr['usecdn']}','{$attr['cdnprefix']}','{$attr['cdnversion']}');Context::loadFile(\$__tmp);unset(\$__tmp);"; + $result = "Context::unloadFile('{$attr['target']}','{$attr['targetie']}');"; } break; case 'css': - if($cmd == 'unload') { - $result = "Context::unloadFile('{$attr['target']}','{$attr['targetie']}','{$attr['media']}');"; - } else { + if($cmd == 'load') { $metafile = $attr['target']; - $result = "\$__tmp=array('{$attr['target']}','{$attr['type']}','{$attr['targetie']}','{$attr['index']}','{$attr['usecdn']}','{$attr['cdnprefix']}','{$attr['cdnversion']}');Context::loadFile(\$__tmp);unset(\$__tmp);"; + $result = "\$__tmp=array('{$attr['target']}','{$attr['media']}','{$attr['targetie']}','{$attr['index']}','{$attr['usecdn']}','{$attr['cdnprefix']}','{$attr['cdnversion']}');Context::loadFile(\$__tmp);unset(\$__tmp);"; + } else { + $result = "Context::unloadFile('{$attr['target']}','{$attr['targetie']}','{$attr['media']}');"; } break; } diff --git a/tests/classes/template/TemplateHandlerTest.class.php b/tests/classes/template/TemplateHandlerTest.class.php index 7b104f335..42759109c 100644 --- a/tests/classes/template/TemplateHandlerTest.class.php +++ b/tests/classes/template/TemplateHandlerTest.class.php @@ -103,11 +103,31 @@ class TemplateHandlerTest extends PHPUnit_Framework_TestCase '
This is another dummy
', 'compile(\'tests/classes\',\'sample.html\') ?>
This is another dummy
' ), + // + array( + '', + '' + ), // array( '', '' ), + // + array( + '', + '' + ), + // + array( + '', + '' + ), + // + array( + '', + '' + ), // comment array( '', @@ -118,12 +138,12 @@ class TemplateHandlerTest extends PHPUnit_Framework_TestCase '', 'foo){ ?>' ), - // relative path + // relative path1 array( '', '' ), - // relative path + // relative path2 array( '', '' @@ -136,7 +156,7 @@ class TemplateHandlerTest extends PHPUnit_Framework_TestCase // issue 103 array( '', - '' + '' ), // issue 135 array( @@ -156,7 +176,7 @@ class TemplateHandlerTest extends PHPUnit_Framework_TestCase */ public function testParse($tpl, $expected) { - $tmpl = new TemplateHandler(); + $tmpl = TemplateHandler::getInstance(); $tmpl->init(dirname(__FILE__), 'sample.html'); $result = $tmpl->parse($tpl, $expected);