Your IP : 3.138.124.40


Current Path : /home/bitrix/ext_www/klimatlend.ua/bitrix/modules/socialnetwork/lib/commentaux/
Upload File :
Current File : /home/bitrix/ext_www/klimatlend.ua/bitrix/modules/socialnetwork/lib/commentaux/fileversion.php

<?php
namespace Bitrix\Socialnetwork\CommentAux;

use Bitrix\Disk\Configuration;
use Bitrix\Main\UserTable;
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Loader;

Loc::loadMessages(__FILE__);

final class FileVersion extends Base
{
	const TYPE = 'FILEVERSION';
	const POST_TEXT = 'commentAuxFileVersion';

	public function getParamsFromFields($fields = array())
	{
		$params = array();

		if (!empty($fields['AUTHOR_ID']))
		{
			$params['userId'] = intval($fields['AUTHOR_ID']);
		}

		return $params;
	}

	public function getText()
	{
		static $userCache = array();

		$params = $this->params;

		$gender = '';

		if (
			!empty($params['userId'])
			&& intval($params['userId']) > 0
		)
		{
			if (
				isset($userCache[intval($params['userId'])])
				&& is_array($userCache[intval($params['userId'])])
				&& isset($userCache[intval($params['userId'])]['PERSONAL_GENDER'])
			)
			{
				$gender = $userCache[intval($params['userId'])]['PERSONAL_GENDER'];
			}
			else
			{
				$res = UserTable::getList(array(
					'filter' => array(
						'=ID' => intval($params['userId'])
					),
					'select' => array('ID', 'PERSONAL_GENDER')
				));

				if ($user = $res->fetch())
				{
					$userCache[$user['ID']] = $user;
					$gender = $user['PERSONAL_GENDER'];
				}
			}
		}

		if(Loader::includeModule('disk') && !Configuration::isEnabledKeepVersion())
		{
			return Loc::getMessage('SONET_COMMENTAUX_HEAD_FILEVERSION_TEXT'.(!empty($gender) ? '_'.$gender : ''));
		}

		return Loc::getMessage('SONET_COMMENTAUX_FILEVERSION_TEXT'.(!empty($gender) ? '_'.$gender : ''));
	}

	public function sendRatingNotification($fields = array(), $ratingVoteParams = array())
	{
		$userId = (
			is_array($ratingVoteParams)
			&& isset($ratingVoteParams['OWNER_ID'])
				? intval($ratingVoteParams['OWNER_ID'])
				: 0
		);

		if (
			$userId > 0
			&& is_array($fields)
			&& Loader::includeModule('im')
		)
		{
			$params = $this->getParamsFromFields($fields);
			if (!empty($params))
			{
				$this->setParams($params);

				$followValue = \CSocNetLogFollow::getExactValueByRating(
					$userId,
					'BLOG_COMMENT',
					$fields['ID']
				);

				if ($followValue != "N")
				{
					$ratingVoteParams['ENTITY_LINK'] = $this->getRatingCommentLink(array(
						'commentId' => $fields['ID'],
						'commentAuthorId' => $ratingVoteParams['OWNER_ID']
					));

					$ratingVoteParams["ENTITY_PARAM"] = 'COMMENT';
					$ratingVoteParams["ENTITY_MESSAGE"] = $this->getText();

					$messageFields = array(
						"MESSAGE_TYPE" => IM_MESSAGE_SYSTEM,
						"TO_USER_ID" => $userId,
						"FROM_USER_ID" => intval($ratingVoteParams['USER_ID']),
						"NOTIFY_TYPE" => IM_NOTIFY_FROM,
						"NOTIFY_MODULE" => "main",
						"NOTIFY_EVENT" => "rating_vote",
						"NOTIFY_TAG" => "RATING|".($ratingVoteParams['VALUE'] >= 0 ? "" : "DL|")."BLOG_COMMENT|".$fields['ID'],
						"NOTIFY_MESSAGE" => \CIMEvent::getMessageRatingVote($ratingVoteParams),
						"NOTIFY_MESSAGE_OUT" => \CIMEvent::getMessageRatingVote($ratingVoteParams, true)
					);

					\CIMNotify::add($messageFields);
				}
			}
		}
	}

	public function checkRecalcNeeded($fields, $params)
	{
		return false;
	}
}