• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglist/processor.php
  • Класс: BitrixSocialnetworkComponentLogListProcessor
  • Вызов: Processor::getSmiles
public function getSmiles(&$result): void
{
	global $CACHE_MANAGER;

	if (!empty($this->getComponent()->getErrors()))
	{
		return;
	}

	if (Loader::includeModule('forum'))
	{
		$result['Smiles'] = Option::get('forum', 'smile_gallery_id', 0);
	}
	else
	{
		$cacheId = 'b_sonet_smile_'.LANGUAGE_ID;

		if ($CACHE_MANAGER->read(604800, $cacheId))
		{
			$result['Smiles'] = $CACHE_MANAGER->get($cacheId);
		}
		else
		{
			$result['Smiles'] = [];

			$res = CSocNetSmile::getList(
				[ 'SORT' => 'ASC' ],
				[
					'SMILE_TYPE' => 'S',
					'LANG_LID' => LANGUAGE_ID
				],
				false,
				false,
				[ 'ID', 'IMAGE', 'DESCRIPTION', 'TYPING', 'SMILE_TYPE', 'SORT', 'LANG_NAME' ]
			);
			while ($smileFields = $res->fetch())
			{
				[$type] = explode(' ', $smileFields['TYPING']);
				$smileFields['TYPE'] = str_replace("'", "'", $type);
				$smileFields['TYPE'] = str_replace("\", "\\", $smileFields['TYPE']);
				$smileFields['NAME'] = $smileFields['LANG_NAME'];
				$smileFields['IMAGE'] = '/bitrix/images/socialnetwork/smile/'.$smileFields['IMAGE'];

				$result['Smiles'][] = $smileFields;
			}

			$CACHE_MANAGER->set($cacheId, $result['Smiles']);
		}
	}
}