refactor debugBar plugin
This commit is contained in:
@@ -26,6 +26,7 @@ use Thelia\Core\Template\Smarty\AbstractSmartyPlugin;
|
|||||||
use Thelia\Core\Template\Smarty\an;
|
use Thelia\Core\Template\Smarty\an;
|
||||||
use Thelia\Core\Template\Smarty\SmartyPluginDescriptor;
|
use Thelia\Core\Template\Smarty\SmartyPluginDescriptor;
|
||||||
use DebugBar\DebugBar as BaseDebugBar;
|
use DebugBar\DebugBar as BaseDebugBar;
|
||||||
|
use Thelia\Tools\URL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class DebugBar
|
* Class DebugBar
|
||||||
@@ -52,12 +53,63 @@ class DebugBar extends AbstractSmartyPlugin
|
|||||||
return $render;
|
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('<link rel="stylesheet" href="%s">', 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('<script src="%s"></script>', URL::getInstance()->absoluteUrl($webFile, array(), URL::PATH_TO_FILE));
|
||||||
|
}
|
||||||
|
return $render;
|
||||||
|
}
|
||||||
|
|
||||||
public function renderHead($params, \Smarty_Internal_Template $template)
|
public function renderHead($params, \Smarty_Internal_Template $template)
|
||||||
{
|
{
|
||||||
$render = "";
|
$render = "";
|
||||||
if ($this->debugMode) {
|
if ($this->debugMode) {
|
||||||
$javascriptRenderer = $this->debugBar->getJavascriptRenderer();
|
$javascriptRenderer = $this->debugBar->getJavascriptRenderer();
|
||||||
$assets = $javascriptRenderer->getAsseticCollection();
|
$assets = $javascriptRenderer->getAssets();
|
||||||
|
|
||||||
$cssCollection = $assets[0];
|
$cssCollection = $assets[0];
|
||||||
$jsCollection = $assets[1];
|
$jsCollection = $assets[1];
|
||||||
@@ -75,8 +127,9 @@ class DebugBar extends AbstractSmartyPlugin
|
|||||||
public function getPluginDescriptors()
|
public function getPluginDescriptors()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
new SmartyPluginDescriptor("function", "debugbar_renderHead", $this, "renderHead"),
|
new SmartyPluginDescriptor("function", "debugbar_rendercss", $this, "renderCss"),
|
||||||
new SmartyPluginDescriptor("function", "debugbar_render", $this, "render")
|
new SmartyPluginDescriptor("function", "debugbar_renderjs", $this, "renderJs"),
|
||||||
|
new SmartyPluginDescriptor("function", "debugbar_renderresult", $this, "render")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -30,7 +30,7 @@ URL: http://www.thelia.net
|
|||||||
{stylesheets file='assets/less/styles.less' filters='less,cssembed'}
|
{stylesheets file='assets/less/styles.less' filters='less,cssembed'}
|
||||||
<link rel="stylesheet" href="{$asset_url}">
|
<link rel="stylesheet" href="{$asset_url}">
|
||||||
{/stylesheets}
|
{/stylesheets}
|
||||||
|
{debugbar_rendercss}
|
||||||
{block name="stylesheet"}{/block}
|
{block name="stylesheet"}{/block}
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -397,6 +397,9 @@ URL: http://www.thelia.net
|
|||||||
<script src="{$asset_url}"></script>
|
<script src="{$asset_url}"></script>
|
||||||
{/javascripts}
|
{/javascripts}
|
||||||
|
|
||||||
|
{debugbar_renderjs}
|
||||||
|
{debugbar_renderresult}
|
||||||
|
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
<script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
|
|||||||
Reference in New Issue
Block a user