flashpoint_message-8.x-1.x-dev/modules/flashpoint_comm_content_message/flashpoint_comm_content_message.module

modules/flashpoint_comm_content_message/flashpoint_comm_content_message.module
<?php

/**
 * @file
 * Holds hook implementation for the Flashpoint Message module.
 */

use Drupal\Core\Entity\ContentEntityBase;
use Drupal\flashpoint_community_content\Entity\FlashpointCommunityContent;
use Drupal\comment\Entity\Comment;
use Drupal\group\Entity\GroupContent;
use Drupal\message\Entity\Message;

/**
 * Implements hook_group_content_insert().
 */
function flashpoint_comm_content_message_group_content_insert(GroupContent $group_content) {
  $group = $group_content->getGroup();
  if($group->bundle() === 'flashpoint_community') {
    $flashpoint_community_content = $group_content->getEntity();
    if ($flashpoint_community_content->getEntityTypeId() === 'flashpoint_community_content') {
      $message = Message::create([
        'template' => 'flashpoint_comm_content_activity',
        'field_flashpoint_comm_c_user' => $flashpoint_community_content->getOwner(),
        'field_flashpoint_comm_c_action' => t('posted'),
        'field_flashpoint_m_arg_group' => $group,
        'field_flashpoint_comm_c_content' => $flashpoint_community_content]);
      $message->save();
    }
  }
}

/**
 * Implements hook_flashpoint_community_content_update().
 */
function flashpoint_comm_content_message_flashpoint_community_content_update(FlashpointCommunityContent $flashpoint_community_content) {
  if (empty($flashpoint_community_content->original)) {
    return;
  }
  else {
    $gc = GroupContent::loadByEntity($flashpoint_community_content);
    $group = array_shift($gc)->getGroup();

    $message = Message::create([
      'template' => 'flashpoint_comm_content_activity',
      'field_flashpoint_comm_c_user' => $flashpoint_community_content->getOwner(),
      'field_flashpoint_comm_c_action' => t('updated'),
      'field_flashpoint_m_arg_group' => $group,
      'field_flashpoint_comm_c_content' => $flashpoint_community_content]);
    $message->save();
  }
}

/**
 * Implements hook_comment_insert().
 */
function flashpoint_comm_content_message_comment_insert(Comment $comment) {
  $type = $comment->bundle();
  if (in_array($type, ['community_comments', 'flashpoint_community_comments'])) {
    $fcc_id = $comment->getCommentedEntityId();
    $flashpoint_community_content = FlashpointCommunityContent::load($fcc_id);
    $gc = GroupContent::loadByEntity($flashpoint_community_content);
    $group = array_shift($gc)->getGroup();

    $message = Message::create([
      'template' => 'flashpoint_comm_content_activity',
      'field_flashpoint_comm_c_user' => $flashpoint_community_content->getOwner(),
      'field_flashpoint_comm_c_action' => t('commented on'),
      'field_flashpoint_m_arg_group' => $group,
      'field_flashpoint_comm_c_content' => $flashpoint_community_content]);
    $message->save();
  }
}

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

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