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

Agent::clearRecycle: метод Битрикс

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

//    Bitrix\Landing\Agent::clearRecycle()
//    /bitrix/modules/landing/lib/agent.php:11

    /**
     * Clear recycle bin.
     * @param int $days After this time items will be deleted.
     * @return string
     */
    public static function clearRecycle($days = null)
    {
        Rights::setOff();
        $days = !is_null($days)
                ? (int) $days
                : (int) Manager::getOption('deleted_lifetime_days');

        $date = new \Bitrix\Main\Type\DateTime;
        $date->add('-' . $days . ' days');
        $folders = [];

        // first delete landings
        $res = Landing::getList([
            'select' => [
                'ID', 'FOLDER'
            ],
            'filter' => [
                [
                    'LOGIC' => 'OR',
                    [
                        '=DELETED' => 'Y',
                        ' $date
                    ],
                    [
                        '=SITE.DELETED' => 'Y',
                        ' $date
                    ]
                ],
                '=DELETED' => ['Y', 'N'],
                '=SITE.DELETED' => ['Y', 'N'],
                'CHECK_PERMISSIONS' => 'N'
            ],
            'order' => [
                'DATE_MODIFY' => 'desc'
            ]
        ]);
        while ($row = $res->fetch())
        {
            if ($row['FOLDER'] == 'Y')
            {
                $folders[] = $row['ID'];
                continue;
            }
            $resDel = Landing::delete($row['ID'], true);
            $resDel->isSuccess();// for trigger
        }

        // delete from folders
        if ($folders)
        {
            $res = Landing::getList([
                'select' => [
                    'ID'
                ],
                'filter' => [
                    'FOLDER_ID' => $folders,
                    '=DELETED' => ['Y', 'N'],
                    '=SITE.DELETED' => ['Y', 'N'],
                    'CHECK_PERMISSIONS' => 'N'
                ],
                'order' => [
                    'DATE_MODIFY' => 'desc'
                ]
            ]);
            while ($row = $res->fetch())
            {
                array_unshift($folders, $row['ID']);
            }
            foreach ($folders as $folderId)
            {
                $resDel = Landing::delete($folderId, true);
                $resDel->isSuccess();// for trigger
            }
        }

        // then delete sites
        $res = Site::getList([
            'select' => [
                'ID'
            ],
            'filter' => [
                '=DELETED' => 'Y',
                ' $date,
                'CHECK_PERMISSIONS' => 'N'
            ],
            'order' => [
                'DATE_MODIFY' => 'desc'
            ]
        ]);
        while ($row = $res->fetch())
        {
            $resDel = Site::delete($row['ID']);
            $resDel->isSuccess();// for trigger
        }

        Rights::setOn();

        return __CLASS__ . '::' . __FUNCTION__ . '();';
    }

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

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

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

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

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

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

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

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