网络中邀请非用户的成员的积分


Points for members in a network who invites non users

我在Jomsocial中创建了一条规则,为邀请非用户的会员奖励积分。。但现在的问题是。。。即使也会获得积分

  1. 当会员进入"邀请好友"页面时
  2. 会员向用户发送电子邮件时获得的积分(从不检查用户是否为网络中的会员)

我该如何限制?

只有当电子邮件发送给"非用户"或非用户单击电子邮件正文中的链接时,我才需要奖励积分。

目前这是在components/com_community/libraries/mailq.php中使用的函数:

public function send( $total = 100 )
{
    $mailqModel = CFactory::getModel( 'mailq' );
    $userModel  = CFactory::getModel( 'user' );
    $mails      = $mailqModel->get( $total, true );
    $jconfig    = JFactory::getConfig();
    $mailer     = JFactory::getMailer();
    $config     = CFactory::getConfig();
    $senderEmail  = $jconfig->getValue('mailfrom');
    $senderName   = $jconfig->getValue('fromname');

以下代码用于奖励积分。我认为还需要添加一些条件来验证它:

if($senderName)
{
    $JomSocialCheck = JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php';
    if ( file_exists($JomSocialCheck)) {
        include_once( JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php');
        CuserPoints::assignPoint('com_user.add.friend');
    }
}

我爷爷过去常说:"当你大喊大叫时——我听到了,当你说话时——我在听…";)

这两个问题之一,我相信你可以通过如下修改代码来解决:

if($senderName)
{
    $JomSocialCheck = JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php';
if ( file_exists($JomSocialCheck)) {
    include_once( JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php');
    $user =& JFactory::getUser();
    if($user->id) {
    // he's already a user - do nothing
    }
    else {
      CuserPoints::assignPoint('com_user.add.friend');
    }
  }
 }