发送消息的socialengine事件

时间:2015-12-11 06:17:35

标签: event-handling messagebox sendmessage socialengine

我正在为SocialEngine 4.8.9制作模块。基本上我是buildin聊天模块,我想与我的聊天框同步SocialEngine消息。所以我需要一个在发送消息后调用的事件,以便我可以插入到我的表中 或者是否在将值插入数据库后调用了任何事件。

2 个答案:

答案 0 :(得分:1)

SocialEngine有很多钩子,您可以将操作附加到这些钩子上。其中一个钩子是 onItemCreateAfter 。在数据库中创建模型项时将调用此事件。

如果您查看消息模块的清单文件,您会看到消息模块有2个型号,名为 messages_message messages_conversation ,因此您可以在创建这两个项目中的任何一个时,使用 onItemCreateAfter 挂钩来附加您的操作。

对于这个例子,假设你已经通过SocialEngine的SDK创建了一个模块,你的模块名称是 mymodule 。您可以分两步开始使用钩子:

  1. 将您的操作附加到模块清单文件中的 onItemCreateAfter 挂钩。您可以检查其他模块中的清单文件,以了解如何在清单数组中编写以下代码。
  2. 文件: application / modules / Mymodule / settings / manifest.php

    'hooks' => array(
      array(
        'event' => 'onItemCreateAfter',
        'resource' => 'Mymodule_Plugin_Core',
      ),
    ),
    
    1. 创建将由挂钩调用的插件文件。在以下代码中, $ payload 对象将包含消息项。
    2. 文件: application / modules / Mymodule / Plugin / Core.php

      class Mymodule_Plugin_Core
      {
        public function onItemCreateAfter($event)
        {
          $payload = $event->getPayload();
      
          if( $payload instanceof Core_Model_Item_Abstract ) {
      
            //Your code here 
      
          }
        }
      }
      

答案 1 :(得分:0)

没有用于撰写邮件的默认挂钩。您可以为邮件创建新的自定义挂钩,并且可以在每次发送邮件时调用该挂钩。

实施例:http://social-engine-tutorials.blogspot.in/2012/03/social-engine-4-hook-example.html