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();
}
}
