0 AND d.mails_confirmed >= {?ref_payout?} AND p.ref_depth=1 AND p.points > 0 AND d.userid=%s", array(bigintval($content['userid'])), __FUNCTION__, __LINE__); // Get points list($cpoints) = SQL_FETCHROW($result_ref); // Free result SQL_FREERESULT($result_ref); if (empty($cpoints)) $cpoints = '0.00000'; // Add info line SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_rallye_users` (rallye_id, userid, refs, curr_points) VALUES ('%s','%s','%s','%s')", array(bigintval($id), bigintval($content['userid']), bigintval($cnt), $cpoints), __FUNCTION__, __LINE__); $un = true; } // END - if // Ignored but for the template required refs (made before start of rallye) $DATA['refs'] = $cnt; // Shall I notify this member? if (($notify == 'Y') && ($un)) { // Load email template and send it to the user $message = loadEmailTemplate('member_rallye_notify', array('prices' => $prices), $content['userid']); sendEmail($content['userid'], sprintf(getMessage('RALLYE_MEMBER_NOTIFY'), $title), $message); } // END - if } // END - while // Choose the right admin template $templ = 'admin_rallye_no_notify'; if ($notify == 'Y') $templ = 'admin_rallye_notify'; // Send email to admin sendAdminNotification(sprintf(getMessage('RALLYE_ADMIN_NOTIFY'), $title), $templ, $prices, 0); // Free memory SQL_FREERESULT($result_user); } // function addReferalRallyePrices ($rallye, $mode='email') { // Output mode switch($mode) { case 'email': $mode = "\n"; break; case 'html' : $mode = "
\n"; break; } // END - switch // Load prices $result_prices = SQL_QUERY("SELECT `price_level`, `points`, `info` FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE `rallye_id`='".$rallye."' ORDER BY `price_level` ASC", __FUNCTION__, __LINE__); if (SQL_NUMROWS($result_prices) > 0) { // Load prices if ($mode == "\n") $prices = "{--RALLYE_MEMBER_PRICES_ADDED--}:".$mode."------------------------------".$mode; $prices = ''; while ($content = SQL_FETCHARRAY($result_prices)) { $prices .= $content['price_level'].getMessage('RALLYE_PRICE').": "; if (!empty($content['info'])) { $prices .= $content['info']; } else { $prices .= $content['points'] . ' {?POINTS?}'; } $prices .= '' . $mode; } // END - if // Free memory SQL_FREERESULT($result_prices); } else { // No prices??? $prices = sprintf(getMessage('RALLYE_MEMBER_NO_PRICES'), $mode); } // Add last line for email mode if ($mode == "\n") $prices .= '------------------------------'; // Return price list return $prices; } // function addReferalRallyeTopUsers ($rallye, $default=0) { // First check how many prices are set $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE rallye_id=%s ORDER BY price_level", array(bigintval($rallye)), __FUNCTION__, __LINE__); $prices = SQL_NUMROWS($result); SQL_FREERESULT($result); // And load only limited users $result = SQL_QUERY_ESC("SELECT u.userid, u.refs, u.curr_points FROM `{?_MYSQL_PREFIX?}_rallye_users` AS u LEFT JOIN `{?_MYSQL_PREFIX?}_refsystem` AS r ON u.userid=r.userid WHERE u.rallye_id=%s AND r.counter > 0 ORDER BY u.refs DESC", array(bigintval($rallye)), __FUNCTION__, __LINE__); // Load users $DATA = array( 'userid' => array(), 'ref' => array(), 'cpoints' => array() ); while ($content = SQL_FETCHARRAY($result)) { // Get current refs $cnt = getReferalRallyeRefsCount($content['userid'], $content['refs']); // Points of ref's $result_ref = SQL_QUERY_ESC("SELECT p.points FROM `{?_MYSQL_PREFIX?}_user_points` AS p LEFT JOIN `{?_MYSQL_PREFIX?}_user_data` AS d ON p.userid=d.userid WHERE d.userid=%s AND d.`status`='CONFIRMED' AND p.ref_depth=1 AND d.max_mails > 0 AND d.mails_confirmed >= %s LIMIT 1", array(bigintval($content['userid']), getConfig('ref_payout')), __FUNCTION__, __LINE__); // Get points list($refpoints) = SQL_FETCHROW($result_ref); // Free result SQL_FREERESULT($result_ref); if (empty($refpoints)) $refpoints = 0; // Init userid for list $_userid = '---'; // List only users with at least one ref! //* DEBUG: */ print("*".$cnt.'/'.$content['userid'].'/'.$content['curr_points'].'/'.$refpoints."*
"); if (($cnt > 0) && ($refpoints > $content['curr_points'])) { $_userid = $content['userid']; } else { $cnt = ''; } // Save values to array $DATA['userid'][] = $_userid; $DATA['ref'][] = $cnt; $DATA['cpoints'][] = $content['curr_points']; } // END - while // Free memory SQL_FREERESULT($result); // Sort whole array array_pk_sort($DATA, array('ref', 'cpoints'), 0, 1, true); // Generate table $OUT = loadTemplate('guest_rallye_header', true); $SW = 2; for ($idx = 0; $idx < $prices; $idx++) { if (empty($DATA['userid'][$idx])) $DATA['userid'][$idx] = '---'; if (empty($DATA['ref'][$idx])) $DATA['ref'][$idx] = '---'; // Add row $OUT .= "   ".($idx+1).". "; if (($DATA['userid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= $DATA['userid'][$idx]; if (($DATA['userid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= " "; if (($DATA['userid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= $DATA['ref'][$idx]; if (($DATA['userid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= " \n"; $SW = 3 - $SW; } // END - for // Add footer $OUT .= loadTemplate('guest_rallye_footer', true); // And finnally return the output return $OUT; } // Run this function only when a new member has confirmed his email address! function addUserToReferalRallye ($userid) { global $DATA; $add = ''; // Updated extension? if (getExtensionVersion('rallye') >= '0.2.0') { $add .= ", `min_users`, `min_prices`"; } // END - if // Check for an auto-add rallye $result = SQL_QUERY("SELECT `id`, `title`, `start_time`, `end_time`, `send_notify`".$add." FROM `{?_MYSQL_PREFIX?}_rallye_data` WHERE `is_active`='Y' AND `notified`='Y' AND `auto_add_new_user`='Y' AND `expired`='N' LIMIT 1", __FUNCTION__, __LINE__); if (SQL_NUMROWS($result) == 1) { // Init variables $min_users = 0; $min_prices = 0; // Load data if (getExtensionVersion('rallye') >= '0.2.0') { list($id, $title, $start, $end, $notify, $min_users, $min_prices) = SQL_FETCHROW($result); } else { list($id, $title, $start, $end, $notify) = SQL_FETCHROW($result); } // Free result SQL_FREERESULT($result); // Check if line is already included... $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_rallye_users` WHERE `rallye_id`=%s AND `userid`=%s LIMIT 1", array(bigintval($id), bigintval($userid)), __FUNCTION__, __LINE__); // Is this user added? if (SQL_NUMROWS($result) == 0) { // Add userid and his ref count to table SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_rallye_users` (`rallye_id`, `userid`, `refs`) VALUES ('%s','%s',0)", array(bigintval($id), bigintval($userid)), __FUNCTION__, __LINE__); } // END - if // Free memory SQL_FREERESULT($result); if ($notify == 'Y') { // Transfer all neccessary data to the global $DATA array $DATA['start'] = generateDateTime($start, 2); $DATA['end'] = generateDateTime($end , 2); $DATA['now_t'] = generateDateTime(time(), 2); $DATA['title'] = $title; $DATA['id'] = $id; // ID for the rallye details link $DATA['ref'] = 0; $DATA['refs'] = countSumTotalData($userid, 'user_data', 'userid', "refid", true); // Load prices $prices = addReferalRallyePrices($id); // Determine min_users/prices tring $DATA['min_users'] = determineReferalRallyeMinimumUsers($min_users); $DATA['min_prices'] = determineReferalRallyeMinimumPrices($min_prices); // Send notification to member $message = loadEmailTemplate('member_rallye_notify', array('prices' => $prices), $userid); sendEmail($userid, sprintf(getMessage('RALLYE_MEMBER_NOTIFY'), $title), $message); } // END - if } // END - if } // function markReferalRallyesAsExpired ($result) { global $DATA; // Load rallye data list($id, $title, $start, $end, $notify, $min_users, $min_prices) = SQL_FETCHROW($result); // Free result SQL_FREERESULT($result); // Load users array (!) with assigned prices $prices = getArrayFromReferalRallyeUsers($id); // Init array $DATA = array(); $cnt = 0; $users = array(); $DATA['title'] = $title; $DATA['start'] = generateDateTime($start, 1); $DATA['end'] = generateDateTime($end , 1); $DATA['now_t'] = generateDateTime(time(), 1); // Just count... $total = 0; foreach($prices['userid'] as $key => $userid) { // Check status // active = 1: account is still confirmed // active = 0: account is deleted or locked $result = SQL_QUERY_ESC("SELECT COUNT(`userid`) AS active FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s AND `status`='CONFIRMED' LIMIT 1", array(bigintval($userid)), __FUNCTION__, __LINE__); list($active) = SQL_FETCHROW($result); SQL_FREERESULT($result); $prices['active'][$key] = $active; // Allow valid and active users with at least one ref to get points if (($userid > 0) && ($prices['ref'][$key] > 0) && ($active == 1) && ($prices['cpoints'][$key] > 0)) { $total++; } // END - if } // END - foreach if (($total < $min_prices) || ($total == 0)) { // Do not end this rallye! unset($DATA); return; } // END - if // Expire rallye SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `expired`='Y' WHERE `id`=%s LIMIT 1", array(bigintval($id)), __FUNCTION__, __LINE__); // Run array through (by userid is the most important 2nd-level-array) foreach($prices['userid'] as $key => $userid) { // Allow valid and active users with at least one ref to get points if (($userid > 0) && ($prices['ref'][$key] > 0) && ($prices['active'][$key] == 1) && ($prices['cpoints'][$key] > 0)) { // Transfer data to array for the mail template $DATA['level'] = $prices['level'][$key]; $DATA['points'] = $prices['points'][$key]; $DATA['info'] = $prices['info'][$key]; $DATA['ref'] = $prices['ref'][$key]; // Default is other $winnerLevel = 'other'; // Determine winner level if ($DATA['level'] == 1) { // The winner! $winnerLevel = '_gold'; } elseif ($DATA['level'] == 2) { // The vice winner! $winnerLevel = '_silver'; } elseif ($DATA['level'] == 3) { // The bronce winner $winnerLevel = '_bronce'; } if ($DATA['points'] > 0) { // Add points directly to user's account addPointsDirectly('rallye_winner' . $winnerLevel, $userid, $DATA['points']); } // END - if if ($notify == 'Y') { // Prepare infos for the mail template if (!empty($DATA['info'])) { // Take direct infos $DATA['infos'] = $DATA['info']; } else { // Take points $DATA['infos'] = $DATA['points'] . ' {?POINTS?}'; } // Add suffix to template name $template = 'member_rallye_expired' . $winnerLevel; // Load template $message = loadEmailTemplate($template, $DATA, $userid); sendEmail($userid, sprintf(getMessage('RALLYE_MEMBER_EXPIRED_SUBJ'), $DATA['level']), $message); } // END - if // Count userid $cnt++; $users['userid'][$userid] = $userid; $users['poi'][$userid] = $DATA['infos']; } // END - if } // END - foreach // Select template depending on notfication is switch on / off if ($notify == 'Y') { $templ = "admin_rallye_expired"; } elseif (is_array($users['userid'])) { $templ = "admin_rallye_expired_no"; $cnt = getReferalRallyeUserDataFromArray($users); } // Send mail to admin sendAdminNotification(sprintf(getMessage('RALLYE_ADMIN_EXPIRED_SUBJ'), $title), $templ, $cnt, 0); // Add task createNewTask('{--RALLYE_ADMIN_EXPIRED--}: ' . $title, '{--RALLYE_ADMIN_EXPIRED_TEXT--}', 'RALLYE_EXPIRED'); } // function getReferalRallyeUserDataFromArray ($userIds) { // Implode user ids $userid_string = implode(',', $userIds['userid']); // Init result string $ret = ''; // Load users $result = SQL_QUERY_ESC("SELECT `userid`, `gender`, `surname`, `family`, `email` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid` IN(%s) AND `status`='CONFIRMED' ORDER BY `userid` ASC LIMIT %s", array($userid_string, count($userIds)), __FUNCTION__, __LINE__); while ($content = SQL_FETCHARRAY($result)) { // Construct the message masked and add it $ret .= sprintf("%s %s %s (%s) - %s\n", translateGender($content['gender']), $content['surname'], $content['family'], $content['email'], $userIds['poi'][$content['userid']] ); } // END - while // Return result return substr($ret, 0, -1); } // function getArrayFromReferalRallyePrices ($rallye) { // Init multi array $prices = array( 'level' => array(), 'points' => array(), 'info' => array() ); // Load prices $result = SQL_QUERY_ESC("SELECT price_level, points, info FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE rallye_id=%s ORDER BY price_level", array(bigintval($rallye)), __FUNCTION__, __LINE__); // Transfer elements while ($content = SQL_FETCHARRAY($result)) { $prices['level'][] = $content['price_level']; $prices['points'][] = $content['points']; $prices['info'][] = $content['info']; } // END - while // Free memory SQL_FREERESULT($result); // Return array return $prices; } // function getArrayFromReferalRallyeUsers ($rallye) { // Fix zero points to 0.00000 if (getConfig('ref_payout') == 0) setConfigEntry('ref_payout', '0.00000'); // Init multi array $users = array( 'userid' => array(), 'ref' => array(), 'cpoints' => array(), ); // Load users userid old points earned $result_user = SQL_QUERY_ESC("SELECT `userid`, `refs`, `curr_points` FROM `{?_MYSQL_PREFIX?}_rallye_users` WHERE `rallye_id`=%s ORDER BY `userid` ASC", array(bigintval($rallye)), __FUNCTION__, __LINE__); while ($content = SQL_FETCHARRAY($result_user)) { // Load current ref count $cnt = getReferalRallyeRefsCount($content['userid'], $content['refs']); // Points of ref's $result_ref = SQL_QUERY_ESC("SELECT SUM(p.points) AS points FROM `{?_MYSQL_PREFIX?}_user_points` AS p LEFT JOIN `{?_MYSQL_PREFIX?}_user_data` AS d ON p.userid=d.userid WHERE d.`status`='CONFIRMED' AND d.max_mails > 0 AND d.mails_confirmed >= {?ref_payout?} AND p.ref_depth=1 AND p.points > 0 AND d.userid=%s LIMIT 1", array(bigintval($content['userid'])), __FUNCTION__, __LINE__); // Get points list($refpoints) = SQL_FETCHROW($result_ref); // Free result SQL_FREERESULT($result_ref); // Fix empty refpoints if (empty($refpoints)) $refpoints = 0; // Store calculated new refs to array $users['userid'][] = $content['userid']; $users['ref'][] = abs($cnt - $content['refs']); $users['cpoints'][] = $refpoints - $content['curr_points']; } // END - while // Free memory SQL_FREERESULT($result_user); // Sort array for refs (descending) array_pk_sort($users, array("ref", "cpoints"), 0, 1, true); // Load prices array (!) $prices = getArrayFromReferalRallyePrices($rallye); // Merge users into prices foreach ($prices['level'] as $k => $level) { // We only need to check one element in $users, see above while() block if (isset($users['userid'][$k])) { $prices['userid'][$k] = $users['userid'][$k]; if (empty($prices['userid'][$k])) $prices['userid'][$k] = '---'; $prices['ref'][$k] = $users['ref'][$k]; if (empty($prices['ref'][$k])) $prices['ref'][$k] = '---'; $prices['cpoints'][$k] = $users['cpoints'][$k]; } // END - if } // END - foreach // Return completed array return $prices; } // function addReferalRallyeWinners ($rallye, $default=0) { // First check how many prices are set $result_prices = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE `rallye_id`=%s ORDER BY `price_level` ASC", array(bigintval($rallye)), __FUNCTION__, __LINE__); $prices = SQL_NUMROWS($result_prices); SQL_FREERESULT($result_prices); // Load data $DATA = getArrayFromReferalRallyeUsers($rallye); // Generate table $OUT = loadTemplate('guest_rallye_expired_header', true); $SW = 2; for ($idx = 0; $idx < $prices; $idx++) { // Check status // active = 1: account is still confirmed // active = 0: account is deleted or locked $active = countSumTotalData($DATA['userid'][$idx], 'user_data', 'userid', 'userid', true, " AND `status`='CONFIRMED'"); if (empty($DATA['userid'][$idx])) $DATA['userid'][$idx] = '---'; if ((empty($DATA['ref'][$idx])) || ($DATA['ref'][$idx] == 0) || ($active == 0) || ("".round($DATA['cpoints'][$idx])."" == 0) || (empty($DATA['cpoints'][$idx]))) { // Allow valid and active users with at least one ref to get points $DATA['ref'][$idx] = '---'; $DATA['userid'][$idx] = '---'; } // END - if if (!empty($DATA['info'][$idx])) { // Take direct infos $DATA['infos'][$idx] = $DATA['info'][$idx]; } else { // Take ppints $DATA['infos'][$idx] = $DATA['points'][$idx] . ' {?POINTS?}'; } // Add row $add = ''; $OUT .= "   ".($idx+1).". "; if (($DATA['userid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= $DATA['userid'][$idx]; if (($DATA['userid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= " "; if (($DATA['userid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= $DATA['ref'][$idx]; if (($DATA['userid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= " "; if (($DATA['userid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= $DATA['infos'][$idx]; if (($DATA['userid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= " \n"; $SW = 3 - $SW; } // END - for // Add footer $OUT .= loadTemplate('guest_rallye_expired_footer', true); // And finnally return the output return $OUT; } // function purgeExpiredReferalRallyes () { // Check for expired rallyes $EXPIRE = 3; // @TODO The hard-coded value... $result_rallye = SQL_QUERY_ESC("SELECT id, title, start_time, end_time FROM `{?_MYSQL_PREFIX?}_rallye_data` WHERE end_time <= (UNIX_TIMESTAMP() - {?ONE_DAY?} - %s) AND expired='Y'", array($EXPIRE), __FUNCTION__, __LINE__); if (SQL_NUMROWS($result_rallye) > 0) { // Init SQLs initSqls(); // Expire found rallyes and notify admin while ($content = SQL_FETCHARRAY($result_rallye)) { // Prepare data for mail template $content['start_time'] = generateDateTime($content['start_time'], 1); $content['end_time'] = generateDateTime($content['end_time'] , 1); $content['now_time'] = generateDateTime(time(), 1); // Send mail to admin sendAdminNotification(sprintf(getMessage('RALLYE_ADMIN_PURGED_SUBJ'), $content['title']), 'admin_rallye_purged', $content, 0); // Purge whole rallye addSql(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_rallye_data` WHERE `id`=%s LIMIT 1", array(bigintval($content['id'])), __FUNCTION__, __LINE__, false)); addSql(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE rallye_id=%s LIMIT 1", array(bigintval($content['id'])), __FUNCTION__, __LINE__, false)); addSql(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_rallye_users` WHERE rallye_id=%s LIMIT 1", array(bigintval($content['id'])), __FUNCTION__, __LINE__, false)); // Add task createNewTask('{--RALLYE_ADMIN_PURGED--}: ' . $content['title'], '{--RALLYE_ADMIN_PURGED_TEXT--}', 'RALLYE_PURGED'); } // END - while // Run all SQLs runFilterChain('run_sqls'); } // END - if // Free memory SQL_FREERESULT($result_rallye); } // function addReferalRallyeTemplateSelection ($name = 'template', $default = '') { // Init variables $OUT = ''; $ral = array(); // Check templates directory $basePath = sprintf("templates/%s/html/rallye/", getLanguage()); // Read the directory $templates = getArrayFromDirectory($basePath, 'rallye_', false, true, array(), '.tpl'); // And walk through foreach ($templates as $read) { // Cut prefix and extension away $read = substr($read, 7, strpos($read, '.') - 7); // Accept only template names between 1 and 255 chars length if ((strlen($read) < 256) && (!empty($read))) $ral[] = $read; } // END - while // Do we have found templates which we can link with the new rallye? if (!empty($ral[0])) { // Generate selection box for all found templates // @TODO Rewrite this to our API function $OUT = "\n"; } else { // No rallye templates found $OUT = getMessage('RALLYE_NO_TEMPLATES_FOUND'); } // Return selection return $OUT; } // function getReferalRallyeRefsCount ($userid, $old = 0) { // Check current refs if (getExtensionVersion('cache') >= '0.1.2') { // Get refs from cache $cnt = 0; foreach ($GLOBALS['cache_array']['refsystem']['userid'] as $id => $userid) { // Do we have a ref for this user? //* DEBUG: */ print("id={$id},userid={$userid},userid={$userid},old={$old},level={$GLOBALS['cache_array']['refsystem']['level'][$id]}
"); if (($userid == $userid) && ($GLOBALS['cache_array']['refsystem']['level'][$id] == 1)) { //* DEBUG: */ print("userid matches!
"); foreach ($GLOBALS['cache_array']['refdepths']['level'] as $level) { if (($level == $GLOBALS['cache_array']['refsystem']['level'][$id]) && ($level == 1)) { // Level does exist so abort here $cnt = $GLOBALS['cache_array']['refsystem']['counter'][$id]; //* DEBUG: */ print("*".$userid.'/'.$cnt."*
"); break; } elseif ($level > 1) { // Not interesting here... break; } } // END - foreach // Abort also here! if ($cnt > 0) break; } // END - if } // END - foreach //* DEBUG: */ print("
");
		//* DEBUG: */ print(print_r($GLOBALS['cache_array']['refsystem'], true));
		//* DEBUG: */ print("
"); //* DEBUG: */ shutdown(); if ($cnt > 0) { // Count cache hits incrementStatsEntry('cache_hits'); // Remove old refs //* DEBUG: */ print('+'.$cnt.'/'.$old."+
"); $cnt -= $old; } // END - if } else { // Load current refs from database $result_ref = SQL_QUERY_ESC("SELECT SUM(s.counter) AS cnt FROM `{?_MYSQL_PREFIX?}_refsystem` AS s LEFT JOIN `{?_MYSQL_PREFIX?}_refdepths` AS d ON s.level=d.level WHERE s.userid=%s AND s.level=1", array(bigintval($userid)), __FUNCTION__, __LINE__); list($cnt) = SQL_FETCHROW($result_ref); SQL_FREERESULT($result_ref); if (empty($cnt)) { $cnt = 0; } else { $cnt -= $old; } } // Return count //* DEBUG: */ print("*".$userid.'/'.$old.'/'.$cnt."*
"); return $cnt; } // Determines the right language string for min_users function determineReferalRallyeMinimumUsers ($min_users) { // Rallye ends without user limitation is the default $return = getMessage('RALLYE_END_NO_USER_LIMITATION'); if ($min_users > 0) { // Rallye ends when X members are totally in your exchange $return = sprintf(getMessage('RALLYE_END_USERS'), $min_users); } // END - if // Return return $return; } // Determines the right language string for min_prices function determineReferalRallyeMinimumPrices ($min_prices) { // Rallye ends without user limitation is the default $return = getMessage('RALLYE_END_NO_PRICE_LIMITATION'); if ($min_prices > 0) { // Rallye ends when X members are totally in your exchange $return = sprintf(getMessage('RALLYE_END_PRICES'), $min_prices); } // END - if // Return return $return; } // Filter for extra-autpurge function FILTER_RALLYE_EXTRA_AUTOPURGE () { // Check expired rallyes (hard-coded 3 days limit for displaying expired rallyes!) purgeExpiredReferalRallyes(); } // [EOF] ?>