Good day. The site needs to make a conclusion of the properties of trade offers in the product list. Here is the test site http://38metrov.megamir-test.ru/catalog/docke_standard/ properties are now displayed, but the photo properties are all the same, although the values ​​are different for bargaining. offers. Formed output properties in result_modifier.php here is the code

foreach($arResult["SKU_PROPS"] as $keySKU => $arSKUProps){ // свойство цвет 1 foreach($arResult['ITEMS'] as $key => $arItem) { // елементы раздела foreach ($arItem["JS_OFFERS"] as $keyOff => $arOffers) // торг. пред. { if ($arSKUProps["VALUES"][$arOffers["TREE"]["PROP_".$arSKUProps["ID"]]]) // проверка елси совпадает свойство ТП из массива "свойств ТП" с массивом самих ТП { if ($arOffers["PREVIEW_PICTURE"]["SRC"]) // если у ТП есть картинка Анонса { // если нашли картинку, то дабавляем ее в массив со свойствами ТП $arResult["SKU_PROPS"][$keySKU]["VALUES"][$arOffers["TREE"]["PROP_".$arSKUProps["ID"]]]["D_IMG"] = $arOffers['PREVIEW_PICTURE']['SRC']; $arResult["SKU_PROPS"][$keySKU]["VALUES"][$arOffers["TREE"]["PROP_".$arSKUProps["ID"]]]["D_IMG"] = $arOffers['PREVIEW_PICTURE']['SRC']; }else{ $arResult["SKU_PROPS"][$keySKU]["VALUES"][$arOffers["TREE"]["PROP_".$arSKUProps["ID"]]]["IMG"] = "N"; $arResult["SKU_PROPS"][$keySKU]["VALUES"][$arOffers["TREE"]["PROP_".$arSKUProps["ID"]]]["D_IMG"] = "N"; } } } } 

}

the output is an array (example of a fragment because the array is very large):

  Array ( [0] => Array ( [ID] => 468 [CODE] => cvet [NAME] => Цвет 1 [SORT] => 24 [PROPERTY_TYPE] => L [USER_TYPE] => [LINK_IBLOCK_ID] => 0 [USER_TYPE_SETTINGS] => [VALUES] => Array ( 5205] => Array ( [ID] => 5205 [NAME] => Роза бледно-пурпурная [SORT] => 500 [PICT] => ) [3926] => Array ( [ID] => 3926 [NAME] => Пломбир [SORT] => 500 [PICT] => [D_IMG] => /upload/iblock/3b4/3b4bcfc3259f14248d29e53e1ee48cdd.gif [IMG] => /upload/iblock/3b4/3b4bcfc3259f14248d29e53e1ee48cdd.gif ) [4182] => Array ( [ID] => 4182 [NAME] => Чарли [SORT] => 500 [PICT] => ) [4438] => Array ( [ID] => 4438 [NAME] => Fels Северная скала [SORT] => 500 [PICT] => ) ) [4116] => Array ( [ID] => 4116 [NAME] => Дуб Парана [SORT] => 500 [PICT] => ) ) ) 

Ie from the code above, if we find a trade. pred with the same id properties, then assign to the array of properties, a picture of this TP. And everything works fine if there are no coincidences id from the array of properties and id properties of the trade.perd.

For example, if a TP has a color property with the value "Ice Cream", then it will override the previous value of the same property, i.e. a picture.

I tried to do so a part of this code:

 $arResult["SKU_PROPS"][$keySKU]["VALUES"][$arOffers["TREE"]["PROP_".$arSKUProps["ID"]]]["D_IMG"] = $arOffers['PREVIEW_PICTURE']['SRC']; $arResult["SKU_PROPS"][$keySKU]["VALUES"][$arOffers["TREE"]["PROP_".$arSKUProps["ID"]]]["IMG"] = $arOffers['PREVIEW_PICTURE']['SRC']; 

replace with this one:

 $arResult["SKU_PROPS"][$keySKU]["VALUES"][$arOffers["TREE"]["PROP_".$arSKUProps["ID"]]]["IMG"][$arOffers['ID']] = $arOffers["PREVIEW_PICTURE"]["SRC"]; $arResult["SKU_PROPS"][$keySKU]["VALUES"][$arOffers["TREE"]["PROP_".$arSKUProps["ID"]]]["IMG"][$arOffers['ID']] = $arOffers["PREVIEW_PICTURE"]["SRC"]; 

as a result, I get an array:

  [3926] => Array ( [ID] => 3926 [NAME] => Пломбир [SORT] => 500 [PICT] => [D_IMG] => Array ( [14525] => /upload/iblock/12a/12aaeb90d9e4003b3f673552c4f8bede.gif [14499] => /upload/iblock/424/424e44168f99ef40be8a5e010f27b001.gif [17017] => /upload/iblock/18e/18e84c20c60efcab3d66613d36b5122e.gif [15442] => /upload/iblock/1ff/1ff0c1ce9ae2a039a9b0f5558d297996.gif [15586] => /upload/iblock/30a/30afa3febe7d1791391af50038ac5732.gif [14351] => /upload/iblock/c02/c02cca4ce8ce430bfb5342f9821028ab.gif [14346] => /upload/iblock/eed/eed004c7420d9c9c11c75a223fa32723.gif [16774] => /upload/iblock/ba4/ba40fddc2cc389c4846d49ec8ba32c74.gif [17331] => /upload/iblock/b58/b5861e59ed9d7cafe05b5f6ae9562821.gif [14510] => /upload/iblock/790/790dd3320d5b6b7fbc3ea0ffcd552560.gif [17021] => /upload/iblock/95e/95ecef363664ea80f78af121a5559311.gif [14088] => /upload/iblock/4c4/4c407a287a93cffa73397006faf8d947.gif [16814] => /upload/iblock/9e1/9e13dae742cb8940fad33712b00d2a06.gif [13068] => /upload/iblock/6ca/6cab30e397e949018a41d1497efa8714.gif [14046] => /upload/iblock/9bd/9bdca3a1613dbf29ee79a6945bd67628.gif [16997] => /upload/iblock/3b4/3b4bcfc3259f14248d29e53e1ee48cdd.gif ) [IMG] => Array ( [14525] => /upload/iblock/12a/12aaeb90d9e4003b3f673552c4f8bede.gif [14499] => /upload/iblock/424/424e44168f99ef40be8a5e010f27b001.gif [17017] => /upload/iblock/18e/18e84c20c60efcab3d66613d36b5122e.gif [15442] => /upload/iblock/1ff/1ff0c1ce9ae2a039a9b0f5558d297996.gif [15586] => /upload/iblock/30a/30afa3febe7d1791391af50038ac5732.gif [14351] => /upload/iblock/c02/c02cca4ce8ce430bfb5342f9821028ab.gif [14346] => /upload/iblock/eed/eed004c7420d9c9c11c75a223fa32723.gif [16774] => /upload/iblock/ba4/ba40fddc2cc389c4846d49ec8ba32c74.gif [17331] => /upload/iblock/b58/b5861e59ed9d7cafe05b5f6ae9562821.gif [14510] => /upload/iblock/790/790dd3320d5b6b7fbc3ea0ffcd552560.gif [17021] => /upload/iblock/95e/95ecef363664ea80f78af121a5559311.gif [14088] => /upload/iblock/4c4/4c407a287a93cffa73397006faf8d947.gif [16814] => /upload/iblock/9e1/9e13dae742cb8940fad33712b00d2a06.gif [13068] => /upload/iblock/6ca/6cab30e397e949018a41d1497efa8714.gif [14046] => /upload/iblock/9bd/9bdca3a1613dbf29ee79a6945bd67628.gif [16997] => /upload/iblock/3b4/3b4bcfc3259f14248d29e53e1ee48cdd.gif ) ) 

that is, each TP is assigned its own picture and properties are not overwritten

in the output template is organized as follows:

  foreach ($arResult['SKU_PROPS'] as &$arProp){ // foreach($arResult['ITEMS'] as $key => $arItem) { добавил циклы чтобы по ID торг. предложения цеплять нужную картинку // foreach ($arItem["JS_OFFERS"] as $keyOff => $arOffers) // { ob_start(); if ('L' == $arProp['PROPERTY_TYPE']) { if (5 < $arProp['VALUES_COUNT']) { $strClass = 'bx_item_detail_size full'; $strSlideStyle = ''; } else { $strClass = 'bx_item_detail_size'; $strSlideStyle = 'display: none;'; } ?> <div class="<? echo $strClass; ?>" id="#ITEM#_prop_<? echo $arProp['ID']; ?>_cont"> <b> <?php $propert = $arProp['NAME']; if ($propert == "Цвет 1") { $propert = "Цвет"; } echo $propert.":";?></b> <span class="bx_item_section_name_gray"><? echo htmlspecialcharsex($arProp['NAME']); ?></span> <div class="bx_size_scroller_container"> <div class="bx_size"> <ul id="#ITEM#_prop_<? echo $arProp['ID']; ?>_list" > <?foreach ($arProp['VALUES'] as $arOneValue){ ?> <li data-treevalue="<? echo $arProp['ID'].'_'.$arOneValue['ID']; ?>" data-onevalue="<? echo $arOneValue['ID']; ?>" data-pic="<?=$arOneValue['D_IMG'][$arOffers['ID']] // вывод картинки ?>" data-offer-id="<?=$arOffers['ID']?>" > <? if ($arOneValue['IMG'] != "N") { ?> <span style="display: inline-block;width: 24px; height: 24px; background: url(<?=$arOneValue['IMG']?>) no-repeat center;"></span> <? }else{ ?> <span style="display: inline-block;"></span> <? } ?> <a href="javascript:void(0)"><? echo $arOneValue['NAME']; ?></a> </li> <?}?> </ul> </div> <div class="bx_slide_left" id="#ITEM#_prop_<? echo $arProp['ID']; ?>_left" data-treevalue="<? echo $arProp['ID']; ?>" style="<? echo $strSlideStyle; ?>"></div> <div class="bx_slide_right" id="#ITEM#_prop_<? echo $arProp['ID']; ?>_right" data-treevalue="<? echo $arProp['ID']; ?>" style="<? echo $strSlideStyle; ?>"></div> </div> </div><? } elseif ('E' == $arProp['PROPERTY_TYPE']) { if (5 < $arProp['VALUES_COUNT']) { $strClass = 'bx_item_detail_scu full'; $strWidth = ($arProp['VALUES_COUNT']*20).'%'; $strOneWidth = (100/$arProp['VALUES_COUNT']).'%'; $strSlideStyle = ''; } else { $strClass = 'bx_item_detail_scu'; $strSlideStyle = 'display: none;'; } ?><div class="<? echo $strClass; ?>" id="#ITEM#_prop_<? echo $arProp['ID']; ?>_cont"> <div class="bx_scu_scroller_container"><div class="bx_scu"><ul id="#ITEM#_prop_<? echo $arProp['ID']; ?>_list" ><? foreach ($arProp['VALUES'] as $arOneValue) { ?><li data-treevalue="<? echo $arProp['ID'].'_'.$arOneValue['ID'] ?>" data-onevalue="<? echo $arOneValue['ID']; ?>" > <span></span><a href="javascript:void(0)"><span></span></a></li><? } ?></ul></div> <div class="bx_slide_left" id="#ITEM#_prop_<? echo $arProp['ID']; ?>_left" data-treevalue="<? echo $arProp['ID']; ?>" style="<? echo $strSlideStyle; ?>"></div> <div class="bx_slide_right" id="#ITEM#_prop_<? echo $arProp['ID']; ?>_right" data-treevalue="<? echo $arProp['ID']; ?>" style="<? echo $strSlideStyle; ?>"></div> </div> </div><? } $arSkuTemplate[$arProp['CODE']] = ob_get_contents(); ob_end_clean(); } //}} 

I apologize that I spread such footcloths here. I need help, I can’t figure out what I'm doing wrong, because the output is the same. And in general, how best to solve the problem? Thanks for any help.

    0