Здравствуйте! Стоит задача, сделать так сказать несколько шорткодов в битриксе, которые в тексте будут менять текст на php код, нашел
инструкцию, создал один шорткод, все ок, создаю второй, у меня страница загружается (дублируется) два раза в которой сначала первый шорткод работает, потом второй, как заставить работать оба? что делаю
result_modifier.php такого содержания:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?$this->__component->SetResultCacheKeys(array("CACHED_TPL"));?>
<?$this->__component->SetResultCacheKeys(array("CACHED_TPL2"));?>
component_epilog.php такого:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
echo preg_replace_callback(
"/#VOTE_ID_([\d]+)#/is".BX_UTF_PCRE_MODIFIER,
function ($matches) {
ob_start();
/*component here*/
$retrunStr = @ob_get_contents();
ob_get_clean();
return $retrunStr;
},
$arResult["CACHED_TPL"]);
echo preg_replace_callback2(
"/#VOTE_ID_TWO_([\d]+)#/is".BX_UTF_PCRE_MODIFIER,
function ($matches2) {
ob_start();
/*component 2 here*/
$retrunStr2 = @ob_get_contents();
ob_get_clean();
return $retrunStr2;
},
$arResult["CACHED_TPL2"]);
?>
template.php в самом конце:
<?
$this->__component->arResult["CACHED_TPL"] = @ob_get_contents();
$this->__component->arResult["CACHED_TPL2"] = @ob_get_contents();
ob_get_clean();
?>