- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/loglist/param.php
- Класс: BitrixSocialnetworkComponentLogListParam
- Вызов: Param::processPresetFilterParams
public function processPresetFilterParams(&$componentParams): void
{
global $USER;
$request = $this->getRequest();
$presetFilterTopId = $this->getComponent()->getPresetFilterTopIdValue();
$presetFilterId = $this->getComponent()->getPresetFilterIdValue();
$commentsNeeded = $this->getComponent()->getCommentsNeededValue();
if(
$request->get('preset_filter_top_id') <> ''
&& $request->get('preset_filter_top_id') !== 'clearall'
)
{
$presetFilterTopId = $request->get('preset_filter_top_id');
}
elseif (
isset($componentParams['preset_filter_top_id'])
&& $componentParams['preset_filter_top_id'] <> ''
&& $componentParams['preset_filter_top_id'] !== 'clearall'
) // from nextPage ajax request
{
$presetFilterTopId = $componentParams['preset_filter_top_id'];
}
if(
$request->get('preset_filter_id') <> ''
&& $request->get('preset_filter_id') !== 'clearall'
)
{
$presetFilterId = $request->get('preset_filter_id');
}
elseif (
isset($componentParams['preset_filter_id'])
&& $componentParams['preset_filter_id'] <> ''
&& $componentParams['preset_filter_id'] !== 'clearall'
) // from nextPage ajax request
{
$presetFilterId = $componentParams['preset_filter_id'];
}
$presetFiltersOptions = $presetFiltersList = false;
if (
$componentParams['SHOW_EVENT_ID_FILTER'] !== 'N'
&& $USER->isAuthorized()
)
{
$presetFiltersOptions = CUserOptions::getOption('socialnetwork', '~log_filter_'.SITE_ID);
if (!is_array($presetFiltersOptions))
{
$presetFiltersOptions = CUserOptions::getOption('socialnetwork', '~log_filter');
}
}
if (
is_array($presetFiltersOptions)
&& $componentParams['SHOW_EVENT_ID_FILTER'] !== 'N'
&& $componentParams['IS_CRM'] !== 'Y'
)
{
if($request->get('preset_filter_id') <> '')
{
CUserOptions::deleteOption('socialnetwork', '~log_'.$componentParams['ENTITY_TYPE'].'_'.($componentParams['ENTITY_TYPE'] == SONET_ENTITY_GROUP ? $componentParams['GROUP_ID'] : $componentParams['USER_ID']));
}
$presetFiltersList = CSocNetLogComponent::convertPresetToFilters($presetFiltersOptions, $componentParams);
// to filter component
$livefeedFilterHandler = new FilterHandler([
'filterItems' => $presetFiltersList
]);
AddEventHandler('socialnetwork', 'OnBeforeSonetLogFilterFill', [ $livefeedFilterHandler, 'OnBeforeSonetLogFilterFill' ]);
}
if (
$componentParams['IS_CRM'] === 'Y'
&& isset($componentParams['CRM_ENTITY_TYPE'])
&& Loader::includeModule('crm')
)
{
$liveFeedFilter = new CCrmLiveFeedFilter([ 'EntityTypeID' => CCrmLiveFeedEntity::resolveEntityTypeID($componentParams['CRM_ENTITY_TYPE']) ]);
AddEventHandler('socialnetwork', 'OnSonetLogFilterProcess', [ $liveFeedFilter, 'OnSonetLogFilterProcess' ]);
}
$presetTopFiltersList = [];
if (!is_array($presetFiltersList))
{
$presetFiltersList = [];
}
$res = GetModuleEvents('socialnetwork', 'OnSonetLogFilterProcess');
while ($eventFields = $res->fetch())
{
$eventResult = ExecuteModuleEventEx($eventFields, [ $presetFilterTopId, $presetFilterId, $presetTopFiltersList, $presetFiltersList ]);
if (is_array($eventResult))
{
if (isset($eventResult['GET_COMMENTS']))
{
$commentsNeeded = $eventResult['GET_COMMENTS'];
}
if (isset($eventResult['PARAMS']) && is_array($eventResult['PARAMS']))
{
foreach($eventResult['PARAMS'] as $key => $value)
{
$componentParams[$key] = $value;
}
}
}
}
if ($componentParams['SHOW_EVENT_ID_FILTER'] !== 'N')
{
$eventResult = CSocNetLogComponent::onSonetLogFilterProcess($presetFilterTopId, $presetFilterId, $presetTopFiltersList, $presetFiltersList);
if (is_array($eventResult))
{
if (isset($eventResult['GET_COMMENTS']))
{
$commentsNeeded = $eventResult['GET_COMMENTS'];
}
if (isset($eventResult['PARAMS']) && is_array($eventResult['PARAMS']))
{
foreach($eventResult['PARAMS'] as $key => $value)
{
$componentParams[$key] = $value;
}
}
}
}
$this->getComponent()->setPresetFilterTopIdValue($presetFilterTopId);
$this->getComponent()->setPresetFilterIdValue($presetFilterId);
$this->getComponent()->setCommentsNeededValue($commentsNeeded);
}