sports_league-8.x-1.x-dev/modules/sl_stats/sl_stats.module

modules/sl_stats/sl_stats.module
<?php

/**
 * @file
 * The SL stats module.
 */

/**
 * Implements hook_entity_update().
 */
function sl_stats_entity_update($entity) {
  if ($entity->getEntityTypeId() == 'node' && $entity->bundle() == 'sl_person') {

    if (!isset($entity->sl_stats_already_computed)) {
      $queue_factory = \Drupal::service('queue');
      $queue = $queue_factory->get('sl_stats_worker');

      $item = new \stdClass();
      $item->nid = $entity->id();
      $queue_items = \Drupal::service('database')->select('queue')
        ->fields('queue', [
          'item_id',
        ])
        ->condition('name', 'sl_stats_worker')
        ->condition('data', serialize($item))->execute()->fetchAll();

      if (!count($queue_items)) {
        $queue->createItem($item);
      }
    }
  }
}

/**
 * Implements hook_entity_extra_field_info().
 */
function sl_stats_entity_extra_field_info() {
  $extra = [];

  // Adds extra field to sl_person display.
  $extra['node']['sl_person']['display']['sl_stats_person'] = [
    'label' => t('Person stats'),
    'description' => t('Person stats'),
    'weight' => 100,
    'visible' => TRUE,
  ];

  return $extra;
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc