*/
class DebugBar extends AbstractSmartyPlugin
{
protected $debugBar;
protected $debugMode;
public function __construct(BaseDebugBar $debugbar, $debugMode)
{
$this->debugBar = $debugbar;
$this->debugMode = $debugMode;
}
public function render($params, \Smarty_Internal_Template $template)
{
$render = "";
if ($this->debugMode) {
$render = $this->debugBar->getJavascriptRenderer()->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);
}
}
if(!file_exists(THELIA_WEB_DIR . "/cache")) {
@mkdir(THELIA_WEB_DIR . "/cache");
}
@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);
}
}
if(!file_exists(THELIA_WEB_DIR . "/cache")) {
@mkdir(THELIA_WEB_DIR . "/cache");
}
@file_put_contents($cacheFile, $assetJs->dump());
}
$render = sprintf('', URL::getInstance()->absoluteUrl($webFile, array(), URL::PATH_TO_FILE));
}
return $render;
}
/**
* @return an array of SmartyPluginDescriptor
*/
public function getPluginDescriptors()
{
return array(
new SmartyPluginDescriptor("function", "debugbar_rendercss", $this, "renderCss"),
new SmartyPluginDescriptor("function", "debugbar_renderjs", $this, "renderJs"),
new SmartyPluginDescriptor("function", "debugbar_renderresult", $this, "render")
);
}
}