You are here

activity_basics.module in Open Social 10.0.x

File

modules/custom/activity_basics/activity_basics.module
View source
<?php

/**
 * @file
 * Contains activity_basics.module.
 */
use Drupal\Core\Entity\EntityInterface;
use Drupal\node\NodeInterface;
use Drupal\group\Entity\GroupContent;

/**
 * Implements hook_entity_insert().
 */
function activity_basics_entity_insert(EntityInterface $entity) {
  _activity_basics_entity_action($entity, 'create_entitiy_action');
}

/**
 * Implements hook_entity_update().
 */
function activity_basics_entity_update(EntityInterface $entity) {
  _activity_basics_entity_action($entity, 'update_entity_action');
}

/**
 * Implements hook_social_group_move().
 */
function activity_basics_social_group_move(NodeInterface $node) {
  $node
    ->setCreatedTime($node
    ->getChangedTime());

  // If the node is placed within a new group, we add the move_entity_action
  // activity.
  $group_contents = GroupContent::loadByEntity($node);
  if (!empty($group_contents)) {
    _activity_basics_entity_action($node, 'move_entity_action');
  }

  // If the node is placed from a group in to the community, we add the
  // create_node-bundle_community activity.
  if (empty($group_contents)) {
    _activity_basics_entity_action($node, 'create_entitiy_action');
  }
}

/**
 * Create or modify some entity.
 *
 * @param \Drupal\Core\Entity\EntityInterface $entity
 *   The entity.
 * @param string $instance
 *   The instance.
 */
function _activity_basics_entity_action(EntityInterface $entity, $instance) {
  \Drupal::service('plugin.manager.activity_action.processor')
    ->createInstance($instance)
    ->create($entity);
}