@sergeyviktorovich

Почему catalog.set.constructor иногда лежит в catalog.element?

почему catalog.element ind лежит catalog.set.constructor idn-set и можно ли избавиться от catalog.element и подключить напрямую catalog.set.constructor ?
<div class="row">
      <div class="col-xs-12">
        <?
        if ($haveOffers)
        {
          if ($arResult['OFFER_GROUP'])
          {
            foreach ($arResult['OFFER_GROUP_VALUES'] as $offerId)
            {
              ?>
              <span id="<?=$itemIds['OFFER_GROUP'].$offerId?>" style="display: none;">
                <?
                $APPLICATION->IncludeComponent(
                  'bitrix:catalog.set.constructor',
                  'idn-set',
                  array(
                    'CUSTOM_SITE_ID' => isset($arParams['CUSTOM_SITE_ID']) ? $arParams['CUSTOM_SITE_ID'] : null,
                    'IBLOCK_ID' => $arResult['OFFERS_IBLOCK'],
                    'ELEMENT_ID' => $offerId,
                    'PRICE_CODE' => $arParams['PRICE_CODE'],
                    'BASKET_URL' => $arParams['BASKET_URL'],
                    'OFFERS_CART_PROPERTIES' => $arParams['OFFERS_CART_PROPERTIES'],
                    'CACHE_TYPE' => $arParams['CACHE_TYPE'],
                    'CACHE_TIME' => $arParams['CACHE_TIME'],
                    'CACHE_GROUPS' => $arParams['CACHE_GROUPS'],
                    'TEMPLATE_THEME' => $arParams['~TEMPLATE_THEME'],
                    'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'],
                    'CURRENCY_ID' => $arParams['CURRENCY_ID'],
                    'DETAIL_PICTURE_SRC' => $arResult["DETAIL_PICTURE"]["SRC"],
                    'PROPERTIES_WEIGHT_VALUE' => $arResult["PROPERTIES"]["WEIGHT"]["VALUE"],
                    'PROPERTIES_ANKERS_VALUE' => $arResult["PROPERTIES"]["ANKERS"]["VALUE"],
                    'PROPERTIES_DISCOUNT1_VALUE' => $arResult["PROPERTIES"]["DISCOUNT1"]["VALUE"],
                    'PROPERTIES_DISCOUNT_STAR_VALUE' => $arResult["PROPERTIES"]["DISCOUNT_STAR"]["VALUE"],
                    'PROPERTIES_VOLUME_VALUE' => $arResult["PROPERTIES"]["VOLUME"]["VALUE"],
                    'PROPERTIES_LENGTH_VALUE' => $arResult["PROPERTIES"]["LENGTH"]["VALUE"],
                    'PROPERTIES_MATERIAL_VALUE' => $arResult["PROPERTIES"]["MATERIAL"]["VALUE"],
                    'PROPERTIES_MORE_PHOTO_VALUE' => $arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"],
                    'PROPERTIES_MORE_PHOTO_MOB_VALUE' => $arResult["PROPERTIES"]["MORE_PHOTO_MOB"]["VALUE"]
                  ),
                  $component,
                  array('HIDE_ICONS' => 'Y')
                );
                ?>
              </span>
              <?
            }
          }
        }
        else
        {
          if ($arResult['MODULES']['catalog'] && $arResult['OFFER_GROUP'])
          {
            $APPLICATION->IncludeComponent(
              'bitrix:catalog.set.constructor',
              'idn-set',
              array(
                'CUSTOM_SITE_ID' => isset($arParams['CUSTOM_SITE_ID']) ? $arParams['CUSTOM_SITE_ID'] : null,
                'IBLOCK_ID' => $arParams['IBLOCK_ID'],
                'ELEMENT_ID' => $arResult['ID'],
                'PRICE_CODE' => $arParams['PRICE_CODE'],
                'BASKET_URL' => $arParams['BASKET_URL'],
                'CACHE_TYPE' => $arParams['CACHE_TYPE'],
                'CACHE_TIME' => $arParams['CACHE_TIME'],
                'CACHE_GROUPS' => $arParams['CACHE_GROUPS'],
                'TEMPLATE_THEME' => $arParams['~TEMPLATE_THEME'],
                'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'],
                'CURRENCY_ID' => $arParams['CURRENCY_ID'],
                'DETAIL_PICTURE_SRC' => $arResult["DETAIL_PICTURE"]["SRC"],
                'PROPERTIES_WEIGHT_VALUE' => $arResult["PROPERTIES"]["WEIGHT"]["VALUE"],
                'PROPERTIES_ANKERS_VALUE' => $arResult["PROPERTIES"]["ANKERS"]["VALUE"],
                'PROPERTIES_DISCOUNT1_VALUE' => $arResult["PROPERTIES"]["DISCOUNT1"]["VALUE"],
                'PROPERTIES_DISCOUNT_STAR_VALUE' => $arResult["PROPERTIES"]["DISCOUNT_STAR"]["VALUE"],
                'PROPERTIES_VOLUME_VALUE' => $arResult["PROPERTIES"]["VOLUME"]["VALUE"],
                'PROPERTIES_LENGTH_VALUE' => $arResult["PROPERTIES"]["LENGTH"]["VALUE"],
                'PROPERTIES_MATERIAL_VALUE' => $arResult["PROPERTIES"]["MATERIAL"]["VALUE"],
                'PROPERTIES_MORE_PHOTO_VALUE' => $arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"],
                'PROPERTIES_MORE_PHOTO_MOB_VALUE' => $arResult["PROPERTIES"]["MORE_PHOTO_MOB"]["VALUE"]
              ),
              $component,
              array('HIDE_ICONS' => 'Y')
            );
          }
        }
        ?>
      </div>
    </div>
  • Вопрос задан
  • 280 просмотров
Пригласить эксперта
Ответы на вопрос 2
Inkognitoss
@Inkognitoss
Full-stack разработчик.
Если вы передадите необходимые параметры компоненту, то в теории, он будет работать где угодно.
Ответ написан
Комментировать
gromdron
@gromdron
Работаю с Bitrix24
Существуют некоторые компоненты, которые реализуют целый пласт большой дополнительной логики или отображения.
Если шаблон такого элемента требует чтобы шаблон другого элемента был заточен специально под использование данного компонента и вне рамок его использования не работает, то не имеет смысла его выносить в общие шаблоны.

Проще придумать не смог, но зато есть пример: предположим существуют 2 компонента A и B с шаблонами .default. Оба компонента могут использоваться независимо друг от друга.
Однако в какой-то момент в шаблоне A потребовалось модифицировать шаблон B в определенном месте под определенную задачу. Этот шаблон название special_a.
Так вот, использование компонента B с шаблоном special_a вне рамок компонента B не имеет смысла, посколькую шаблнон special_a задействует части шаблона компонента A и хранить его отдельно просто нет смысла.

Можно ли вынести такой шаблон из шаблона? Да, можно. Однако практического смысла подобное действие не имеет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы