• Как выявить ошибку нехватки памяти?

    mbezvodinskikh
    @mbezvodinskikh
    Обратите внимание на файл /home/ml-new/public_html/bitrix/templates/main/components/bitrix/catalog.item/razdel-catalog/template.php на строку 104, где кто-то скорее всего зациклил рекурсию. Приведите код с 90 по 120 строку и точнее можно сказать.
    Ответ написан
    Комментировать
  • Почему нет свойства в $arResult?

    mbezvodinskikh
    @mbezvodinskikh
    Рекомендую переходить на d7 (Но перед этим прописать API код для инфоблока):
    \Bitrix\Main\Loader::includeModule('iblock');
    $class = \Bitrix\Iblock\Iblock::wakeUp(16)->getEntityDataClass();
    $rows = 
        $class::query()
        ->setSelect(['ID', 'NAME', 'JOB_TITLE.VALUE'])
        ->where('ACTIVE', true)
        ->fetchCollection()
    ;
    
    /**
      * @var \Bitrix\Main\ORM\Objectify\Collection $rows
      * @var \Bitrix\Main\ORM\Objectify\EntityObject $row
     */
    foreach ($rows as $row) {
        $data = $row->collectValues(
                \Bitrix\Main\ORM\Objectify\Values::ALL, 
                \Bitrix\Main\ORM\Fields\FieldTypeMask::ALL,
            true
        );
    
        /**
         * Не очень понятно для чего собирать все значения подряд
         */
        $res[] = $data['ID'];
        $res[] = $data['NAME'];
        $res[] = $data['JOB_TITLE']['VALUE'];
        
    }
    Ответ написан
    Комментировать
  • Как сделать динамический фильтр в bitrix:catalog.section.list?

    mbezvodinskikh
    @mbezvodinskikh
    Если я вас правильно понял, то Вам нужно применить выбранный фильтр к bitrix:catalog.section.list.
    Предположим, что Вы уже настроили добавление GET параметра фильтра в адресную строку.

    ...
    $GLOBALS['arSectionFilter'] = [];
    $request = \Bitrix\Main\Context::getCurrent()->getRequest();
    
    $filterValue = $request->getQuery('filtername');
    if ($filterValue) {
        $GLOBALS['arSectionFilter']  = [
            'UF_CUSTOM_FIELD' => $filterValue
        ];
    }
    
    $APPLICATION->IncludeComponent(
        'bitrix:catalog.section.list',
        '',
        array(
            'FILTER_NAME' => 'arSectionFilter',
            ...
        )
    )
    Ответ написан
    Комментировать
  • Как объединить (скрестить) массивы в PHP?

    mbezvodinskikh
    @mbezvodinskikh
    Все намного проще
    $a1 = array(
        0 => 'значение 1',
        1 => 'значение 2',
        2 => 'значение 3',
    );
    $a2 = array(
        0 => 'значение 4',
        1 => 'значение 5',
        2 => 'значение 6',
        3 => 'значение 7',
        4 => 'значение 8',
        5 => 'значение 9',
        6 => 'значение 10',
    );
     
    $a3 =  array(
        0 => 'значение 11',
        1 => 'значение 12',
        2 => 'значение 13',
        3 => 'значение 14',
        4 => 'значение 15',
    );
    $a = [];
    array_push($a, ...$a1, ...$a2, ...$a3);
    Ответ написан
    Комментировать