Commit | Line | Data |
---|---|---|
4bcd4c62 TO |
1 | <?php |
2 | namespace Civi\Setup; | |
3 | ||
4 | class SmartyUtil { | |
5 | ||
6 | /** | |
7 | * Create a Smarty instance. | |
8 | * | |
9 | * @return \Smarty | |
10 | */ | |
11 | public static function createSmarty($srcPath) { | |
12 | require_once 'CRM/Core/I18n.php'; | |
13 | ||
14 | $packagePath = PackageUtil::getPath($srcPath); | |
15 | require_once $packagePath . DIRECTORY_SEPARATOR . 'Smarty' . DIRECTORY_SEPARATOR . 'Smarty.class.php'; | |
16 | ||
17 | $smarty = new \Smarty(); | |
18 | $smarty->template_dir = implode(DIRECTORY_SEPARATOR, [$srcPath, 'xml', 'templates']); | |
19 | $smarty->plugins_dir = [ | |
20 | implode(DIRECTORY_SEPARATOR, [$packagePath, 'Smarty', 'plugins']), | |
21 | implode(DIRECTORY_SEPARATOR, [$srcPath, 'CRM', 'Core', 'Smarty', 'plugins']), | |
22 | ]; | |
23 | $smarty->compile_dir = \Civi\Setup\FileUtil::createTempDir('templates_c'); | |
24 | $smarty->clear_all_cache(); | |
25 | ||
26 | // CRM-5308 / CRM-3507 - we need {localize} to work in the templates | |
27 | require_once implode(DIRECTORY_SEPARATOR, [$srcPath, 'CRM', 'Core', 'Smarty', 'plugins', 'block.localize.php']); | |
28 | $smarty->register_block('localize', 'smarty_block_localize'); | |
29 | $smarty->assign('gencodeXmlDir', "$srcPath/xml"); | |
30 | ||
31 | return $smarty; | |
32 | } | |
33 | ||
34 | } |