public static function PrepareSmiles() { $arResult = Array(); $arSmile = CSmile::getByType(CSmile::TYPE_SMILE); $arSmileSet = CSmileSet::getListCache(); foreach ($arSmile as $smile) { $typing = explode(" ", $smile['TYPING']); if (isset($arResult['SMILE'][$typing[0]])) continue; $arResult['SMILE'][$typing[0]] = Array( 'SET_ID' => $smile['SET_ID'], 'NAME' => $smile['NAME'], 'IMAGE' => CSmile::PATH_TO_SMILE.$smile["SET_ID"]."/".$smile["IMAGE"], 'TYPING' => $typing[0], 'WIDTH' => $smile['IMAGE_WIDTH'], 'HEIGHT' => $smile['IMAGE_HEIGHT'], ); } foreach ($arSmileSet as $key => $value) { unset($value['STRING_ID']); unset($value['SORT']); if (empty($value['NAME'])) $value['NAME'] = GetMessage('IM_SMILE_SET_EMPTY', Array('#ID#' => $key)); $arResult['SMILE_SET'][$key] = $value; } return $arResult; }
static function getSetsByType($type, $lang) { $type = $type == CSmile::TYPE_ICON ? CSmile::TYPE_ICON : CSmile::TYPE_SMILE; $key = $type . "_" . $lang; if (!array_key_exists($key, self::$sets)) { $smiles = self::GetByType($type, $lang); $smilesSet = CSmileSet::getListCache(); $result = array(); foreach ($smiles as $smile) { if (!array_key_exists($smile["SET_ID"], $result)) { $result[$smile["SET_ID"]] = $smilesSet[$smile["SET_ID"]]; } } self::$sets[$key] = $result; } return self::$sets[$key]; }
/** * <p>Получение списка наборов. Использовать вместо <a href="http://dev.1c-bitrix.ru/api_help/main/reference/csmileset/getformlist.php">CSmileSet::getFormList</a>. Статичный метод.</p> * * * @param mixed $galleryId = 0 Идентификатор галереи. Не обязательный, по умолчанию использует * настройку главного модуля. * * @param mixed $lang = LANGUAGE_ID Идентификатор языка для получения локализации, по умолчанию * LANGUAGE_ID (можно передать константу CSmileSet::GET_ALL_LANGUAGE для получения * всех локализаций). * * @return mixed <p>Возвращает массив с данными о наборе.</p> <br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/main/reference/csmileset/getlistforform.php * @author Bitrix */ public static function getListForForm($galleryId = 0, $lang = LANGUAGE_ID) { $arGalleryList = array(); if (!$galleryId) { $arGalleryList = CSmileGallery::getListForForm($lang); } $arSetList = array(); foreach (CSmileSet::getListCache($lang) as $key => $value) { if ($galleryId > 0 && $value['PARENT_ID'] != $galleryId) { continue; } $arSetList[$key] = !empty($value['NAME']) ? $value['NAME'] : GetMessage('MAIN_SMILE_SET_NAME', array('#ID#' => $key)); if (count($arGalleryList) > 1) { $arSetList[$key] = $arGalleryList[$value['PARENT_ID']] . ' > ' . $arSetList[$key]; } } return $arSetList; }
public static function getFormList($bWithOptionAll = false, $lang = LANGUAGE_ID) { $arSetList = array(); if ($bWithOptionAll) { $arSetList[0] = GetMessage('MAIN_SMILE_ALL_SET'); } foreach (CSmileSet::getListCache($lang) as $key => $value) { $arSetList[$key] = !empty($value['NAME']) ? $value['NAME'] : GetMessage('MAIN_SMILE_SET_NAME', array('#ID#' => $key)); } return $arSetList; }