Under Review

当他们在活动流窗口中标记时通知用户

正如我们所知,7.x可以选择在框中创建一个新帖子时标记用户的选项。但是,不幸的是,没有内置功能,以便在他/她被标记后通知用户。

大学教师’担心!在本文中,我们将如何看看我们如何发送电子邮件警报,或者在另一个糖类用户身上被标记为用户在活动流中为用户创建通知。

tagged.png.

在上面的图像中,用户Venkat已由管理员在Lead.see的“活动流”窗口下标记为Venkat以下’通知指标。

tag_notification.png.

单击它后,系统将带您到通知详细信息视图。

tage_notification_detail.png

在描述中,您可以看到评论用户在标记期间写道。点击铅’s name用户可以直接导航到主角下的活动流窗口’记录并更新他/她的评论。

让’s开始实施这个。

Step 1

  将文件〜客户端/基本/视图/ activityStream-Omnibar.js复制到自定义/客户端/基础/视图/ activityStream-Omnibar.js并修改如下addpost方法

addpost:function(){

        var self = this,

           parentId = this.context.parent.get("model").id,

           parentType = this.context.parent.get("model").module,

           附件=这个。$('.activitystream-待处理附件'),

           $ submitButton =此。$('button.addPost'),

            bean;

        if (parentType == 'Home' || parentType == 'Activities') {

            parentType = null;

            parentId = null;

        }

        var payload = {

            activity_type: "post",

           parent_id:parentId ||空值,

           parent_type:parentType,

            data: {}

        };

       if(!$ submenbutton.hasclass('disabled')) {

           payload.data = this.getpost();

           if(payload.data.value.&&(payload.data.value.length.> 0)) {

               $ submitbutton.addclass('disabled');

               bean = app.data.createbean('Activities');

               bean.save(有效载荷,{

                   成功:功能(模型){

//添加了自定义代码以使API调用通知标记的用户。

            var注释= $。修剪(model.get('data')['value'].split(']').pop());

            var用户= model.get('data')['tags'];

            var module_name =(!_。isundefined(model.get('data')['目的'])) ? model.get('data')['对象'] ['模块']:'';

            var record_id =(!_。isundefined(model.get('data')['目的'])) ? model.get('data')['object']['id'] : '';

            数据={users:users,comment:comment,module_name:module_name,record_id:record_id};

            app.api.call('create',app.api.buildURL('通知/ CreateNotification.'),data,{

             

            })

                        自我。$('div.sayit').empty().trigger('change').focus();

                        model.set('picture', app.user.get('picture'));

                       self.collection.add(模型);

                       self.context.trigger('ActivityStream:Post:Prepend', model);

                    },

                   完成:函数(){

                       $ submitButton.removeclass('disabled');

                    },

                    showAlerts: true

                });

            }

            this.trigger("attachments:process");

        }

    },

Step 2

现在在以下路径createTagnotificationApi.php中创建一个新文件

自定义/模块/通知/客户端/基础/ API / CreateTagnotificationApi.php

并添加以下代码

<?php

  if(!定义('sugarEntry')|| !Sugarentry)死亡('不是有效的入口点');

  Class CreateTagnotificationAPI扩展了Sugarapi {

    公共功能注射器(){

      返回array(

        'createNotification' => array(

          'reqType' => 'POST',

          'path' => array('Notifications','createNotification'),

          'pathVars' => array(),

          'method' => 'createNotification',

          'shortHelp' => '自定义API每当他在活动流中发出时为用户创建通知',

          'longHelp' => '',

        ),

      ); 

    }

    公共功能createNotification($ API,$ ARGS){

      foreach($ args ['用户] AS $ USER){

        Global $ app_list_strings;

        全球$ current_user;

        $ notification = beanfactory :: newbean("Notifications");

        $通知 - >DESCHARDED_USER_ID = $ USER ['ID'];

        $通知 - >severity="alert";

        $通知 - >is_read=0;

        $通知 - >deleted=0;

        $通知 - >created_by = $ current_user->id;

        $通知 - >modified_user_id = $ current_user->id;

        $通知 - >描述= $ args ['评论'];

        $通知 - >parent_type = $ args ['module_name'];

        $通知 - >parent_id = $ args ['record_id'];

        $通知 - >name = trim($ current_user->first_name." ".$current_user->last_name)."在他/她的新帖子中提到你";

        $通知 - >save();

      }

      返回"success";

    }

  }

?>

注意:要发送电子邮件提醒您可以自定义 创造Notification() 用于发送电子邮件的自定义代码的方法。可以如下所获取用户的电子邮件ID。

$ userbean = beanfactory :: getBean(用户,$用户['id']);

$ primary_email = $ userbean->email1;

Step 3

导航到管理员> Repair >快速修复和重建

谢谢!

父母
没有数据
评论
  • $ core_v2_ui.getresizedimagehtml($ compual.user.avatarurl,44,44,44,“%{border ='0px',alt = $ compougin.user.displayname,resizemethod ='zoomandcrop'}”)
    $ core_v2_ui.userpresence($ comminy.user.id) $ compount.user.displayname. 超过2020年前
    此评论正在审核。
孩子们
没有数据