• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/componenthelper.php
  • Класс: BitrixSocialnetworkComponentHelper
  • Вызов: ComponentHelper::hasTextInlineImage
static function hasTextInlineImage(string $text = '', array $ufData = []): bool
{
	$result = false;

	if (
		preg_match_all("#\[disk file id=(n?\d+)\]#is".BX_UTF_PCRE_MODIFIER, $text, $matches)
		&& Loader::includeModule('disk')
	)
	{
		$userFieldManager = Driver::getInstance()->getUserFieldManager();

		foreach ($matches[1] as $id)
		{
			$fileModel = null;
			[ $type, $realValue ] = FileUserType::detectType($id);

			if ($type === FileUserType::TYPE_NEW_OBJECT)
			{
				$fileModel = File::loadById($realValue);
				if(!$fileModel)
				{
					continue;
				}
			}
			else
			{
				$attachedModel = $userFieldManager->getAttachedObjectById($realValue);
				if(!$attachedModel)
				{
					continue;
				}

				$attachedModel->setOperableEntity([
					'ENTITY_ID' => $ufData['ENTITY_ID'],
					'ENTITY_VALUE_ID' => $ufData['ENTITY_VALUE_ID']
				]);
				$fileModel = $attachedModel->getFile();
			}

			if(TypeFile::isImage($fileModel))
			{
				$result = true;
				break;
			}
		}
	}

	return $result;
}