You are here

event_log_track_workflows.module in Events Log Track 8.2

Logs workflows commands in the event_log_track module.

File

event_log_track_workflows/event_log_track_workflows.module
View source
<?php

/**
 * @file
 * Logs workflows commands in the event_log_track module.
 */

/**
 * Implements hook_event_log_track_handlers().
 */
function event_log_track_workflows_event_log_track_handlers() {

  // Workflows event log handler.
  $handlers = [];
  $handlers['workflows'] = [
    'title' => t('Workflows'),
  ];
  return $handlers;
}

/**
 * Implements hook_node_insert().
 */
function event_log_track_workflows_node_insert($node) {

  /** @var \Drupal\node\NodeInterface $node */
  if (!$node
    ->hasField('moderation_state')) {
    return;
  }
  $new_state = $node
    ->get("moderation_state")
    ->getString();
  $log = [
    'type' => 'workflows',
    'operation' => 'insert',
    'description' => t('%type: %title - New node created with workflow state %new_state', [
      '%type' => $node
        ->getType(),
      '%title' => $node
        ->getTitle(),
      '%new_state' => $new_state,
    ]),
    'ref_numeric' => $node
      ->id(),
    'ref_char' => $node
      ->getTitle(),
  ];
  event_log_track_insert($log);
}

/**
 * Implements hook_node_update().
 */
function event_log_track_workflows_node_update($node) {

  /** @var \Drupal\node\NodeInterface $node */
  if (!$node
    ->hasField('moderation_state')) {
    return;
  }
  $new_state = $node
    ->get("moderation_state")
    ->getString();
  $old_state = $node->original
    ->get("moderation_state")
    ->getString();
  if ($old_state != $new_state) {
    $log = [
      'type' => 'workflows',
      'operation' => 'update',
      'description' => t('%type: %title - Workflow state changed from %old_state to %new_state', [
        '%type' => $node
          ->getType(),
        '%title' => $node
          ->getTitle(),
        '%old_state' => $old_state,
        '%new_state' => $new_state,
      ]),
      'ref_numeric' => $node
        ->id(),
      'ref_char' => $node
        ->getTitle(),
    ];
    event_log_track_insert($log);
  }
}