Merge pull request #232 from gmorel/master
Add ability to load assets from another template …
This commit is contained in:
@@ -84,12 +84,28 @@ class SmartyAssetsManager
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve asset URL
|
||||||
|
*
|
||||||
|
* @param string $assetType js|css|image
|
||||||
|
* @param array $params Parameters
|
||||||
|
* - file File path in the default template
|
||||||
|
* - source module asset
|
||||||
|
* - filters filter to apply
|
||||||
|
* - debug
|
||||||
|
* - template if you want to load asset from another template
|
||||||
|
* @param \Smarty_Internal_Template $template Smarty Template
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws \Exception
|
||||||
|
*/
|
||||||
public function computeAssetUrl($assetType, $params, \Smarty_Internal_Template $template)
|
public function computeAssetUrl($assetType, $params, \Smarty_Internal_Template $template)
|
||||||
{
|
{
|
||||||
$file = $params['file'];
|
$file = $params['file'];
|
||||||
$assetOrigin = isset($params['source']) ? $params['source'] : "0";
|
$assetOrigin = isset($params['source']) ? $params['source'] : "0";
|
||||||
$filters = isset($params['filters']) ? $params['filters'] : '';
|
$filters = isset($params['filters']) ? $params['filters'] : '';
|
||||||
$debug = isset($params['debug']) ? trim(strtolower($params['debug'])) == 'true' : false;
|
$debug = isset($params['debug']) ? trim(strtolower($params['debug'])) == 'true' : false;
|
||||||
|
$webAssetTemplate = isset($params['template']) ? $params['template'] : false;
|
||||||
|
|
||||||
/* we trick here relative thinking for file attribute */
|
/* we trick here relative thinking for file attribute */
|
||||||
$file = ltrim($file, '/');
|
$file = ltrim($file, '/');
|
||||||
@@ -98,7 +114,8 @@ class SmartyAssetsManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
$smartyParser = $template->smarty;
|
$smartyParser = $template->smarty;
|
||||||
$templateDefinition = $smartyParser->getTemplateDefinition();
|
/** @var \Thelia\Core\Template\Smarty\SmartyParser $templateDefinition */
|
||||||
|
$templateDefinition = $smartyParser->getTemplateDefinition($webAssetTemplate);
|
||||||
|
|
||||||
$templateDirectories = $smartyParser->getTemplateDirectories($templateDefinition->getType());
|
$templateDirectories = $smartyParser->getTemplateDirectories($templateDefinition->getType());
|
||||||
|
|
||||||
|
|||||||
@@ -176,9 +176,25 @@ class SmartyParser extends Smarty implements ParserInterface
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTemplateDefinition()
|
/**
|
||||||
|
* Get template definition
|
||||||
|
*
|
||||||
|
* @param bool $webAssetTemplate Allow to load asset from another template
|
||||||
|
* If the name of the template if provided
|
||||||
|
*
|
||||||
|
* @return TemplateDefinition
|
||||||
|
*/
|
||||||
|
public function getTemplateDefinition($webAssetTemplate = false)
|
||||||
{
|
{
|
||||||
return $this->templateDefinition;
|
$ret = $this->templateDefinition;
|
||||||
|
if (false !== $webAssetTemplate) {
|
||||||
|
$customPath = str_replace($ret->getName(), $webAssetTemplate, $ret->getPath());
|
||||||
|
$ret->setName($webAssetTemplate);
|
||||||
|
$ret->setPath($customPath);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTemplate()
|
public function getTemplate()
|
||||||
|
|||||||
Reference in New Issue
Block a user