• Модуль: vote
  • Путь к файлу: ~/bitrix/modules/vote/lib/uf/voteusertype.php
  • Класс: BitrixVoteUfVoteUserType
  • Вызов: VoteUserType::onBeforeCopy
static function onBeforeCopy(array $userField, int $newEntityId, $attachedId, $implementer, $userId = false)
{
	if (empty($userField) || empty($attachedId))
	{
		return "";
	}

	$userId = self::getOrCheckUserId($userId);
	$userFieldManager = Manager::getInstance($userField);

	$attachedObject = $userFieldManager->loadFromAttachId($attachedId);

	$voteId = 0;
	if (is_callable([$implementer, "copyVote"]))
	{
		$voteId = $implementer->copyVote($attachedObject->getVoteId());
	}

	$attachedId = "";
	if ($voteId > 0)
	{
		$attachedId = AttachTable::add([
			"MODULE_ID" => $attachedObject->getModuleId(),
			"OBJECT_ID" => $voteId,
			"ENTITY_ID" => $newEntityId,
			"ENTITY_TYPE" => $attachedObject->getEntityType(),
			"CREATED_BY" => $userId,
			"CREATE_TIME" => new DateTime()
		])->getId();
	}

	return $attachedId;
}