рдЦреЗрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ред Bitrix рдХреЛ рддреГрддреАрдп-рдкрдХреНрд╖ рдЖрдЙрдЯрдкреБрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рд╛рдордВрдЬрд╕реНрдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдореИрдВ рдХрд╛рдлреА рд╕рдордп рд╕реЗ PHP рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдЗрд╕ рджреМрд░рд╛рди рдореИрдВрдиреЗ рд╕реАрдЦрд╛ рдХрд┐ рдЗрд╕ рднрд╛рд╖рд╛ рдХрд╛ рд▓рд╛рдн рдХреИрд╕реЗ рдЙрдард╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ, рдЗрд╕рдХреА рдХрдорд┐рдпреЛрдВ рд╕реЗ рдмрдЪреЗрдВред рд▓реЗрдХрд┐рди рдЬреЛ рдореБрдЭреЗ PHP рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛, рд╡рд╣ рд╣реИ рдЗрд╕рдХрд╛ рдмрд┐рд▓реНрдЯ-рдЗрди рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрдиред "<? Php ...?>" рд╡рд░реНрдг рдФрд░ рдХреНрд░рд┐рдпрд╛ рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдЪреБрд░рддрд╛ рд╣рдбрд╝рддрд╛рд▓реА рд╣реИ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ PHP рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рддрд░реНрдХ рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рдкреГрдердХреНрдХрд░рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдпреЛрдЧрджрд╛рди рдирд╣реАрдВ рдХрд░рддреА рд╣реИред



рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рднрд╛рдЧреНрдп (рдФрд░ рд╡рд┐рдХрд╛рд╕ рд╕рдореБрджрд╛рдп, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ) рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд╣реВрдВ, рдПрдХ рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрдЦрдж рд╕рд┐рдВрдЯреИрдХреНрд╕ред рдЦреИрд░, рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдЙрдЪреНрдЪ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗрдВрджреНрд░ рдореЗрдВ PHP рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд┐рдореНрдлрдиреА 2 рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЯреНрд╡рд┐рдЧ рд╣рдорд╛рд░рд╛ рдкрд╕рдВрджреАрджрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдмрди рдЧрдпрд╛ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдлрд╛рдпрджреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЕрд╕реАрдорд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рднреА рд╣реИ, рдЬреЛ рдЕрдХреНрд╕рд░ рдХрд╛рдо рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред



рд▓реЗрдХрд┐рди рдЬреАрд╡рди рдореЗрдВ рдЕрдХреНрд╕рд░ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рд╣реИред рддреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд▓реЗрдХрд┐рди рдмрд▓реНрдХрд┐ рджрд┐рд▓рдЪрд╕реНрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореБрдЭ рдкрд░ рдЧрд┐рд░ рдЧрдИ, рдЬрд┐рд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдерд╛ ... рдмрд┐рдЯреНрд░рд┐рдХреНрд╕! рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ (рдФрд░ рд╕рдЪ рдирд╣реАрдВ рдерд╛) , рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдирдП рдЕрдиреБрднрд╡ рд╕реЗ рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╡ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд┐рдпрд╛, рд╕рдВрдЪрд┐рдд рдЬреНрдЮрд╛рди рдФрд░ рдХреМрд╢рд▓ рдХреЛ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╕рдВрджрд░реНрдн рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред

рдФрд░ рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдореИрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд╡рд╣ рдереА "рдЯреНрд╡рд┐рдЧреА" рддрд╛рдХрд┐ рджреЗрд╢реА рдЯреЗрдВрдкрд▓реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреАрдбрд╝рд╛ рди рд╣реЛред



рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдпрд╣ рдЖрдпрд╛ рд╣реИред



рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, Bitrix рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреЗрд╡рд▓ рдШрдЯрдХ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдЗрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЕрднреА рднреА PHP рдореЗрдВ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝рдВрдХреНрд╢рди (рд╣рд╛рдВ, рдпрд╣ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕, рдмреЗрдмреА) рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ред рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдЗрд╕ рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ:



function renderTwigTemplate($templateFile, $arResult, $arParams, $arLangMessages, $templateFolder, $parentTemplateFolder, $template) { echo TwigTemplateEngine::renderTemplate($templateFile, array( 'params' => $arParams, 'result' => $arResult, 'langMessages' => $arLangMessages, 'template' => $template, 'templateFolder' => $templateFolder, 'parentTemplateFolder' => $parentTemplateFolder, )); }
      
      







рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рд╛рде $arCustomTemplateEngines



рд╡реИрд╢реНрд╡рд┐рдХ рд╕рд░рдгреА рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:



 global $arCustomTemplateEngines; $arCustomTemplateEngines["twig"] = array( "templateExt" => array("twig"), "function" => "renderTwigTemplate" );
      
      







рдирддреАрдЬрддрди, рдЕрдЧрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд╛рдо рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ред рдШрдЯрдХ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рддреЛ renderTwigTemplate()



рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдЗрдирдкреБрдЯ рдкрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ: рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдФрд░ рдкрде, рдШрдЯрдХ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░, рдШрдЯрдХ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо, рдФрд░ред рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рд╕реНрдерд┐рд░рд╛рдВрдХред

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдПрдХ рдЕрдкреНрд░рд┐рдп рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ: рдпрджрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА .wig рдФрд░ template.php рдлрд╛рдЗрд▓реЗрдВ рдПрдХ рд╕рд╛рде рд╣реИрдВ, рддреЛ PHP рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЛ рдХрдиреЗрдХреНрдЯ / рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рд╕реБрдВрджрд░ рдирд┐рд╣рд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред



рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдкрдВрдЬреАрдХреГрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЗрдВрдЬрди рдХреЛ рдЦреБрдж рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред рдЯреНрд╡рд┐рдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдСрдЯреЛрд▓реИрдбрд░ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВ (рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреАрдмрдЧ рдореЛрдб рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреИрд╢ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рдЖрд╡рд╢реНрдпрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рдЗрд╕ рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ:



 class TwigTemplateEngine { private static $twigEnvironment; public static function initialize($templateRootPath, $cacheStoragePath) { Twig_Autoloader::register(); $debugModeOptionValue = COption::GetOptionString("htc.twigintegrationmodule", "debug_mode"); $debugMode = ($debugModeOptionValue == "Y") ? true : false; $loader = new Twig_Loader_Filesystem($templateRootPath); self::$twigEnvironment = new Twig_Environment($loader, array( 'autoescape' => false, 'cache' => $cacheStoragePath, 'debug' => $debugMode )); self::addExtensions(); global $arCustomTemplateEngines; $arCustomTemplateEngines["twig"] = array( "templateExt" => array("twig"), "function" => "renderTwigTemplate" ); } private static function addExtensions() { self::$twigEnvironment->addExtension(new Twig_Extension_Debug()); self::$twigEnvironment->addExtension(new BitrixTwigExtension()); } public static function renderTemplate($templateFile, array $context) { return self::$twigEnvironment->render($templateFile, $context); } public static function clearCacheFiles() { self::$twigEnvironment->clearCacheFiles(); } }
      
      







рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдФрд░ рд╡рд░реНрдЧ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ: рдЗрд╕рдореЗрдВ рд╕реЗрд╡рд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реА рддрд░рд╣, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Symfony2 рд╕реЗ рд╕реЗрд╡рд╛ рдХрдВрдЯреЗрдирд░ рдореЗрдВред



рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ () рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, Twig рдХрдиреЗрдХреНрд╢рди рдПрдХ рдЕрд▓рдЧ Bitrix рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдЗрд╕рдиреЗ рд╣рдореЗрдВ рд╕реАрдПрдордПрд╕ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдбреАрдмрдЧрд┐рдВрдЧ рдореЛрдб рдХреЛ рдбреАрдмрдЧ_рдореЛрдб рд╡рд┐рдХрд▓реНрдк рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд╕реЗрдЯрд┐рдВрдЧ рдкреГрд╖реНрда рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рд╣рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рдЫреЛрдЯреЗ рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдХреА рдЕрдиреБрдорддрд┐ рджреВрдВрдЧрд╛ рдЯреНрд╡рд┐рдЧ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рдЬрдм рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ PHP рдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рд╕рднреА рдХреЙрд▓ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрддреНрдкрдиреНрди рдХреЛрдб рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреИрд╢ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреИрд╢ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдХреИрд╢ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬрд╛рд░реА рдХрд░рддреЗ рд╕рдордп рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдХреИрд╢ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ Twig_Environment::clearCacheFiles()



рдкрджреНрдзрддрд┐ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рдорд╛рд░рд╛ рдореЙрдбреНрдпреВрд▓ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдПрдХ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп рдЯреНрд╡рд┐рдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдХреИрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ: рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, auto_reload рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдСрдЯреЛ_рд░рд▓реЛрдб рдХреЗ рдмрдЬрд╛рдп рдЖрдк рдбрд┐рдмрдЧ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХреИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╣реА рдкреНрд░рднрд╛рд╡ рд╣реЛрдЧрд╛, рдФрд░ рдЖрдкрдХреЛ рдЯреНрд╡рд┐рдЧ рдбреАрдмрдЧрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рднреА рджреЗрдЧрд╛ред

рд╡реИрд╕реЗ, Twig рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреИрд╢ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреИрд╢ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ PHP рдХреЛрдб рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдШрдЯрдХ рдХреЗ рдХрд╛рдо рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ рдЕрдк рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ред

рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдСрдЯреЛрд╕реНрдХреЛрдк рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЭреВрдард╛ рд╕реЗрдЯ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рд░рдХреНрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдЖрд░рдВрднрд┐рдХ рд╡рд┐рдзрд┐ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:



 CModule::AddAutoloadClasses( 'htc.twigintegrationmodule', array( 'TwigTemplateEngine' => 'classes/general/templating/TwigTemplateEngine.php', 'BitrixTwigExtension' => 'classes/general/templating/BitrixTwigExtension.php', 'Twig_Autoloader' => 'vendor/Twig/Autoloader.php', ) ); // Initialize Twig template engine $documentRoot = $_SERVER['DOCUMENT_ROOT']; $cacheStoragePathOption = COption::GetOptionString("htc.twigintegrationmodule", "cache_storage_path"); if ($cacheStoragePathOption == "") { $cacheStoragePath = $documentRoot . BX_PERSONAL_ROOT . "/cache/twig"; } else { $cacheStoragePath = $documentRoot . $cacheStoragePathOption; } TwigTemplateEngine::initialize($documentRoot, $cacheStoragePath);
      
      







рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕ рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреИрд╢ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрде рдХреЛ рдореЙрдбреНрдпреВрд▓ рд╕реЗрдЯрд┐рдВрдЧ рдкреЗрдЬ рдкрд░ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рддреЛ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдкрдВрдЬреАрдХреГрдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдФрд░ рдпрд╣рд╛рдБ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдмрд┐рдирд╛ рдиреБрдХрд╕рд╛рди рдХреЗред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрдХреНрд╕рд░ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдШрдЯрдХреЛрдВ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдХреБрдЫ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛рд░реНрдпреЛрдВ, рд╕рд╛рде рд╣реА рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ (рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рд╕реАрдПрдордПрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рд▓рд╛рдЧрдд) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЯреНрд╡рд┐рдЧ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдиреЛрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреИрдЧ, рдлрд╝рд┐рд▓реНрдЯрд░, рдлрд╝рдВрдХреНрд╢рди рдЖрджрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, BitrixTwigExtension



рдХреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрд╕реА рд╕рдордп, рд╣рдордиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдПрдкреАрдЖрдИ рдХрд╛ рдПрдХ рдиреНрдпреВрдирддрдо рд╕реЗрдЯ рдЫреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рдлрд┐рд░, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рдВрдмреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рдж рдХрд┐ рднрд╛рд╖рд╛ рдХрд╛рдВрд╕реНрдЯреЗрдВрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕реАрдПрдордПрд╕ рдХрд░реНрдиреЗрд▓ рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рднрд╛рд╖рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕рд╣рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рдорд╛рди рд╣реА рдирд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ PHP рдлрд╝рд╛рдЗрд▓ рд╢реЗрд╖ рд░рд╣рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЯреЗрдореНрдкрд▓реЗрдЯ .wig рдЯреЗрдореНрдкрд▓реЗрдЯ рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рднреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЦреИрд░, рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░, рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЖрдк рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдпрд╣ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рд╕рдмрд╕реЗ рдЕрдкреНрд░рд┐рдп рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рдЯреНрд╡рд┐рдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдХрдВрдкреЛрдиреЗрдВрдЯ_рдкрд┐рд▓реЙрдЧ рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ (рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХрд╛ рдЕрдВрддрд┐рдо рдЪрд░рдг, рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ)ред рдлрд┐рд░ рд╕реЗ, рдХрд░реНрдиреЗрд▓ рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди - рдФрд░ рдПрдХ рдФрд░ рдЖрд╢реНрдЪрд░реНрдп: Components_epilog рдХреЗрд╡рд▓ рджреЗрд╢реА рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ! рд╢рд╛рдпрдж, рдореБрдЭреЗ рдЕрднреА рддрдХ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдШрдЯрдХ_рдкрд┐рд▓реЙрдЧ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИ:



 function renderTwigTemplate($templateFile, $arResult, $arParams, $arLangMessages, $templateFolder, $parentTemplateFolder, $template) { echo TwigTemplateEngine::renderTemplate($templateFile, array( 'params' => $arParams, 'result' => $arResult, 'langMessages' => $arLangMessages, 'template' => $template, 'templateFolder' => $templateFolder, 'parentTemplateFolder' => $parentTemplateFolder, )); $component_epilog = $templateFolder . "/component_epilog.php"; if(file_exists($_SERVER["DOCUMENT_ROOT"].$component_epilog)) { $component = $template->__component; $component->SetTemplateEpilog(array( "epilogFile" => $component_epilog, "templateName" => $template->__name, "templateFile" => $template->__file, "templateFolder" => $template->__folder, "templateData" => false, )); } }
      
      







рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЖрдЦрд┐рд░рдХрд╛рд░ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╕рдорд╛рдзрд╛рди рдорд┐рд▓ рдЧрдпрд╛, рдЬрд┐рд╕рдиреЗ рдореЗрд░реЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджрд┐рдпрд╛ (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рдЙрд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛) рдФрд░ рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рднреА рдЯреНрд╡рд┐рдЧ рдХреА рд╕рд╛рджрдЧреА рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдкрд╕рдВрдж рдереАред

рдФрд░, рдмреЗрд╢рдХ, рд╣рдо рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗ рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдордЬрджреВрд░реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рдереЗред рдореЙрдбреНрдпреВрд▓ рдЕрдЬреАрдм рдирд╛рдо Twigrix рдХреЗ рддрд╣рдд рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдореБрдлреНрдд рд╣реИ рдФрд░ рд╕рднреА рд░реБрдЪрд┐ рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдФрд░ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рдЬреАрдердм рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рдкреВрд░реА рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ Twigrix рдХрдареЛрд░ Bitrix рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдХрдареЛрд░ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдЬреАрд╡рди рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╢реЛрднрд╛ рджреЗрдЧрд╛ред



All Articles