Поддержка серверов

CMedialib::GetCollectionTree: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=176139

//    CMedialib::GetCollectionTree()
//    /bitrix/modules/fileman/classes/general/medialib.php:921

    public static function GetCollectionTree($Params = array())
    {
        $arColTree = array();
        $arColTemp = array();
        $Collections = array();
        $arCol = $Params['menu'] ? CMedialibCollection::GetList(array('arFilter' => array('ACTIVE' => 'Y', 'PARENT_ID' => 0))) : CMedialibCollection::GetList(array('arFilter' => array('ACTIVE' => 'Y')));
        $iter = 0;

        for ($i = 0, $l = count($arCol); $i < $l; $i++)
        {
            if (isset($Params['CheckAccessFunk']) && !call_user_func($Params['CheckAccessFunk'], $arCol[$i]['ID']))
                continue;

            if (!CMedialib::_buildCollection($arCol[$i], $i, $arColTree, $Collections, $Params))
                $arColTemp[] = array($arCol[$i], $i);
        }

        while(count($arColTemp) > 0 && $iter < 50)
        {
            $newAr = array();
            for ($i = 0, $l = count($arColTemp); $i < $l; $i++)
            {
                if (isset($Params['CheckAccessFunk']) && !call_user_func($Params['CheckAccessFunk'], $arCol[$i]['ID']))
                    continue;

                if (!CMedialib::_buildCollection($arColTemp[$i][0], $arColTemp[$i][1], $arColTree, $Collections, $Params))
                    $newAr[] = $arColTemp[$i];
            }
            $arColTemp = $newAr;
            $iter++;
        }

        if ($Params['checkByType'] && $Params['typeId'] > 0)
        {
            $arType = CMedialib::GetTypeById($Params['typeId']);
            if ($arType)
            {
                foreach ($Collections as $id => $col)
                {
                    // Del collection escription if it has another type
                    if (!CMedialib::CompareTypesEx($Collections[$id]['ML_TYPE'], $arType))
                        unset($Collections[$id]);
                }
            }
        }

        return array('arColTree' => $arColTree, 'Collections' => $Collections);
    }

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение