Компонент sale.gift.basket классовый. Есть "документация". В "документации" параметр SHOW_PRODUCTS_<ID_каталога>. В методе CSaleGiftBasketComponent::onPrepareComponentParams() этот параметр разбивается вызовом родительского метода в массив $arParams["SHOW_PRODUCTS"].
Если указывается, к примеру, параметр SHOW_PRODUCTS_13 = 'Y', это означает, что подарки нужно будет извлекать из инфоблока с ID 13. Параметров SHOW_PRODUCTS_<ID_каталога> может быть несколько.
Зачем в методе buildIblockDependedParameters() переопределяется $this->arParams['SHOW_PRODUCTS']? Притом в параметре остаётся только один идентификатор инфоблока.
$this->arParams['SHOW_PRODUCTS'][$catalogIblockId] = 'Y'; //можно значение взять в скобки и получить шикарный бюст ('Y')
Хотя дальше по ходу компонента значение элемента массива(Y) не важно, важен только индекс.
Вопрос к разработчикам: нативный компонент работает правильно? Может чего-то не увидел при настройке. Нужно было подарки из другого инфоблока подавать.
$this ->arParams[ 'SHOW_PRODUCTS' ][ $catalogIblockId ] = 'Y' ; //можно значение взять в скобки и получить шикарный бюст ('Y')
Хотя дальше по ходу компонента значение элемента массива(Y) не важно, важен только индекс.
Вопрос к разработчикам: нативный компонент работает правильно? Может чего-то не увидел при настройке. Нужно было подарки из другого инфоблока подавать.