- Модуль: lists
- Путь к файлу: ~/bitrix/modules/lists/classes/general/livefeed.php
- Класс: CListsLiveFeed
- Вызов: CListsLiveFeed::setSocnetFollow
static function setSocnetFollow($users = array(), $logId, $type, $manualMode = false, $addingComment = false)
{
if($manualMode)
{
foreach($users as $userId)
{
$logFollowObject = CSocNetLogFollow::getList(
array('USER_ID' => $userId, 'REF_ID' => $logId), array('BY_WF', 'TYPE'));
$logFollow = $logFollowObject->fetch();
if(!empty($logFollow) && $logFollow['TYPE'] == 'Y' && !$logFollow['BY_WF'])
{
CSocNetLogFollow::delete($userId, 'L'.$logId, false);
CSocNetLogFollow::set($userId, 'L'.$logId, $type,
ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL", SITE_ID), SITE_ID, true);
if (
$type == 'Y'
&& method_exists('BitrixSocialnetworkComponentHelper','userLogSubscribe')
)
{
BitrixSocialnetworkComponentHelper::userLogSubscribe(array(
'logId' => $logId,
'userId' => $userId,
'typeList' => array(
'COUNTER_COMMENT_PUSH'
)
));
}
}
}
}
else
{
if($type == 'Y')
{
foreach($users as $userId)
{
$logFollowObject = CSocNetLogFollow::getList(
array('USER_ID' => $userId, 'REF_ID' => $logId), array('BY_WF'));
$logFollow = $logFollowObject->fetch();
if(
empty($logFollow)
|| ($logFollow['BY_WF'] == 'Y' || $addingComment)
)
{
CSocNetLogFollow::delete($userId, 'L'.$logId, false);
if (method_exists('BitrixSocialnetworkComponentHelper','userLogSubscribe'))
{
BitrixSocialnetworkComponentHelper::userLogSubscribe(array(
'logId' => $logId,
'userId' => $userId,
'typeList' => array(
'FOLLOW',
'COUNTER_COMMENT_PUSH'
),
'followDate' => 'CURRENT',
'followByWF' => true
));
}
else
{
CSocNetLogFollow::set($userId, 'L'.$logId, 'Y',
ConvertTimeStamp(time() + CTimeZone::GetOffset(), "FULL", SITE_ID), SITE_ID, true);
}
}
}
}
else
{
foreach($users as $userId)
{
$logFollowObject = CSocNetLogFollow::getList(
array('USER_ID' => $userId, 'REF_ID' => $logId), array('BY_WF'));
$logFollow = $logFollowObject->fetch();
if(
empty($logFollow)
|| $logFollow['BY_WF'] == 'Y'
)
{
CSocNetLogFollow::set($userId, 'L'.$logId, 'N', false, SITE_ID, true);
}
}
}
}
}