protected function initSmiles() { if (!array_key_exists($this->smilesGallery, self::$repoSmiles)) { $smiles = CSmile::getByGalleryId(CSmile::TYPE_SMILE, $this->smilesGallery); $arSmiles = array(); foreach ($smiles as $smile) { $arTypings = explode(" ", $smile["TYPING"]); foreach ($arTypings as $typing) { $arSmiles[] = array_merge($smile, array('TYPING' => $typing, 'IMAGE' => CSmile::PATH_TO_SMILE . $smile["SET_ID"] . "/" . $smile["IMAGE"], 'DESCRIPTION' => $smile["NAME"], 'DESCRIPTION_DECODE' => 'Y')); } } self::$repoSmiles[$this->smilesGallery] = $arSmiles; } $this->smiles = self::$repoSmiles[$this->smilesGallery]; }
/** * <p>Возвращает смайлы и наборы на основе галереи для последующего использования в модулях при построении списка доступных смайлов. Статичный метод.</p> * * * @param mixed $galleryId = self::GALLERY_DEFAULT по умолчанию CSmileGallery::GALLERY_DEFAULT * * @return result_type <p>Возвращает массив Array('SMILE' => Array(...), 'SMILE_SET' => Array(...)) </p> </ht<br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/main/reference/csmilegallery/getsmileswithsets.php * @author Bitrix */ public static function getSmilesWithSets($galleryId = self::GALLERY_DEFAULT) { if ($galleryId == self::GALLERY_DEFAULT) { $galleryId = self::getDefaultId(); } $result = array('SMILE' => array(), 'SMILE_SET' => array()); $smiles = CSmile::getByGalleryId(CSmile::TYPE_SMILE, $galleryId); $smilesSet = CSmileSet::getListCache(); $userSets = array(); foreach ($smiles as $smile) { if ($smile['HIDDEN'] == 'Y') { continue; } $typing = explode(" ", $smile['TYPING']); if (isset($result['SMILE'][$typing[0]])) { continue; } $result['SMILE'][$smile['ID']] = 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']); $userSets[$smile['SET_ID']] = true; } foreach ($smilesSet as $key => $value) { if (!$userSets[$value['ID']]) { continue; } unset($value['STRING_ID']); unset($value['SORT']); if (empty($value['NAME'])) { $value['NAME'] = GetMessage('MAIN_SMILE_SET_NAME', array('#ID#' => $key)); } $result['SMILE_SET'][] = $value; } return $result; }
static function getSmiles($type, $lang) { $type = $type == "I" ? CSmile::TYPE_ICON : CSmile::TYPE_SMILE; $key = "new_" . $type . "_" . $lang; if (!array_key_exists($key, self::$smiles)) { $smiles = CSmile::getByGalleryId($type, COption::GetOptionInt("forum", "smile_gallery_id", 0), $lang); $result = array(); foreach ($smiles as $smile) { if ($smile['HIDDEN'] == 'Y') { continue; } $result[] = array('SET_ID' => $smile['SET_ID'], 'NAME' => $smile['NAME'], 'IMAGE' => ($smile['TYPE'] == CSmile::TYPE_SMILE ? CSmile::PATH_TO_SMILE : CSmile::PATH_TO_ICON) . $smile["SET_ID"] . "/" . $smile["IMAGE"], 'TYPING' => $smile['TYPING'], 'WIDTH' => $smile['IMAGE_WIDTH'], 'HEIGHT' => $smile['IMAGE_HEIGHT']); } self::$smiles[$key] = $result; } return self::$smiles[$key]; }