functions.php ➔ renderBladeTemplate()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 35

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 7
dl 0
loc 35
rs 9.36
c 0
b 0
f 0
1
<?php
2
3
use Arrilot\BitrixBlade\BladeProvider;
4
5
if (!function_exists('renderBladeTemplate')) {
6
    /**
7
     * Render blade template callback.
8
     *
9
     * @param $templateFile
10
     * @param $arResult
11
     * @param $arParams
12
     * @param $arLangMessages
13
     * @param $templateFolder
14
     * @param $parentTemplateFolder
15
     * @param $template
16
     *
17
     * @return void
18
     */
19
    function renderBladeTemplate($templateFile, $arResult, $arParams, $arLangMessages, $templateFolder, $parentTemplateFolder, $template)
20
    {
21
        Bitrix\Main\Localization\Loc::loadMessages($_SERVER['DOCUMENT_ROOT'].$templateFolder.'/template.php');
22
23
        $view = BladeProvider::getViewFactory();
24
25
        BladeProvider::addTemplateFolderToViewPaths($template->__folder);
26
27
        global $APPLICATION, $USER;
28
29
        echo $view->file($_SERVER['DOCUMENT_ROOT'].$templateFile, compact(
30
            'arParams',
31
            'arResult',
32
            'arLangMessages',
33
            'template',
34
            'templateFolder',
35
            'parentTemplateFolder',
36
            'APPLICATION',
37
            'USER'
38
        ))->render();
39
40
        $epilogue = $templateFolder.'/component_epilog.php';
41
        if (file_exists($_SERVER['DOCUMENT_ROOT'].$epilogue)) {
42
            $component = $template->__component;
43
            $component->SetTemplateEpilog([
44
                'epilogFile'     => $epilogue,
45
                'templateName'   => $template->__name,
46
                'templateFile'   => $template->__file,
47
                'templateFolder' => $template->__folder,
48
                'templateData'   => false,
49
            ]);
50
        }
51
52
        BladeProvider::removeTemplateFolderFromViewPaths($template->__folder);
53
    }
54
}
55