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;
     }
 }
Esempio n. 2
0
 /**
  * Assign points to the file uploader when a user download his file and use the price field  
  * 
  * @param mixed $files
  */
 public static function setAUPPointsDownloaderToUploaderPrice($files)
 {
     $api_AUP = JPATH_SITE . DS . 'components' . DS . 'com_alphauserpoints' . DS . 'helper.php';
     if (file_exists($api_AUP)) {
         require_once $api_AUP;
         foreach ($files as $file) {
             if ($file->submitted_by) {
                 $referreid = AlphaUserPointsHelper::getAnyUserReferreID((int) $file->submitted_by);
                 if ($referreid) {
                     $key_reference = AlphaUserPointsHelper::buildKeyreference('plgaup_jdownloads_downloader_to_uploader_use_price', $file->file_id, (int) $file->submitted_by);
                     $rule_id = AlphaUserPointsHelper::getRuleID('plgaup_jdownloads_downloader_to_uploader_use_price');
                     $check_aup_reference = AlphaUserPointsHelper::checkReference($referreid, $key_reference, $rule_id);
                     // check the method when a prior download process is found
                     if ($check_aup_reference > 0) {
                         $method = (int) AlphaUserPointsHelper::getMethod('plgaup_jdownloads_downloader_to_uploader_use_price');
                         switch ($method) {
                             case 1:
                                 // ONCE PER USER
                                 // has already payed
                                 return;
                                 break;
                             case '2':
                                 // ONCE PER DAY AND PER USER'
                                 return;
                                 break;
                             case '3':
                                 // ONCE A DAY FOR A SINGLE USER ON ALL USERS
                                 return;
                                 break;
                             case '5':
                                 // ONCE PER USER PER WEEK
                                 return;
                                 break;
                             case '6':
                                 // ONCE PER USER PER MONTH
                                 return;
                                 break;
                             case '7':
                                 // ONCE PER USER PER YEAR
                                 return;
                                 break;
                                 /*
                                 case '4':       // WHENEVER
                                 case '0':
                                 default:                            
                                     // points must be payed always
                                 */
                         }
                     }
                     $text = JText::_('COM_JDOWNLOADS_BACKEND_SET_AUP_DOWNLOAD_TEXT');
                     $text = sprintf($text, $file->file_title);
                     $price = floatval($file->price);
                     AlphaUserPointsHelper::newpoints('plgaup_jdownloads_downloader_to_uploader_use_price', $referreid, $key_reference, $text, '+' . $price, $text);
                 }
             }
         }
     }
 }