• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/smile.php
  • Класс: CSmileGallery
  • Вызов: CSmileGallery::getSmilesWithSets
static function getSmilesWithSets($galleryId = self::GALLERY_DEFAULT, $options = [])
{
	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();

	$fullTypings = isset($options['FULL_TYPINGS']) && $options['FULL_TYPINGS'] === 'Y';

	$userSets = Array();
	foreach ($smiles as $smile)
	{
		if ($smile['HIDDEN'] == 'Y')
			continue;

		$typing = explode(" ", $smile['TYPING']);
		if (isset($result['SMILE'][$typing[0]]))
			continue;

		$result['SMILE'][] = Array(
			'ID' => (int)$smile['ID'],
			'SET_ID' => (int)$smile['SET_ID'],
			'NAME' => $smile['NAME'],
			'IMAGE' => CSmile::PATH_TO_SMILE.$smile["SET_ID"]."/".$smile["IMAGE"],
			'TYPING' => $fullTypings? $smile['TYPING']: $typing[0],
			'WIDTH' => (int)$smile['IMAGE_WIDTH'],
			'HEIGHT' => (int)$smile['IMAGE_HEIGHT'],
			'DEFINITION' => $smile['IMAGE_DEFINITION'],
		);
		$userSets[$smile['SET_ID']] = true;
	}
	foreach ($smilesSet as $key => $value)
	{
		if (!$userSets[$value['ID']])
			continue;

		if (empty($value['NAME']))
			$value['NAME'] = GetMessage('MAIN_SMILE_SET_NAME', Array('#ID#' => $key));

		$result['SMILE_SET'][] = Array(
			'ID' => (int)$value['ID'],
			'PARENT_ID' => (int)$value['PARENT_ID'],
			'NAME' => $value['NAME'],
			'TYPE' => $value['TYPE'],
		);
	}

	return $result;
}