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

时间:2012-03-06 07:14:47

标签: php zend-framework joomla

我在Jomsocial中创建了一条规则,为邀请非用户的会员奖励积分..但现在的问题是......这些积分甚至被授予

  1. 当会员进入“邀请朋友”页面时
  2. 会员向用户发送电子邮件时所获得的积分(从不检查用户是否是网络中的会员)
  3. 我该如何限制?

    我只有在将电子邮件发送给“非用户”或非用户点击电子邮件正文中的链接时才需要奖励积分。

    目前在函数内部使用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');
        }
    }
    

1 个答案:

答案 0 :(得分:0)

我的爷爷常常说:“当你大喊大叫时 - 我听到你,当你说话的时候 - 我正在听......”;)

这两个问题中的一个,我相信您可以通过修改代码来解决,如下所示:

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