component_epilog.php
решение найдено)
#BASKET_<?php echo $arResult['ID']; ?>#
\Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnEndBufferContent", array('SomeClass', 'onEndBufferContent'),false,400);
class SomeClass
{
function onEndBufferContent(&$strContent)
{
if (!defined('ADMIN_SECTION')) {
$re = '/#BASKET_(\S+)#/';
preg_match_all($re, $strContent, $arMatches, PREG_SET_ORDER, 0);
$arProducts = array();
foreach ($arMatches as $arData) {
$arProducts[] = $arData[1];
}
if (count($arProducts) > 0) {
$arHasInBasket = array();
// Забираем товары из корзины и сравниваем с массивом $arProducts -> получим массив $arHasInBasket вида array('123'=>true) - товары на этой странице которые есть в корзине.
$strHasInBasketHtml = "Товар уже в корзине";
$strNotInBasketHtml = "";
foreach ($arProducts as $iProductId) {
if(array_key_exists($iProductId,$arHasInBasket)){
$strContent = str_replace('#BASKET_' . $iProductId . '#', $strHasInBasketHtml, $strContent);
}
else{
$strContent = str_replace('#BASKET_' . $iProductId . '#', $strNotInBasketHtml, $strContent);
}
}
}
}
}
}