Вывод компонента в шаблоне другого компонента - amel-post/bitrix.help GitHub Wiki

result_modifier.php

<?php 
$this->__component->SetResultCacheKeys(array("CACHE_TMPL"));

component_epilog.php

<?php
$arResult['CACHE_TMPL'] = preg_replace_callback(
    "/#LOCATION#/",
    function($matches) use ($APPLICATION, $arParams, $arResult, $USER)
    {
        ob_start();
        $params = explode('_', str_replace('#', '', $matches[0]));
        $APPLICATION->IncludeComponent(
            "bitrix:sale.location.selector.search",
            "",
            Array(
                "CACHE_TIME" => "36000000",
                "CACHE_TYPE" => "N",
                "CODE" => "",
                "FILTER_BY_SITE" => "N",
                "ID" => $params[1],
                "INITIALIZE_BY_GLOBAL_EVENT" => "",
                "INPUT_NAME" => "LOCATION_ID[" . $params[2] . "]",
                "JS_CALLBACK" => "locationUpdate",
                "JS_CONTROL_GLOBAL_ID" => '',
                "PROVIDE_LINK_BY" => "id",
                "SHOW_DEFAULT_LOCATIONS" => "N",
                "SUPPRESS_ERRORS" => "N"
            )
        );
        $returnStr = @ob_get_clean();
        return $returnStr;
    },
    $arResult['CACHE_TMPL']
);
 
echo $arResult['CACHE_TMPL'];