function social_activity_preprocess_block in Open Social 10.1.x
Same name and namespace in other branches
- 8.9 modules/social_features/social_activity/social_activity.module \social_activity_preprocess_block()
- 10.3.x modules/social_features/social_activity/social_activity.module \social_activity_preprocess_block()
- 10.0.x modules/social_features/social_activity/social_activity.module \social_activity_preprocess_block()
- 10.2.x modules/social_features/social_activity/social_activity.module \social_activity_preprocess_block()
Implements hook_preprocess_HOOK().
File
- modules/
social_features/ social_activity/ social_activity.module, line 244 - The Social activity module.
Code
function social_activity_preprocess_block(&$variables) {
$route_match = \Drupal::routeMatch();
$allowed_routes = [
'entity.node.canonical',
'layout_builder.overrides.node.view',
];
$allowed_bundles = [
'dashboard',
'landing_page',
];
$allowed_content_names = [
'activity_stream',
'community_activities',
'activity_stream_profile',
'activity_stream_group',
];
if (($node = $route_match
->getParameter('node')) && $node instanceof NodeInterface) {
// Use lazy builder for stream blocks only if:
// 1. It on the node or landing builder page.
// 2. Node is a Dashboard or a Landing page
// 3. This block is from views.
// 4. View one of the stream views.
if (in_array($route_match
->getRouteName(), $allowed_routes) && in_array($node
->bundle(), $allowed_bundles) && $variables['base_plugin_id'] === 'views_block' && isset($variables['content']['#name']) && in_array($variables['content']['#name'], $allowed_content_names)) {
if ($node
->bundle() === 'dashboard') {
$variables['attributes']['class'][] = 'block-dashboard-activity-stream card';
}
/** @var \Drupal\views\ViewExecutable $view */
$view = $variables['content']['#view'];
$variables['content'] = [
'#create_placeholder' => TRUE,
'#lazy_builder' => [
'social_activity.lazy_builder:viewsLazyBuild',
[
$variables['content']['#name'],
$variables['content']['#display_id'],
$node
->bundle(),
$view
->getItemsPerPage(),
],
],
];
// Set vocabulary ID from views filter.
if (isset($view->filter_vocabulary)) {
$variables['content']['#lazy_builder'][1] = array_merge($variables['content']['#lazy_builder'][1], [
$view->filter_vocabulary,
]);
}
// Set taxonomy IDs from views filter.
if (isset($view->filter_tags) && is_array($view->filter_tags)) {
$variables['content']['#lazy_builder'][1] = array_merge($variables['content']['#lazy_builder'][1], array_keys($view->filter_tags));
}
}
}
}