function social_private_message_views_query_alter in Open Social 10.1.x
Same name and namespace in other branches
- 8.9 modules/social_features/social_private_message/social_private_message.module \social_private_message_views_query_alter()
- 8.2 modules/social_features/social_private_message/social_private_message.module \social_private_message_views_query_alter()
- 8.3 modules/social_features/social_private_message/social_private_message.module \social_private_message_views_query_alter()
- 8.4 modules/social_features/social_private_message/social_private_message.module \social_private_message_views_query_alter()
- 8.5 modules/social_features/social_private_message/social_private_message.module \social_private_message_views_query_alter()
- 8.6 modules/social_features/social_private_message/social_private_message.module \social_private_message_views_query_alter()
- 8.7 modules/social_features/social_private_message/social_private_message.module \social_private_message_views_query_alter()
- 8.8 modules/social_features/social_private_message/social_private_message.module \social_private_message_views_query_alter()
- 10.3.x modules/social_features/social_private_message/social_private_message.module \social_private_message_views_query_alter()
- 10.0.x modules/social_features/social_private_message/social_private_message.module \social_private_message_views_query_alter()
- 10.2.x modules/social_features/social_private_message/social_private_message.module \social_private_message_views_query_alter()
Implements hook_views_query_alter().
File
- modules/
social_features/ social_private_message/ social_private_message.module, line 617 - The Social Privagte Message module.
Code
function social_private_message_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
if ($view
->id() == 'inbox') {
// Current user.
$current_user_id = \Drupal::currentUser()
->id();
// Add join definition.
$definition = [
'table' => 'pm_thread_delete_time',
'field' => 'id',
'left_table' => 'private_message_thread__last_delete_time',
'left_field' => 'last_delete_time_target_id',
'operator' => '=',
'extra' => 'pm_thread_delete_time.delete_time <= private_messages_private_message_thread__private_messages.created',
];
// Create a join stement from plugin.
$join = Drupal::service('plugin.manager.views.join')
->createInstance('standard', $definition);
// Add join to the query.
$query
->addRelationship('pm_thread_delete_time', $join, 'delete_time');
// Add some extra where statements.
$query
->addWhere(NULL, 'private_message_thread__members.members_target_id', $current_user_id, '=');
$query
->addWhere(NULL, 'pm_thread_delete_time.owner', $current_user_id, '=');
}
}