// массив идентификаторов пользователей, из блогов которых
// будут выбираться записи
$arEntityUsersID = array();
// массив идентификаторов групп, из блогов которых будут
// выбираться записи
$arEntityGroupsID = array();
if($arResult['ENTITY_TYPE'] == 'U') {
//лента пользователя
//можно ли смотреть друзей для данного пользователя,
// доступны ли вообще блоги и друзья
$getFriends = false;
if($arResult['CURRENT_ACCESS']['canViewUserFriends']) {
$getFriends = CPTK_SocialNetwork::IsAllowedFeature
(SONET_ENTITY_USER, 'blog') &&
CSocNetUser::IsFriendsAllowed();
}
// можно ли смотреть группы для данного пользователя
// и доступны ли вообще блоги для групп
if($arResult['CURRENT_ACCESS']['canViewUserGroups']) {
$getGroups = CPTK_SocialNetwork::IsAllowedFeature
(SONET_ENTITY_GROUP, 'blog');
}
Определим ID друзей пользователя (листинг 4).
if($getFriends) {
$arOrderUR = array();
$arFilterUR = array(
'RELATION' => SONET_RELATIONS_FRIEND,
'USER_ID' => $arResult['ENTITY_ID'],
);
$arGroupByUR = false;
$arNavigationUR = false;
$arSelectFieldsUR = array(
'FIRST_USER_ID',
'SECOND_USER_ID'
);
$rsItems = CSocNetUserRelations::GetList($arOrderUR,
$arFilterUR, $arGroupByUR, $arNavigationUR,
$arSelectFieldsUR);
while($arItem = $rsItems->Fetch())
{
$id_ = $arItem['FIRST_USER_ID'] ==
$arResult['ENTITY_ID'] ?
intval($arItem['SECOND_USER_ID']) :
intval($arItem['FIRST_USER_ID']);
$arEntityUsersID[$id_] = $id_;
}
unset($rsItems, $id_, $arOrderUR, $arGroupByUR,
$arNavigationUR, $arSelectFieldsUR);
}
Код исключения «закрытых» пользователей вынесен в конец модуля (он общий для двух типов лент). Схема довольно проста: добавим ID владельца в массив $arEntityUsersID, если включен режим вывода сообщений из блога владельца ленты. Здесь же важно заполнить записью массив $arEntityUsersID на случай, если пользователь запретил смотреть своих друзей (листинг 5).
Георгий Фёдорович Коваленко , Коллектив авторов , Мария Терентьевна Майстровская , Протоиерей Николай Чернокрак , Сергей Николаевич Федунов , Татьяна Леонидовна Астраханцева , Юрий Ростиславович Савельев
Биографии и Мемуары / Прочее / Изобразительное искусство, фотография / Документальное