Skip to content

Commit 6ff0dc4

Browse files
committed
Merge pull request #6 from mlavrinenko/master
Багфиксы
2 parents 6a93471 + 710071e commit 6ff0dc4

2 files changed

Lines changed: 41 additions & 30 deletions

File tree

readme.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,20 @@ vendor:component_name[:template[:specific_template_file]]
3333
'value' => array(
3434
'tools' => array(
3535
'twig' => array(
36-
array(
37-
// Режим отладки выключен
38-
'debug' => false,
39-
40-
//Кодировка соответствует кодировке продукта
41-
'charset' => SITE_CHARSET,
42-
43-
//кеш хранится в уникальной директории
44-
'cache' => $_SERVER['DOCUMENT_ROOT'] . '/bitrix/cache/maximaster/tools.twig',
45-
46-
//Автообновление включается только в момент очистки кеша
47-
'auto_reload' => isset( $_GET[ 'clear_cache' ] ) && strtoupper($_GET[ 'clear_cache' ]) == 'Y',
48-
49-
//Автоэскейп отключен, т.к. битрикс по-умолчанию его сам делает
50-
'autoescape' => false,
51-
)
36+
// Режим отладки выключен
37+
'debug' => false,
38+
39+
//Кодировка соответствует кодировке продукта
40+
'charset' => SITE_CHARSET,
41+
42+
//кеш хранится в уникальной директории
43+
'cache' => $_SERVER['DOCUMENT_ROOT'] . '/bitrix/cache/maximaster/tools.twig',
44+
45+
//Автообновление включается только в момент очистки кеша
46+
'auto_reload' => isset( $_GET[ 'clear_cache' ] ) && strtoupper($_GET[ 'clear_cache' ]) == 'Y',
47+
48+
//Автоэскейп отключен, т.к. битрикс по-умолчанию его сам делает
49+
'autoescape' => false,
5250
)
5351
)
5452
)

src/Maximaster/Tools/Twig/BitrixLoader.php

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,22 @@ class BitrixLoader extends \Twig_Loader_Filesystem implements \Twig_LoaderInterf
1818
*/
1919
function getSource($name)
2020
{
21-
/*if ($name == SITE_TEMPLATE_ID)
22-
{
23-
return $this->siteTemplate();
24-
}*/
21+
return file_get_contents($this->getSourcePath($name));
22+
}
2523

26-
$realFileName = $_SERVER[ 'DOCUMENT_ROOT' ] . $name;
27-
if (file_exists($realFileName))
28-
{
29-
return file_get_contents($realFileName);
30-
}
24+
function getSourcePath($name)
25+
{
26+
/*if ($name == SITE_TEMPLATE_ID)
27+
{
28+
return $this->siteTemplate();
29+
}*/
3130

32-
return $this->componentTemplate($name);
33-
}
31+
$realFileName = $_SERVER[ 'DOCUMENT_ROOT' ] . $name;
32+
if (file_exists($realFileName))
33+
return $realFileName;
34+
35+
return $this->getComponentTemplatePath($name);
36+
}
3437

3538
function getCacheKey($name)
3639
{
@@ -40,13 +43,23 @@ function getCacheKey($name)
4043
/**
4144
* Не использовать в продакшене!!
4245
* Метод используется только в режиме разработки или при использовании опции auto_reload = true
46+
* @param string $name Путь к шаблону
47+
* @param int $time Время изменения закешированного шаблона
48+
* @return bool Актуален ли закешированный шаблон
4349
*/
4450
function isFresh($name, $time)
4551
{
46-
return filemtime($this->getSource($name)) <= $time;
52+
return filemtime($this->getSourcePath($name)) <= $time;
4753
}
4854

49-
private function componentTemplate($name)
55+
/**
56+
* По Битрикс-имени шаблона возвращает путь к его файлу
57+
*
58+
* @param string $name
59+
* @return string
60+
* @throws \Twig_Error_Loader
61+
*/
62+
private function getComponentTemplatePath($name)
5063
{
5164
list($namespace, $component, $template, $file) = explode(':', $name);
5265

@@ -74,7 +87,7 @@ private function componentTemplate($name)
7487
throw new \Twig_Error_Loader("Не удалось найти шаблон '{$name}'");
7588
}
7689

77-
return file_get_contents($templatePath);
90+
return $templatePath;
7891
}
7992

8093
/*

0 commit comments

Comments
 (0)