2020-11-14 10:48:00
78
1312312
2020-11-14 11:08:00
Приветствую, нужно объединить товары по свойству в один товар при выводе, задача частично решена таким образом компонент catalog.section код в result_modifier.php
$newArrItem = array();
foreach($arResult['ITEMS'] as $key => $item){
$id_group = CIBlockElement::GetProperty(1, $item['ID'], array("sort" => "asc"), Array("CODE"=> "ID_GROUP"));
$id_group_val = $id_group
->Fetch();
if(!empty($id_group_val['VALUE'])){
foreach($newArrItem as $val){
$id_group_new = CIBlockElement::GetProperty(1, $val['ID'], array("sort" => "asc"), Array("CODE"=> "ID_GROUP"));
$id_group__new = $id_group_new->Fetch();
if($id_group_val['VALUE'] == $id_group__new['VALUE']){
$true__item = true;
} }
if($true__item == false)
$newArrItem[] = $item;
}
$true__item = false;
}
$arResult['ITEMS'] = $newArrItem;
Появилась проблема с пагинацией, на одной странице может оказаться 1 товар т.к. все 12 товаров были одной группы.
У меня есть идея получить сколько товаров на странице осталось, потом сколько должно быть и получать товары с других страниц прогоняя через foreach, но опять же это будет нагрузка и на последних страницах не останется товара.
Пробовал изменять файл class.php компонента catalog.section
Но не могу сообразить в $elementIterator содержится что и в $arResult['ITEMS']
protected function getElementList($iblockId, $products)
{
$elementIterator = parent::getElementList($iblockId, $products);
if (
!empty($elementIterator)
&& $this->arParams['BY_LINK'] !== 'Y'
&& !$this->arParams['SHOW_ALL_WO_SECTION']
&& !$this->arParams['USE_MAIN_ELEMENT_SECTION']
)
{
$elementIterator->SetSectionContext($this->arResult);
}
return $elementIterator;
}
$newArrItem = array();
foreach($arResult['ITEMS'] as $key => $item){
$id_group = CIBlockElement::GetProperty(1, $item['ID'], array("sort" => "asc"), Array("CODE"=> "ID_GROUP"));
$id_group_val = $id_group
->Fetch();
if(!empty($id_group_val['VALUE'])){
foreach($newArrItem as $val){
$id_group_new = CIBlockElement::GetProperty(1, $val['ID'], array("sort" => "asc"), Array("CODE"=> "ID_GROUP"));
$id_group__new = $id_group_new->Fetch();
if($id_group_val['VALUE'] == $id_group__new['VALUE']){
$true__item = true;
} }
if($true__item == false)
$newArrItem[] = $item;
}
$true__item = false;
}
$arResult['ITEMS'] = $newArrItem;
Появилась проблема с пагинацией, на одной странице может оказаться 1 товар т.к. все 12 товаров были одной группы.
У меня есть идея получить сколько товаров на странице осталось, потом сколько должно быть и получать товары с других страниц прогоняя через foreach, но опять же это будет нагрузка и на последних страницах не останется товара.
Пробовал изменять файл class.php компонента catalog.section
Но не могу сообразить в $elementIterator содержится что и в $arResult['ITEMS']
protected function getElementList($iblockId, $products)
{
$elementIterator = parent::getElementList($iblockId, $products);
if (
!empty($elementIterator)
&& $this->arParams['BY_LINK'] !== 'Y'
&& !$this->arParams['SHOW_ALL_WO_SECTION']
&& !$this->arParams['USE_MAIN_ELEMENT_SECTION']
)
{
$elementIterator->SetSectionContext($this->arResult);
}
return $elementIterator;
}
Может быть интересно
Какие NFT на getgems стоит приобрести
98
2024-04-19 09:49:00
Ноткоин - финал майнинга
175
2024-03-31 22:31:52
Как создать сайт. Инструкция для новичка
181
2024-03-06 04:51:00
Сколько я зарабатываю на хостинге
311
2024-03-06 03:36:00
До листинга Notcoin осталось 2 недели! Начали удалять Notcoins с аккаунтов! Новый этап игры.
406
2024-03-02 19:31:00
Комментарии (46)