Esempio n. 1
0
function Recalc($start, $tempsExec)
{
    global $mainframe;
    global $base;
    // check time execute
    list($usec, $sec) = explode(' ', microtime());
    $start_time = (double) $usec + (double) $sec;
    $new_time = $start_time;
    $db = JFactory::getDBO();
    $jnow = JFactory::getDate();
    $now = $jnow->toSql();
    // get params definitions
    $params = JComponentHelper::getParams('com_alphauserpoints');
    $prefixNewReferreid = strtoupper($params->get('prefix_selfregister'));
    //$prefixNewReferreid = "AUPRS-";
    if ($start) {
        $i = $start;
    } else {
        $i = 0;
    }
    $query = "SELECT referreid FROM #__alpha_userpoints WHERE referreid!='GUEST'";
    $db->setQuery($query);
    $users = $db->loadObjectList();
    $numusers = count($users);
    if ($users) {
        require_once JPATH_SITE . DS . 'components' . DS . 'com_alphauserpoints' . DS . 'helper.php';
        $allowNegativeAccount = $params->get('allowNegativeAccount', 0);
        for ($i, $n = $numusers; $i < $n; $i++) {
            if ($new_time - $start_time < $tempsExec) {
                $user = $users[$i];
                // real sum for each user
                $query = "SELECT SUM(points) FROM #__alpha_userpoints_details WHERE `referreid`='" . $user->referreid . "' AND `approved`='1' AND (`expire_date`>'{$now}' OR `expire_date`='0000-00-00 00:00:00')";
                $db->setQuery($query);
                $newtotal = $db->loadResult();
                if (!$allowNegativeAccount && $newtotal < 0) {
                    $newtotal = 0;
                }
                $query = "UPDATE #__alpha_userpoints SET `points`='" . $newtotal . "', `last_update`='{$now}' WHERE `referreid`='" . $user->referreid . "'";
                $db->setQuery($query);
                if (!$db->query()) {
                    $error = 'ERROR : update not complete';
                    echo '<script language="Javascript">
					<!--
					parent.document.location.replace("' . $base . 'index.php?option=com_alphauserpoints&task=cpanel&recalculate=' . $error . '");							
					// -->
					</script>';
                    exit;
                }
                // update Ranks / Medals if necessary
                AlphaUserPointsHelper::checkRankMedal($user->referreid);
            } else {
                // time ?
                break;
            }
            list($usec, $sec) = explode(" ", microtime());
            $new_time = (double) $usec + (double) $sec;
        }
        // for $i=
        if ($i == $numusers) {
            $start = -1;
        } else {
            $start = $i;
        }
        return $start;
    }
    // if users
}
Esempio n. 2
0
 function checkNewTotal($referreid, $rule_id)
 {
     $db = JFactory::getDBO();
     $jnow = JFactory::getDate();
     $now = $jnow->toSql();
     require_once JPATH_SITE . DS . 'components' . DS . 'com_alphauserpoints' . DS . 'helper.php';
     // recalculate for this user
     $query = "SELECT SUM(points) FROM #__alpha_userpoints_details WHERE `referreid`='" . $referreid . "' AND `approved`='1' AND (`expire_date`>'{$now}' OR `expire_date`='0000-00-00 00:00:00')";
     $db->setQuery($query);
     $newtotal = $db->loadResult();
     $query = "UPDATE #__alpha_userpoints SET `points`='" . $newtotal . "', `last_update`='{$now}' WHERE `referreid`='" . $referreid . "'";
     $db->setQuery($query);
     $db->query();
     // update Ranks / Medals if necessary
     AlphaUserPointsHelper::checkRankMedal($referreid, $rule_id);
 }
Esempio n. 3
0
 public static function updateUserPoints($result, $referrerid, $assignpoints, $now, $referraluserpoints, $autoapproved, $rule_plugin = '', $rule_id = '', $rule_name = '', $datareference = '', $frontmessage = '')
 {
     $app = JFactory::getApplication();
     $lang = JFactory::getLanguage();
     $lang->load('com_alphauserpoints', JPATH_SITE);
     $user = JFactory::getUser();
     $username = $user->id ? $user->username : '';
     $displaymsg = $result->displaymsg;
     $msg = str_replace('{username}', $username, $result->msg);
     $method = $result->method;
     $db = JFactory::getDBO();
     // get params definitions
     $params = JComponentHelper::getParams('com_alphauserpoints');
     $query = "SELECT id FROM #__alpha_userpoints WHERE `referreid`='{$referrerid}'";
     $db->setQuery($query);
     $referrerUser = $db->loadResult();
     JTable::addIncludePath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_alphauserpoints' . DS . 'tables');
     $row = JTable::getInstance('userspoints');
     // update points into alpha_userpoints table
     $row->load(intval($referrerUser));
     $referraluser = $row->referraluser;
     $newtotal = !$referraluserpoints ? $row->points + $assignpoints : $row->points + $referraluserpoints;
     $row->last_update = $now;
     $checkWinner = 0;
     if ($row->max_points >= 1 && $newtotal > $row->max_points) {
         // Max total was reached !
         //$newtotal = $row->max_points;
         if (AlphaUserPointsHelper::checkRuleEnabled('sysplgaup_winnernotification', 0, $referrerid)) {
             // get email admins in rule
             $query = "SELECT `content_items` FROM #__alpha_userpoints_rules WHERE `plugin_function`='sysplgaup_winnernotification'";
             $db->setQuery($query);
             $emailadmins = $db->loadResult();
             if ($autoapproved || $referraluserpoints) {
                 AlphaUserPointsHelper::sendwinnernotification($referrerid, $assignpoints, $newtotal, $emailadmins);
                 // Uddeim notification integration
                 if ($params->get('sendMsgUddeim', 0)) {
                     AlphaUserPointsHelper::sendUddeimWinnerNotification($referrerid, $assignpoints, $newtotal);
                 }
                 $checkWinner = 1;
             }
         }
     }
     if ($autoapproved) {
         if ($rule_plugin == 'sysplgaup_invitewithsuccess') {
             $row->referrees = $row->referrees + 1;
         }
         $row->points = $newtotal;
         $db->updateObject('#__alpha_userpoints', $row, 'id');
     }
     if ($displaymsg && !$referraluserpoints) {
         $realcurrentreferrerid = AlphaUserPointsHelper::getAnyUserReferreID($user->id);
         switch ($rule_plugin) {
             case 'sysplgaup_bonuspoints':
             case 'sysplgaup_recommend':
             case 'sysplgaup_reader2author':
             case 'sysplgaup_buypointswithpaypal':
             case 'sysplgaup_invite':
                 // No need congratulation...
                 break;
             case 'sysplgaup_invitewithsuccess':
                 // number points in message = assign points to new user
                 $numpoints = AlphaUserPointsHelper::getPointsRule('sysplgaup_newregistered');
                 if ($numpoints && $user->id) {
                     if ($msg != '') {
                         $msg = str_replace('{points}', AlphaUserPointsHelper::getFPoints($numpoints), JText::_($msg));
                         $msg = str_replace('{newtotal}', AlphaUserPointsHelper::getFPoints($newtotal), $msg);
                         $app->enqueueMessage($msg);
                     } else {
                         $app->enqueueMessage(sprintf(JText::_('AUP_CONGRATULATION'), AlphaUserPointsHelper::getFPoints($numpoints)));
                     }
                 }
                 break;
             default:
                 if ($referrerid == $realcurrentreferrerid && $user->id) {
                     if ($assignpoints > 0) {
                         if ($msg != '') {
                             $msg = str_replace('{points}', AlphaUserPointsHelper::getFPoints($assignpoints), JText::_($msg));
                             $msg = str_replace('{newtotal}', AlphaUserPointsHelper::getFPoints($newtotal), $msg);
                             $app->enqueueMessage($msg);
                         } else {
                             $app->enqueueMessage(sprintf(JText::_('AUP_CONGRATULATION'), AlphaUserPointsHelper::getFPoints($assignpoints)));
                             if ($rule_plugin == 'sysplgaup_happybirthday') {
                                 $frontmessage = JText::_('AUP_HAPPYBIRTHDAY');
                             }
                         }
                     } elseif ($assignpoints < 0) {
                         if ($msg != '') {
                             $msg = str_replace('{points}', AlphaUserPointsHelper::getFPoints(abs($assignpoints)), JText::_($msg));
                             $msg = str_replace('{newtotal}', AlphaUserPointsHelper::getFPoints($newtotal), $msg);
                             $app->enqueueMessage($msg);
                         } else {
                             $app->enqueueMessage(sprintf(JText::_('AUP_X_POINTS_HAS_BEEN_DEDUCTED_FROM_YOUR_ACCOUNT'), AlphaUserPointsHelper::getFPoints(abs($assignpoints))));
                         }
                     }
                 }
         }
     }
     if ($rule_plugin == 'sysplgaup_custom' && $datareference) {
         $rule_name = JText::_($datareference);
     }
     // email notification
     if ($result->notification && !$checkWinner) {
         $result->datareference = JText::_($datareference);
         AlphaUserPointsHelper::sendnotification($referrerid, $assignpoints, $newtotal, $result);
         // load external plugins
         $dispatcher = JDispatcher::getInstance();
         JPluginHelper::importPlugin('alphauserpoints');
         $results = $dispatcher->trigger('onSendNotificationAlphaUserPoints', array(&$result, $rule_name, $assignpoints, $newtotal, $referrerid, $user->id));
     }
     // Uddeim notification integration
     if ($params->get('sendMsgUddeim', 0) && !$checkWinner) {
         AlphaUserPointsHelper::sendUddeimNotification($referrerid, $assignpoints, $newtotal, $rule_name);
     }
     // load external plugins
     $dispatcher = JDispatcher::getInstance();
     JPluginHelper::importPlugin('alphauserpoints');
     $results = $dispatcher->trigger('onUpdateAlphaUserPoints', array(&$result, $rule_name, $assignpoints, $referrerid, $user->id));
     // checking rank and medals and update if necessary
     if ($rule_id == '') {
         $rule_id = AlphaUserPointsHelper::getRuleID($rule_plugin);
     }
     AlphaUserPointsHelper::checkRankMedal($referrerid, $rule_id);
     // referral points rule
     if ($referraluser != '' && $rule_plugin != 'sysplgaup_buypointswithpaypal' && $rule_plugin != 'sysplgaup_raffle' && $assignpoints > 0) {
         // if not already assigned
         $query = "SELECT * FROM #__alpha_userpoints_rules WHERE `plugin_function`='sysplgaup_referralpoints' AND `published`='1' AND (`rule_expire`>'{$now}' OR `rule_expire`='0000-00-00 00:00:00')";
         $db->setQuery($query);
         $referralpoints = $db->loadObjectList();
         if ($referralpoints) {
             $referraluserpoints = round($assignpoints * $referralpoints[0]->points / 100, 2);
             if ($referraluserpoints > 0) {
                 AlphaUserPointsHelper::userpoints('sysplgaup_referralpoints', $referraluser, $referraluserpoints);
             }
         }
     }
     // check change user group rule
     //if ( $rule_plugin!='sysplgaup_changelevel1' && $rule_plugin!='sysplgaup_changelevel2' && $rule_plugin!='sysplgaup_changelevel3' )
     //{
     AlphaUserPointsHelper::checkChangeLevel($referrerid, AlphaUserPointsHelper::getCurrentTotalPoints($referrerid));
     //}
     if ($frontmessage != '') {
         AlphaUserPointsHelper::displayMessageSystem($frontmessage);
     }
     // load external plugins
     $dispatcher = JDispatcher::getInstance();
     JPluginHelper::importPlugin('alphauserpoints');
     $results = $dispatcher->trigger('onAfterUpdateAlphaUserPoints', array(&$result, $rule_name, $assignpoints, $referrerid, $user->id));
     // link up rule
     if ($result->linkup) {
         $plugin_function_linkup = AlphaUserPointsHelper::getPluginFunction($result->linkup);
         AlphaUserPointsHelper::newpoints($plugin_function_linkup, $referrerid);
     }
 }
Esempio n. 4
0
 public function savecustompoints()
 {
     // specific user
     $app = JFactory::getApplication();
     $referrerid = JFactory::getApplication()->input->get('cid', '', 'string');
     $name = JFactory::getApplication()->input->get('name', '', 'string');
     $points = JFactory::getApplication()->input->get('points', 0, 'float');
     $reason = JFactory::getApplication()->input->get('reason', '', 'SAFE_HTML ');
     if ($referrerid) {
         require_once JPATH_SITE . DS . 'components' . DS . 'com_alphauserpoints' . DS . 'helper.php';
         AlphaUserPointsHelper::userpoints('sysplgaup_custom', $referrerid, 0, '', $reason, $points);
         AlphaUserPointsHelper::checkRankMedal($referrerid);
     }
     $this->setRedirect('index.php?option=com_alphauserpoints&task=showdetails&cid=' . $referrerid . '&name=' . $name);
     $this->redirect();
 }