0 AND d.mails_confirmed >= %s AND p.ref_depth=1 AND p.points > 0 AND d.userid=%s", array(getConfig('ref_payout'), bigintval($content['userid'])), __FUNCTION__, __LINE__); list($cpoints) = SQL_FETCHROW($result_ref); 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 = LOAD_EMAIL_TEMPLATE("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 RALLYE_ADD_PRICES ($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", __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 RALLYE_ADD_TOPUSERS ($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 DISTINCT 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( 'uid' => array(), 'ref' => array(), 'cpoints' => array() ); while ($content = SQL_FETCHARRAY($result)) { // Get current refs $cnt = RALLYE_GET_REFCOUNT($content['userid'], $content['refs']); // Points of ref's $result_ref = SQL_QUERY_ESC("SELECT DISTINCT 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__); list($refpoints) = SQL_FETCHROW($result_ref); SQL_FREERESULT($result_ref); if (empty($refpoints)) $refpoints = 0; // Init userid for list $_uid = '---'; // List only users with at least one ref! //* DEBUG: */ OUTPUT_HTML("*".$cnt.'/'.$content['userid'].'/'.$content['curr_points'].'/'.$refpoints."*
"); if (($cnt > 0) && ($refpoints > $content['curr_points'])) { $_uid = $content['userid']; } else { $cnt = ''; } // Save values to array $DATA['uid'][] = $_uid; $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 = LOAD_TEMPLATE('guest_rallye_header', true); $SW = 2; for ($idx = 0; $idx < $prices; $idx++) { if (empty($DATA['uid'][$idx])) $DATA['uid'][$idx] = '---'; if (empty($DATA['ref'][$idx])) $DATA['ref'][$idx] = '---'; // Add row $OUT .= "   ".($idx+1).". "; if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= $DATA['uid'][$idx]; if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= " "; if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= $DATA['ref'][$idx]; if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= " \n"; $SW = 3 - $SW; } // END - for // Add footer $OUT .= LOAD_TEMPLATE("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 RALLYE_AUTOADD_USER ($uid) { global $DATA; $add = ''; // Updated extension? if (GET_EXT_VERSION('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 (GET_EXT_VERSION('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($uid)), __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($uid)), __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'] = GET_TOTAL_DATA($uid, 'user_data', 'userid', "refid", true); // Load prices $prices = RALLYE_ADD_PRICES($id); // Determine min_users/prices tring $DATA['min_users'] = RALLYE_DETERMINE_MIN_USERS($min_users); $DATA['min_prices'] = RALLYE_DETERMINE_MIN_PRICES($min_prices); // Send notification to member $message = LOAD_EMAIL_TEMPLATE("member_rallye_notify", array('prices' => $prices), $uid); sendEmail($uid, sprintf(getMessage('RALLYE_MEMBER_NOTIFY'), $title), $message); } // END - if } // END - if } // function RALLYE_EXPIRE_RALLYES ($result) { global $DATA; // Load rallye data list($id, $title, $start, $end, $notify, $min_users, $min_prices) = SQL_FETCHROW($result); SQL_FREERESULT($result); // Load users array (!) with assigned prices $prices = RALLYE_LOAD_USERS_ARRAY($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['uid'] as $key => $uid) { // 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($uid)), __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 (($uid > 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 uid is the most important 2nd-level-array) foreach($prices['uid'] as $key => $uid) { // Allow valid and active users with at least one ref to get points if (($uid > 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 ADD_POINTS_REFSYSTEM_DIRECT('rallye_winner' . $winnerLevel, $uid, $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 = LOAD_EMAIL_TEMPLATE($template, $DATA, $uid); sendEmail($uid, sprintf(getMessage('RALLYE_MEMBER_EXPIRED_SUBJ'), $DATA['level']), $message); } // END - if // Count userid $cnt++; $users['uid'][$uid] = $uid; $users['poi'][$uid] = $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['uid'])) { $templ = "admin_rallye_expired_no"; $cnt = RALLYE_LOAD_USER_DATA($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 RALLYE_LOAD_USER_DATA ($uids_array) { // Implode user ids $uid_string = implode(',', $uids_array['uid']); // 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($uid_string, count($uids_array)), __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'], $uids_array['poi'][$content['userid']] ); } // END - while // Return result return substr($ret, 0, -1); } // function RALLYE_LOAD_PRICES_ARRAY ($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 RALLYE_LOAD_USERS_ARRAY ($rallye) { // Fix zero points to 0.00000 if (getConfig('ref_payout') == '0') setConfigEntry('ref_payout', '0.00000'); // Init multi array $users = array( 'uid' => array(), 'ref' => array(), 'cpoints' => array(), ); // Load users uid 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 = RALLYE_GET_REFCOUNT($content['userid'], $content['refs']); // Points of ref's $result_ref = SQL_QUERY_ESC("SELECT DISTINCT SUM(p.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 >= %s AND p.ref_depth=1 AND p.points > 0 AND d.userid=%s", array(getConfig('ref_payout'), bigintval($content['userid'])), __FUNCTION__, __LINE__); list($refpoints) = SQL_FETCHROW($result_ref); SQL_FREERESULT($result_ref); // Fix empty refpoints if (empty($refpoints)) $refpoints = 0; // Store calculated new refs to array $users['uid'][] = $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 = RALLYE_LOAD_PRICES_ARRAY($rallye); // Merge users into prices foreach ($prices['level'] as $k => $lvl) { // We only need to check one element in $users, see above while() block if (isset($users['uid'][$k])) { $prices['uid'][$k] = $users['uid'][$k]; if (empty($prices['uid'][$k])) $prices['uid'][$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 RALLYE_LIST_WINNERS ($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 = RALLYE_LOAD_USERS_ARRAY($rallye); // Generate table $OUT = LOAD_TEMPLATE('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 = GET_TOTAL_DATA($DATA['uid'][$idx], 'user_data', 'userid', 'userid', true, " AND `status`='CONFIRMED'"); if (empty($DATA['uid'][$idx])) $DATA['uid'][$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['uid'][$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['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= $DATA['uid'][$idx]; if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= " "; if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= $DATA['ref'][$idx]; if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= " "; if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= $DATA['infos'][$idx]; if (($DATA['uid'][$idx] == $default) && ($default > 0)) $OUT .= ""; $OUT .= " \n"; $SW = 3 - $SW; } // END - for // Add footer $OUT .= LOAD_TEMPLATE("guest_rallye_expired_footer", true); // And finnally return the output return $OUT; } // function RALLYE_DELETE_EXPIRED_RALLYES () { global $DATA; // Check for expired rallyes $EXPIRE = getConfig('one_day') * 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() - %s) AND expired='Y'", array($EXPIRE), __FUNCTION__, __LINE__); if (SQL_NUMROWS($result_rallye) > 0) { // Init SQLs INIT_SQLS(); // Expire found rallyes and notify admin while ($content = SQL_FETCHARRAY($result_rallye)) { // Prepare data for mail template $DATA['title'] = $content['title']; $DATA['start'] = generateDateTime($content['start_time'], '1'); $DATA['end'] = generateDateTime($content['end_time'] , '1'); $DATA['now_t'] = generateDateTime(time(), '1'); // Send mail to admin sendAdminNotification(sprintf(getMessage('RALLYE_ADMIN_PURGED_SUBJ'), $content['title']), "admin_rallye_purged", '', 0); // Purge whole rallye ADD_SQL(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_data` WHERE `id`=%s LIMIT 1", array(bigintval($content['id'])), __FUNCTION__, __LINE__, false)); ADD_SQL(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_prices` WHERE rallye_id=%s LIMIT 1", array(bigintval($content['id'])), __FUNCTION__, __LINE__, false)); ADD_SQL(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 RALLYE_TEMPLATE_SELECTION ($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 RALLYE_GET_REFCOUNT ($uid, $old = 0) { // Check current refs if (GET_EXT_VERSION('cache') >= '0.1.2') { // Get refs from cache $cnt = 0; foreach ($GLOBALS['cache_array']['refsystem']['userid'] as $id => $uid) { // Do we have a ref for this user? //* DEBUG: */ OUTPUT_HTML("id={$id},uid={$uid},uid={$uid},old={$old},level={$GLOBALS['cache_array']['refsystem']['level'][$id]}
"); if (($uid == $uid) && ($GLOBALS['cache_array']['refsystem']['level'][$id] == 1)) { //* DEBUG: */ OUTPUT_HTML("uid matches!
"); foreach ($GLOBALS['cache_array']['ref_depths']['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: */ OUTPUT_HTML("*".$uid.'/'.$cnt."*
"); break; } elseif ($level > 1) { // Not interesting here... break; } } // END - foreach // Abort also here! if ($cnt > 0) break; } // END - if } // END - foreach //* DEBUG: */ OUTPUT_HTML("
");
		//* DEBUG: */ OUTPUT_HTML(print_r($GLOBALS['cache_array']['refsystem'], true));
		//* DEBUG: */ OUTPUT_HTML("
"); //* DEBUG: */ shutdown(); if ($cnt > 0) { // Count cache hits incrementConfigEntry('cache_hits'); // Remove old refs //* DEBUG: */ OUTPUT_HTML('+'.$cnt.'/'.$old."+
"); $cnt -= $old; } // END - if } else { // Load current refs from database $result_ref = SQL_QUERY_ESC("SELECT DISTINCT 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($uid)), __FUNCTION__, __LINE__); list($cnt) = SQL_FETCHROW($result_ref); SQL_FREERESULT($result_ref); if (empty($cnt)) { $cnt = 0; } else { $cnt -= $old; } } // Return count //* DEBUG: */ OUTPUT_HTML("*".$uid.'/'.$old.'/'.$cnt."*
"); return $cnt; } // Determines the right language string for min_users function RALLYE_DETERMINE_MIN_USERS ($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 RALLYE_DETERMINE_MIN_PRICES ($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!) RALLYE_DELETE_EXPIRED_RALLYES(); } // ?>