You are here

public function Node::reactTo in Audit Log 8.2

Same name and namespace in other branches
  1. 8 src/EventSubscriber/Node.php \Drupal\audit_log\EventSubscriber\Node::reactTo()

Processes an event.

Parameters

\Drupal\audit_log\AuditLogEventInterface $event: The audit event.

Return value

bool TRUE if the event subscriber handled the event.

Overrides EventSubscriberInterface::reactTo

File

src/EventSubscriber/Node.php, line 18

Class

Node
Processes node entity events.

Namespace

Drupal\audit_log\EventSubscriber

Code

public function reactTo(AuditLogEventInterface $event) {
  $entity = $event
    ->getEntity();
  if ($entity
    ->getEntityTypeId() != $this
    ->getEntityType()) {
    return FALSE;
  }
  $event_type = $event
    ->getEventType();

  /** @var \Drupal\node\NodeInterface $entity */
  $current_state = $entity
    ->isPublished() ? 'published' : 'unpublished';
  $previous_state = '';
  if (isset($entity->original)) {
    $previous_state = $entity->original
      ->isPublished() ? 'published' : 'unpublished';
  }
  $args = [
    '@title' => Markup::create($entity
      ->label()),
  ];
  if ($event_type == 'insert') {
    $event
      ->setMessage(t('@title was created.', $args))
      ->setPreviousState(NULL)
      ->setCurrentState($current_state);
    return TRUE;
  }
  if ($event_type == 'update') {
    $event
      ->setMessage(t('@title was updated.', $args))
      ->setPreviousState($previous_state)
      ->setCurrentState($current_state);
    return TRUE;
  }
  if ($event_type == 'delete') {
    $event
      ->setMessage(t('@title was deleted.', $args))
      ->setPreviousState($previous_state)
      ->setCurrentState(NULL);
    return TRUE;
  }
  return FALSE;
}