diff --git a/local/modules/DebugBar/Smarty/Plugin/DebugBar.php b/local/modules/DebugBar/Smarty/Plugin/DebugBar.php index 9a333b1d6..70a896433 100644 --- a/local/modules/DebugBar/Smarty/Plugin/DebugBar.php +++ b/local/modules/DebugBar/Smarty/Plugin/DebugBar.php @@ -26,6 +26,7 @@ use Thelia\Core\Template\Smarty\AbstractSmartyPlugin; use Thelia\Core\Template\Smarty\an; use Thelia\Core\Template\Smarty\SmartyPluginDescriptor; use DebugBar\DebugBar as BaseDebugBar; +use Thelia\Tools\URL; /** * Class DebugBar @@ -52,12 +53,63 @@ class DebugBar extends AbstractSmartyPlugin return $render; } + public function renderCss($params, \Smarty_Internal_Template $template) + { + $render = ""; + if($this->debugMode) + { + $webFile = "cache/debugbar.css"; + $cssFile = THELIA_WEB_DIR ."/".$webFile; + + if(!file_exists($cssFile)) { + $javascriptRenderer = $this->debugBar->getJavascriptRenderer(); + $assetCss = $javascriptRenderer->getAsseticCollection("css"); + + foreach($assetCss->all() as $asset) { + if(strpos($asset->getSourcePath(), "font-awesome") !== false) { + $assetCss->removeLeaf($asset); + } + } + + file_put_contents($cssFile, $assetCss->dump()); + } + $render = sprintf('', URL::getInstance()->absoluteUrl($webFile, array(), URL::PATH_TO_FILE)); + } + return $render; + } + + public function renderJs($params, \Smarty_Internal_Template $template) + { + $render = ""; + if($this->debugMode) + { + $webFile = "cache/debugbar.js"; + $cacheFile = THELIA_WEB_DIR ."/".$webFile; + + if (!file_exists($cacheFile)) { + $javascriptRenderer = $this->debugBar->getJavascriptRenderer(); + $assetJs = $javascriptRenderer->getAsseticCollection("js"); + + foreach($assetJs->all() as $asset) { + if(strpos($asset->getSourcePath(), "jquery") !== false) { + $assetJs->removeLeaf($asset); + } + } + + file_put_contents($cacheFile, $assetJs->dump()); + } + + $render = sprintf('', URL::getInstance()->absoluteUrl($webFile, array(), URL::PATH_TO_FILE)); + } + return $render; + } + public function renderHead($params, \Smarty_Internal_Template $template) { $render = ""; if ($this->debugMode) { $javascriptRenderer = $this->debugBar->getJavascriptRenderer(); - $assets = $javascriptRenderer->getAsseticCollection(); + $assets = $javascriptRenderer->getAssets(); $cssCollection = $assets[0]; $jsCollection = $assets[1]; @@ -75,8 +127,9 @@ class DebugBar extends AbstractSmartyPlugin public function getPluginDescriptors() { return array( - new SmartyPluginDescriptor("function", "debugbar_renderHead", $this, "renderHead"), - new SmartyPluginDescriptor("function", "debugbar_render", $this, "render") + new SmartyPluginDescriptor("function", "debugbar_rendercss", $this, "renderCss"), + new SmartyPluginDescriptor("function", "debugbar_renderjs", $this, "renderJs"), + new SmartyPluginDescriptor("function", "debugbar_renderresult", $this, "render") ); } } \ No newline at end of file diff --git a/templates/default/layout.tpl b/templates/default/layout.tpl index 8cd5d0129..fccd4dfb8 100644 --- a/templates/default/layout.tpl +++ b/templates/default/layout.tpl @@ -30,7 +30,7 @@ URL: http://www.thelia.net {stylesheets file='assets/less/styles.less' filters='less,cssembed'} {/stylesheets} - + {debugbar_rendercss} {block name="stylesheet"}{/block} @@ -397,6 +397,9 @@ URL: http://www.thelia.net {/javascripts} +{debugbar_renderjs} +{debugbar_renderresult} +