public function assets(Kwf_Assets_Package $assetsPackage, $language = null) { if (!$language) { $language = Kwf_Trl::getInstance()->getTargetLanguage(); } $indent = str_repeat(' ', 8); $ret = ''; foreach ($assetsPackage->getPackageUrls('text/css', $language) as $file) { $ret .= "{$indent}<link rel=\"stylesheet\" type=\"text/css\" href=\"" . htmlspecialchars($file) . "\" />\n"; } foreach ($assetsPackage->getPackageUrls('text/css; media=print', $language) as $file) { $ret .= "{$indent}<link rel=\"stylesheet\" type=\"text/css\" href=\"" . htmlspecialchars($file) . "\" "; if (!Kwf_Config::getValue('debug.assets.usePrintCssForAllMedia')) { $ret .= "media=\"print\" "; } $ret .= "/>\n"; } foreach ($assetsPackage->getPackageUrls('text/javascript', $language) as $file) { $ret .= "{$indent}<script type=\"text/javascript\" src=\"" . htmlspecialchars($file) . "\"></script>\n"; } foreach ($assetsPackage->getPackageUrls('text/javascript; defer', $language) as $file) { $ret .= "<script type=\"text/javascript\">\n var se=document.createElement('script');se.type='text/javascript';se.async=true;\n se.src='" . $file . "';\n var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(se,s);\n </script>"; } return $ret; }
public function testPackageUrlsNoDefer() { $p = new Kwf_Assets_Package($this->_list, 'C'); $urls = $p->getPackageUrls('text/javascript', 'en'); $this->assertCount(1, $urls); $urls = $p->getPackageUrls('text/javascript; defer', 'en'); $this->assertCount(0, $urls); }
public function setAssetsPackage(Kwf_Assets_Package $package) { $t = Kwf_Model_Abstract::getInstance(Kwc_Abstract::getSetting($this->getClass(), 'stylesModel')); $urls = $package->getPackageUrls('text/css', Kwf_Trl::getInstance()->getTargetLanguage()); $styleEditorUrl = Kwc_Admin::getInstance($this->getClass())->getControllerUrl() . '/styles-content'; $styleEditorUrl .= '?t=' . $t->getMTime(); $urls[] = $styleEditorUrl; $this->fields['content']->setStylesCssFile($styleEditorUrl); $this->fields['content']->setCssFiles($urls); }
public function testPackageDispatch() { $package = new Kwf_Assets_Package($this->_list, 'Test'); $urls = $package->getPackageUrls('text/javascript', 'en'); $this->assertEquals(1, count($urls)); $url = $urls[0]; $output = Kwf_Assets_Dispatcher::getInstance()->getOutputForUrl($url, Kwf_Media_Output::ENCODING_NONE); $contents = trim($output['contents']); $contents = str_replace("\n\n", "\n", $contents); $this->assertRegExp("/^foo2;\nbar2;\nfoo;\nbar;\n\\/\\/# sourceMappingURL=/", $contents); }