Esempio n. 1
0
 public static function userpoints($plugin_function, $referrerid = '', $referraluserpoints = 0, $keyreference = '', $datareference = '', $randompoints = 0, $feedback = false, $force = 0, $frontmessage = '')
 {
     $lang = JFactory::getLanguage();
     $lang->load('com_alphauserpoints', JPATH_SITE);
     // get params definitions
     $params = JComponentHelper::getParams('com_alphauserpoints');
     $allowNegativeAccount = $params->get('allowNegativeAccount', 0);
     $checkReference = 0;
     if ($plugin_function == 'sysplgaup_recommend' && $referrerid != '' && $keyreference != '' && $datareference != '') {
         $force = 1;
     }
     if (!$referraluserpoints) {
         if (!$referrerid) {
             $referrerid = @$_SESSION['referrerid'];
         }
     }
     if (!$referrerid) {
         return;
     }
     if (!AlphaUserPointsHelper::checkExcludeUsers($referrerid)) {
         return;
     }
     $result = AlphaUserPointsHelper::checkRuleEnabled($plugin_function, $force, $referrerid);
     // check reference if not exist
     if ($keyreference != '' && $result) {
         $checkReference = AlphaUserPointsHelper::checkReference($referrerid, $keyreference, $result[0]->id);
     }
     if ($result && !$checkReference) {
         // force specific points -> overwriting rule points or if rule points is 0
         // This points can be negative (example : single rule in backend rule manager for several products on frontend, each products with different prices...)
         if ($randompoints) {
             $result[0]->points = $randompoints;
         }
         // check if limit daily points
         if ($result[0]->points > 0 && $referraluserpoints == 0) {
             $result[0]->points = AlphaUserPointsHelper::checkMaxDailyPoints($referrerid, $result[0]->points, $plugin_function);
         }
         if (AlphaUserPointsHelper::operationIsFeasible($referrerid, $result[0]->points) || $allowNegativeAccount) {
             // check account
             AlphaUserPointsHelper::insertUserPoints($referrerid, $result[0], $referraluserpoints, $keyreference, $datareference, $frontmessage);
             if ($feedback == true) {
                 return true;
             }
         } else {
             // used for negative operation,
             $error = JText::_('AUP_YOUDONOTHAVEENOUGHPOINTSTOPERFORMTHISOPERATION');
             JError::raiseNotice(0, $error);
             if ($feedback == true) {
                 return false;
             } else {
                 return;
             }
         }
     } else {
         return true;
     }
 }
 /**
  * Updates alpha user points
  * 
  * @param $assignpoints int
  * @return void
  */
 function reduceUserpoints($amount_points)
 {
     // reduce number of points for the payment
     $api_AUP = JPATH_SITE . '/components/com_alphauserpoints/helper.php';
     if (file_exists($api_AUP)) {
         require_once $api_AUP;
         // create the rule for Tienda payment if not exists
         $this->checkTiendaPaymentRule();
         $referrerid = $this->getReferreid(JFactory::getUser()->id);
         $jnow = JFactory::getDate();
         $now = $jnow->toMySQL();
         //AlphaUserPointsHelper::newpoints( 'function_name', '', '', '', -$amount_points);
         AlphaUserPointsHelper::insertUserPoints($referrerid, -$amount_points, $rule_expire = '0000-00-00 00:00:00', AlphaUserPointsHelper::getRuleID($this->_element), 0, '', 'Tienda order paid by points');
     }
 }
 public function reader2author($authorid = 0, $author = '', $articleid = 0, $title = '', $url = '')
 {
     $app = JFactory::getApplication();
     require_once JPATH_SITE . DS . 'components' . DS . 'com_alphauserpoints' . DS . 'helper.php';
     if (!$authorid || !$articleid) {
         return;
     }
     // get referrerid of author
     $referrerUserAuthor = AlphaUserPointsHelper::getAnyUserReferreID($authorid);
     if (!AlphaUserPointsHelper::checkExcludeUsers($referrerUserAuthor)) {
         return;
     }
     $ip = getenv('REMOTE_ADDR');
     $db = JFactory::getDBO();
     $keyreference = $articleid . "|" . $ip;
     $keyreference = AlphaUserPointsHelper::buildKeyreference('sysplgaup_reader2author', $keyreference);
     // check if not already view by active user
     $query = "SELECT `id` FROM #__alpha_userpoints_details WHERE `keyreference`='" . $keyreference . "'";
     $db->setQuery($query);
     $alreadyView = $db->loadResult();
     if (!$alreadyView) {
         $user = JFactory::getUser();
         $jnow = JFactory::getDate();
         $now = $jnow->toSql();
         $authorizedLevels = JAccess::getAuthorisedViewLevels($user->id);
         $query = "SELECT * FROM #__alpha_userpoints_rules WHERE `plugin_function`='sysplgaup_reader2author' AND `published`='1' AND `access` IN (" . implode(",", $authorizedLevels) . ") AND (`rule_expire`>'{$now}' OR `rule_expire`='0000-00-00 00:00:00')";
         $db->setQuery($query);
         $result = $db->loadObjectList();
         if ($result && $referrerUserAuthor) {
             $datareference = '<a href="' . $url . '">' . $title . '</a> (' . $author . ')';
             AlphaUserPointsHelper::insertUserPoints($referrerUserAuthor, $result[0], 0, $keyreference, $datareference);
         }
     }
 }