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

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

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

<?php 
//    /bitrix/modules/landing/lib/agent.phpAgent::clearRecycle()
//    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_MODIFY' => $date
                    
],
                    [
                        
'=SITE.DELETED' => 'Y',
                        
'<SITE.DATE_MODIFY' => $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($folderIdtrue);
                
$resDel->isSuccess();// for trigger
            
}
        }

        
// then delete sites
        
$res Site::getList([
            
'select' => [
                
'ID'
            
],
            
'filter' => [
                
'=DELETED' => 'Y',
                
'<DATE_MODIFY' => $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, или иной формат общения, но проще всего воспользоваться штатным инструментом:

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