ГлавнаяБлогМини GetList для файлов

Мини GetList для файлов

Рамиль Юналиев
Рамиль Юналиев
E-Commerce Lead
10 июля 2010 г.
1 мин чтения

Встроенный метод CAllFile::GetList() в Bitrix не поддерживает фильтрацию по массиву ID файлов. Для выборки описаний сразу по нескольким файлам написал собственную функцию:

function __arfileGetList($ar_FileID)
{
    if(is_array($ar_FileID) && count($ar_FileID) > 0)
    {
        global $DB;
        $rs_File = $DB->Query(
            "SELECT * FROM b_file WHERE ID IN 
                               (". implode(',', $ar_FileID). ")",
            false,
            "FILE: ".__FILE__." LINE: ".__LINE__
        );
        while($ar_File = $rs_File->Fetch())
        {
            $ar_Result[] = $ar_File;
        }
 
        if(is_array($ar_Result) && count($ar_Result) > 0)
            return $ar_Result;
    }
}

Важно: необходимо проверять содержимое $ar_FileID для обеспечения безопасности перед передачей в запрос.

В комментариях была предложена альтернатива через стандартный API: CFile::GetList() с фильтром вида array("@ID" => $strFileID).