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

NewDiskStorage::buildTreeFromFirstLevelLinks: метод Битрикс

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

//    Bitrix\Disk\Bitrix24Disk\Legacy\NewDiskStorage::buildTreeFromFirstLevelLinks()
//    /bitrix/modules/disk/lib/bitrix24disk/legacy/newdiskstorage.php:816

    private function buildTreeFromFirstLevelLinks(array $firstLevelLinks)
    {
        $deepLinks = array();
        if(!$firstLevelLinks)
        {
            return array();
        }
        if(count($firstLevelLinks) < self::MAX_COUNT_LINKS_FOR_CYCLE)
        {
            /** @var TreeNode[] $firstLevelLinks */
            foreach($firstLevelLinks as $link)
            {
                $deepLinks = array_merge($deepLinks, $this->buildTreeFromLink($link));
            }
        }
        else
        {
            $deletedTypeNone = ObjectTable::DELETED_TYPE_NONE;
            $typeFolder = ObjectTable::TYPE_FOLDER;
            $storageId = $this->storage->getId();
            $securityContext = $this->storage->getSecurityContext($this->userId);
            $rightExists = $securityContext->getSqlExpressionForList('object.ID', 'object.CREATED_BY');

            $sqlQuery = "
                SELECT object_pl1.ID, object_pl1.NAME, object_pl1.REAL_OBJECT_ID, object_pl1.PARENT_ID, object_pl1.CREATE_TIME
                FROM b_disk_object object
                INNER JOIN b_disk_object_path p ON p.PARENT_ID = object.REAL_OBJECT_ID
                INNER JOIN b_disk_object object_pl1 ON object_pl1.ID = p.OBJECT_ID
                WHERE
                    object.STORAGE_ID = {$storageId} AND object.DELETED_TYPE = {$deletedTypeNone} AND object.TYPE = {$typeFolder} AND
                    object.REAL_OBJECT_ID <> object.ID AND
                    object_pl1.DELETED_TYPE = {$deletedTypeNone} AND object_pl1.TYPE = {$typeFolder} AND
                    ({$rightExists})
            ";

            $iterator = $this->connection->query($sqlQuery);
            foreach($iterator as $folderRow)
            {
                $node = $this->fillTreeData($folderRow);
                if ($node->isLink() && !$this->isRealObjectExists($node))
                {
                    $deepLinks[] = $node;
                }
            }
        }

        return $deepLinks;
    }

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

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

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

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

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

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

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

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