- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/landing/livefeed.php
- Класс: BitrixSocialnetworkIntegrationLandingLivefeed
- Вызов: Livefeed::getRightsFilter
private function getRightsFilter()
{
global $CACHE_MANAGER;
$result = [];
$settingsFilter = $this->getFilter();
if (!is_array($settingsFilter))
{
$settingsFilter = [];
}
foreach ($settingsFilter as $filterField)
{
if (
!empty($filterField['key'])
&& !empty($filterField['value'])
&& $filterField['key'] == 'GROUP_ID'
&& $filterField['value'] != 'all'
)
{
$result[] = $filterField['value'];
if (defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->registerTag("landing_dynamic_filter_".$filterField['value']);
}
}
}
$groupIdList = array_filter(array_map(function($val) {
$res = false;
if (preg_match('/^SG(d+)$/i', $val, $matches))
{
$res = intval($matches[1]);
}
return $res;
}, $result), function ($val) {
return ($val > 0);
});
if (empty($groupIdList))
{
return $result;
}
$result = [];
$res = WorkgroupTable::getList([
'filter' => [
'=LANDING' => 'Y',
'=ACTIVE' => 'Y',
'@ID' => $groupIdList
],
'select' => [ 'ID' ]
]);
while ($workgroupFields = $res->fetch())
{
$result[] = 'SG'.$workgroupFields['ID'];
}
return $result;
}