public function ActivityLoggerFactory::checkIfMessageExist in Open Social 8.3
Same name and namespace in other branches
- 8.9 modules/custom/activity_logger/src/Service/ActivityLoggerFactory.php \Drupal\activity_logger\Service\ActivityLoggerFactory::checkIfMessageExist()
- 8.2 modules/custom/activity_logger/src/Service/ActivityLoggerFactory.php \Drupal\activity_logger\Service\ActivityLoggerFactory::checkIfMessageExist()
- 8.4 modules/custom/activity_logger/src/Service/ActivityLoggerFactory.php \Drupal\activity_logger\Service\ActivityLoggerFactory::checkIfMessageExist()
- 8.5 modules/custom/activity_logger/src/Service/ActivityLoggerFactory.php \Drupal\activity_logger\Service\ActivityLoggerFactory::checkIfMessageExist()
- 8.6 modules/custom/activity_logger/src/Service/ActivityLoggerFactory.php \Drupal\activity_logger\Service\ActivityLoggerFactory::checkIfMessageExist()
- 8.7 modules/custom/activity_logger/src/Service/ActivityLoggerFactory.php \Drupal\activity_logger\Service\ActivityLoggerFactory::checkIfMessageExist()
- 8.8 modules/custom/activity_logger/src/Service/ActivityLoggerFactory.php \Drupal\activity_logger\Service\ActivityLoggerFactory::checkIfMessageExist()
- 10.3.x modules/custom/activity_logger/src/Service/ActivityLoggerFactory.php \Drupal\activity_logger\Service\ActivityLoggerFactory::checkIfMessageExist()
- 10.0.x modules/custom/activity_logger/src/Service/ActivityLoggerFactory.php \Drupal\activity_logger\Service\ActivityLoggerFactory::checkIfMessageExist()
- 10.1.x modules/custom/activity_logger/src/Service/ActivityLoggerFactory.php \Drupal\activity_logger\Service\ActivityLoggerFactory::checkIfMessageExist()
- 10.2.x modules/custom/activity_logger/src/Service/ActivityLoggerFactory.php \Drupal\activity_logger\Service\ActivityLoggerFactory::checkIfMessageExist()
Checks if a message already exists.
Parameters
string $message_type: The message type.
string $context: The context of the message.
array $destination: The array of destinations to check for, include delta as well.
array $related_object: The related object, include target_type and target_id in array.
string $uid: The uid of the message.
Return value
int Returns true if the message exists.
1 call to ActivityLoggerFactory::checkIfMessageExist()
- ActivityLoggerFactory::createMessages in modules/
custom/ activity_logger/ src/ Service/ ActivityLoggerFactory.php - Create message entities.
File
- modules/
custom/ activity_logger/ src/ Service/ ActivityLoggerFactory.php, line 196
Class
- ActivityLoggerFactory
- Class ActivityLoggerFactory.
Namespace
Drupal\activity_logger\ServiceCode
public function checkIfMessageExist($message_type, $context, array $destination, array $related_object, $uid) {
$exists = FALSE;
$query = \Drupal::entityQuery('message');
$query
->condition('template', $message_type);
$query
->condition('field_message_related_object.target_id', $related_object['target_id']);
$query
->condition('field_message_related_object.target_type', $related_object['target_type']);
$query
->condition('field_message_context', $context);
$query
->condition('uid', $uid);
if (is_array($destination)) {
foreach ($destination as $delta => $dest_value) {
$query
->condition('field_message_destination.' . $delta . '.value', $dest_value['value']);
}
}
$query
->accessCheck(FALSE);
// Fix duplicates for create_bundle_group && moved_content_between_groups
// create_bundle_group is run on cron, it could be there is already a
// message for moving content between groups. So we need to make sure we
// check if either create_bundle_group or move_content is already there
// before we add another message that content is created in a group.
$types = [
'moved_content_between_groups',
'create_topic_group',
'create_event_group',
];
if (in_array($message_type, $types, TRUE)) {
$query = \Drupal::entityQuery('message');
$query
->condition('template', $types, 'IN');
$query
->condition('field_message_related_object.target_id', $related_object['target_id']);
$query
->condition('field_message_related_object.target_type', $related_object['target_type']);
$query
->condition('field_message_context', $context);
$query
->condition('uid', $uid);
$query
->accessCheck(FALSE);
}
$ids = $query
->execute();
if (!empty($ids) && $message_type != 'moved_content_between_groups') {
$exists = TRUE;
}
return $exists;
}