API Bitrix связки инфоблоков

Тема в разделе "Битрикс", создана пользователем soot, 13 июн 2015.

Модераторы: mrLom, puagardian
  1. soot

    soot

    Регистр.:
    22 дек 2008
    Сообщения:
    164
    Симпатии:
    28
    Есть два инфоблока:
    1. Каталог
    2. Демпинг
    Элементы каталога привязываются к разделам инфоблока Демпинг по свойству ATT_DUMPING_LINK.

    Весь вывод происходит из комплексного компонента news из инфоблока Каталог, делаю правки в файле: bitrix\templates\ШАБЛОН\components\bitrix\news\main_offer\bitrix\news.detail\.default

    Мне необходимо вытащить N элементов из привязанного раздела инфоблока Демпинг.

    print_r говорит: $arResult["PROPERTIES"]["ATT_DUMPING_LINK"]["VALUE"] => 9, я проверил это ID нужного раздела.

    Можно ли с помощью CIBlockElement::GetList выполнить задачу или надо применить другую функцию ?
     
  2. nononameman

    nononameman

    Регистр.:
    3 мар 2014
    Сообщения:
    299
    Симпатии:
    205
    Да.
     
    soot нравится это.
  3. soot

    soot

    Регистр.:
    22 дек 2008
    Сообщения:
    164
    Симпатии:
    28
    Если я использую CIBlockElement::GetList в комплексном компоненте, то будет информация выведенная с помощью этой функции кэшироватся или нет ?

    Или лучше вытащить из раздела все элементы, ну т.е. ID их и использовать через простой компонент news:list?
    Хотя в принципе у меня простая структура вывода, ну это сам Бокс item:
    HTML:
    
    <a href="portfolio-single-project.html">
    <span class="thumb-info">
    <span class="thumb-info-wrapper">
    <img src="<?=SITE_TEMPLATE_PATH?>/img/projects/project-4.jpg" class="img-responsive" alt="">
    <span class="thumb-info-title">
    <span class="thumb-info-inner">Название элемента</span>
    <span class="thumb-info-type">Свойство типа число</span>
    </span>
    <span class="thumb-info-action">
    <span class="thumb-info-action-icon"><i class="fa fa-link"></i></span>
    </span>
    </span>
    </span>
    </a>
    
    Получается мне надо вытащить от туда:
    1. ссылку на полную новость
    2. Картинку анонса
    3. Название элемента
    4. Свойство типа число

    PHP:
    $arSelect = Array("ID""NAME""PREVIEW_PICTURE""PROPERTY_НАЗВАНИЕ_СВОЙСТВА"); // Указываем список параметров, которые будем использовать
    $arFilter = Array("IBLOCK_ID"=>4"ACTIVE_DATE"=>"Y""ACTIVE"=>"Y"); // Указываем параметры фильтра, по которым будем выводить элементы
    $res CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilterfalsefalse$arSelect); // Вызов
    while($ob $res->GetNextElement())
    {
        
    $arFields $ob->GetFields();
        echo 
    'Вывод'
    }
    Как автоматом вывести "IBLOCK_ID"=>4 - без установки его в ручную?
    И как указать параметр фильтра чтобы элементы были только из раздела с ID = 9
     
  4. nononameman

    nononameman

    Регистр.:
    3 мар 2014
    Сообщения:
    299
    Симпатии:
    205
    Как автоматом вывести "IBLOCK_ID"=>4 - без установки его в ручную? - Вы о чем?
    И как указать параметр фильтра чтобы элементы были только из раздела с ID = 9 - SECTION_ID => 9
     
    soot нравится это.
  5. soot

    soot

    Регистр.:
    22 дек 2008
    Сообщения:
    164
    Симпатии:
    28
    Ну я же знаю ID раздела, значит по этому ID, я могу получить ID инфоблока или нет ?
    Если я использую CIBlockElement::GetList в комплексном компоненте, то будет информация выведенная с помощью этой функции кэшироватся или нет ?
     
  6. nononameman

    nononameman

    Регистр.:
    3 мар 2014
    Сообщения:
    299
    Симпатии:
    205
    Нет, ID или Тип надо указать.
    Кешироваться будет, если закешируете :)
     
    soot нравится это.
  7. soot

    soot

    Регистр.:
    22 дек 2008
    Сообщения:
    164
    Симпатии:
    28
    Ну вот например:
    PHP:
    $res1 CIBlockElement::GetIBlockByID(5);
    print_r ($res1);
    CIBlockElement::GetIBlockByID - возвращает ID инфоблока по ID его элемента.
    Значит если знаешь ID элемент, то можно автоматом подставить ID инфоблока, но я не знаю ID элемента, я знаю ID раздела.
    Вот как по ID раздела вернуть в переменную ID инфоблока ?