Многие вещи удобно хранить в медиабиблиотеке битрикса (а не на тех же инфоблоках).
Только вот как из медиабиблиотеки доставать данные кодом не документировано((
Решили исправить эту ситуацию, вот справка по работе с выборами из медиабиблиотеки в формате phpDoc.
Рассмотрим решение трех задач:
1. Как выбирать кодом из медиабиблиотеки список типов
2. Как выбирать из медиабиблиотеки список коллекций
3. как получить из медиабиблиотеки список элементов коллекции (думаю это самая будет востребованная операция).
/** * Получить типы медиабиблиотеки * Перед использованием вызывать: * <pre>CModule::IncludeModule("fileman"); * CMedialib::Init();</pre> * * @param array $arConfigTypes фильтр по символьному коду типа(code), * записывается в виде array(<b>"символьный код1", "символьный код2", ...</b>). * @param bool $bGetEmpties определяет, выбирать ли пустые типы. По умолчанию * значение <b>false</b>. * @return array массив полей типов, которые будут возвращены функцией * в последовательности * <ul> * <li>id</li> <li>code</li> <li>name</li> <li>ext</li> <li>system</li> <li>desc</li> <li>type_icon</li> <li>empty</li> * </ul><br><br> * * @example <pre>CMedialib::GetTypes(array("image"), true)</pre> */ array CMedialib::GetTypes($arConfigTypes = array(), $bGetEmpties = false); /** * Выбор коллекций медиабиблиотеки * Перед использованием вызывать: * <pre>CModule::IncludeModule("fileman"); * CMedialib::Init();</pre> * * @param array $Params содержит массивы, * по которым необходимо производить поиск и сортировку коллекций. * <ul> * <li><b>arOrder</b> массив, в соответствии с * которым сортируются коллекции.</li> * * <li><b>arFilter</b> массив, * в соответствии с которым фильтруются коллекции.</li> * </ul> * * @return array массив коллекций, которые будут возвращены функцией * в последовательности * <ul> * <li>ID</li> <li>NAME</li> <li>DESCRIPTION</li> <li>ACTIVE</li> <li>DATE_UPDATE</li> <li>OWNER_ID</li> * <li>PARENT_ID</li> <li>SITE_ID</li> <li>KEYWORDS</li> <li>ITEMS_COUNT</li> <li>ML_TYPE</li> * </ul><br><br> * * @example <pre>CMedialibCollection::GetList(array('arFilter' => array('ACTIVE' => 'Y'), * 'arOrder' => array('NAME' => 'ASC')));</pre> */ array CMedialibCollection::GetList($Params = array()); /** * Выбор элементов медиабиблиотеки * Перед использованием вызывать: * <pre>CModule::IncludeModule("fileman"); * CMedialib::Init();</pre> * * @param array $Params содержит фильтры, * по которым необходимо производить поиск элементов. * <ul> * <li><b>arCollections</b> массив, содержащий перечень идентификаторов коллекций(COLLECTION_ID), * в которых необходимо производить поиск элементов.</li> * * <li><b>id</b> целое число, являющееся идентификатором необходимого объекта(ID).</li> * * <li><b>minId</b> целое число, являющееся минимальным идентификатором необходимого объекта(ID).</li> * <br><br> * </ul> * * @return array массив элементов, которые будут возвращены функцией * в последовательности * <ul> * <li>ID</li> <li>NAME</li> <li>ITEM_TYPE</li> <li>DESCRIPTION</li> <li>DATE_CREATE</li> * <li>DATE_UPDATE</li> <li>SOURCE_ID</li> <li>KEYWORDS</li> <li>SEARCHABLE_CONTENT</li> * <li>COLLECTION_ID</li> <li>HEIGHT</li> <li>WIDTH</li> <li>FILE_SIZE</li> * <li>CONTENT_TYPE</li> <li>SUBDIR</li> <li>FILE_NAME</li> <li>HANDLER_ID</li> * <li>DATE_UPDATE2</li> <li>TYPE</li> <li>PATH</li> * </ul><br><br> * * @example <pre>CMedialibItem::GetList(array('arCollections' => array("3", "2"), * 'minId' => 3 ,));</pre> */ array CMedialibItem::GetList($Params); |
Примеры использования:
CModule::IncludeModule("fileman"); CMedialib::Init(); $arRes = CMedialib::GetTypes(array("image"), true); print_r($arRes); $arRes = CMedialibCollection::GetList(array('arFilter' => array('ACTIVE' => 'Y'), 'arOrder' => array('NAME' => 'ASC'))); print_r($arRes); $arRes = CMedialibItem::GetList(array('arCollections' => array("3", "2"), 'minId' => 3)); print_r($arRes); |