- Модуль: fileman
- Путь к файлу: ~/bitrix/modules/fileman/classes/general/medialib.php
- Класс: CMedialibItem
- Вызов: CMedialibItem::Search
static function Search($arQuery, $arTypes = array())
{
global $DB;
$err_mess = CMedialibCollection::GetErrorMess()."
Function: CMedialibItem::Search
Line: ";
$strSql = "SELECT
MI.*, MI.*,MCI.COLLECTION_ID, F.HEIGHT, F.WIDTH, F.FILE_SIZE, F.CONTENT_TYPE, F.SUBDIR, F.FILE_NAME, F.HANDLER_ID,
".$DB->DateToCharFunction("MI.DATE_UPDATE")." as DATE_UPDATE2
FROM b_medialib_item MI
INNER JOIN b_medialib_collection_item MCI ON (MI.ID=MCI.ITEM_ID)
INNER JOIN b_file F ON (F.ID=MI.SOURCE_ID)
WHERE 1=1";
$l = count($arQuery);
if ($l == 0)
return array();
for ($i = 0; $i < $l; $i++)
$strSql .= " AND MI.SEARCHABLE_CONTENT LIKE '%".$DB->ForSql($arQuery[$i])."%'";
$strSql .= " ORDER BY MI.ID DESC";
$res = $DB->Query($strSql, false, $err_mess);
$arResult = Array();
$rootPath = CSite::GetSiteDocRoot(false);
$tmbW = COption::GetOptionInt('fileman', "ml_thumb_width", 140);
$tmbH = COption::GetOptionInt('fileman', "ml_thumb_height", 105);
$elId2Index = array();
$colId2Index = array();
$arCol = CMedialibCollection::GetList(array('arFilter' => array('ACTIVE' => 'Y', "TYPES" => $arTypes)));
for ($i = 0, $l = count($arCol); $i < $l; $i++)
$colId2Index[$arCol[$i]['ID']] = $i;
while($arRes = $res->Fetch())
{
$colId = $arRes['COLLECTION_ID'];
if (!isset($colId2Index[$colId]) || !CMedialibCollection::IsViewable($arCol[$colId2Index[$colId]], $arCol))
continue;
if (isset($elId2Index[$arRes['ID']]))
{
$arResult[$elId2Index[$arRes['ID']]]['collections'][] = $colId;
}
else
{
$elId2Index[$arRes['ID']] = count($arResult);
$arRes['collections'] = array($colId);
$arRes['perm'] = array
(
'edit' => true,
'del' => true
);
CMedialibItem::GenerateThumbnail($arRes, array('rootPath' => $rootPath, 'width' => $tmbW, 'height' => $tmbH));
$arRes['PATH'] = CFile::GetFileSRC($arRes);
$arResult[]=$arRes;
}
}
return $arResult;
}