X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Flibs%2Fsurfbar_functions.php;h=e235ce19cbab6d757e6c18abaa248044bef81720;hp=f2b006ccda75b3f62ad88b5531924acaabd9249c;hb=78dc19b40041f126eede57575484c684d5fd0ddb;hpb=cb30b8c591b92189065565d67063c7512b0eeb76 diff --git a/inc/libs/surfbar_functions.php b/inc/libs/surfbar_functions.php index f2b006ccda..e235ce19cb 100644 --- a/inc/libs/surfbar_functions.php +++ b/inc/libs/surfbar_functions.php @@ -298,29 +298,39 @@ function SURFBAR_TRANSLATE_STATUS ($status) { function SURFBAR_DETERMINE_REWARD () { global $_CONFIG; + // Static values are default + $reward = $_CONFIG['surfbar_static_reward']; + // Do we have static or dynamic? - if ($_CONFIG['surfbar_pay_model'] == "STATIC") { - // Static model, so choose static values - $reward = $_CONFIG['surfbar_static_reward']; - } else { - // Dynamic model, so calculate values - die("DYNAMIC payment model not yet supported!"); - } + if ($_CONFIG['surfbar_pay_model'] == "DYNAMIC") { + // "Calculate" dynamic reward + $reward += SURFBAR_CALCULATE_DYNAMIC_ADD(); + } // END - if // Return reward return $reward; } +// "Calculate" dynamic add +function SURFBAR_CALCULATE_DYNAMIC_ADD () { + // Get min/max values + $min = SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE(); + $max = SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE(); + + // "Calculate" dynamic part and return it + return mt_rand($min, $max); +} // Determine costs function SURFBAR_DETERMINE_COSTS () { global $_CONFIG; + // Static costs is default + $costs = $_CONFIG['surfbar_static_costs']; + // Do we have static or dynamic? - if ($_CONFIG['surfbar_pay_model'] == "STATIC") { - $costs = $_CONFIG['surfbar_static_costs']; - } else { - // Dynamic model, so calculate values - die("DYNAMIC payment model not yet supported!"); - } + if ($_CONFIG['surfbar_pay_model'] == "DYNAMIC") { + // "Calculate" dynamic costs + $costs += SURFBAR_CALCULATE_DYNAMIC_ADD(); + } // END - if // Return costs return $costs; @@ -349,50 +359,56 @@ function SURFBAR_CHECK_RELOAD_FULL() { // Default is full! $isFull = true; - // Do we have static or dynamic mode? - if ($_CONFIG['surfbar_pay_model'] == "STATIC") { - // Cache static reload lock - $SURFBAR_CACHE['surf_lock'] = $_CONFIG['surfbar_static_lock']; - //DEBUG_LOG(__FUNCTION__.":Fixed surf lock is ".$_CONFIG['surfbar_static_lock'].""); + // Cache static reload lock + $SURFBAR_CACHE['surf_lock'] = $_CONFIG['surfbar_static_lock']; + //DEBUG_LOG(__FUNCTION__.":Fixed surf lock is ".$_CONFIG['surfbar_static_lock'].""); + + // Do we have dynamic model? + if ($_CONFIG['surfbar_pay_model'] == "DYNAMIC") { + // "Calculate" dynamic lock + $SURFBAR_CACHE['surf_lock'] += SURFBAR_CALCULATE_DYNAMIC_ADD(); + } // END - if - // Ask the database - $result = SQL_QUERY_ESC("SELECT COUNT(id) AS cnt FROM "._MYSQL_PREFIX."_surfbar_locks + // Ask the database + $result = SQL_QUERY_ESC("SELECT COUNT(id) AS cnt FROM "._MYSQL_PREFIX."_surfbar_locks WHERE userid=%s AND (UNIX_TIMESTAMP() - ".SURFBAR_GET_DATA('surf_lock').") < UNIX_TIMESTAMP(last_surfed) LIMIT 1", - array($GLOBALS['userid']), __FILE__, __LINE__ - ); + array($GLOBALS['userid']), __FILE__, __LINE__ + ); - // Fetch row - list($SURFBAR_CACHE['user_locks']) = SQL_FETCHROW($result); + // Fetch row + list($SURFBAR_CACHE['user_locks']) = SQL_FETCHROW($result); - // Is it null? - if (is_null($SURFBAR_CACHE['user_locks'])) { - // Then fix it to zero! - $SURFBAR_CACHE['user_locks'] = 0; - } // END - if + // Is it null? + if (is_null($SURFBAR_CACHE['user_locks'])) { + // Then fix it to zero! + $SURFBAR_CACHE['user_locks'] = 0; + } // END - if - // Free result - SQL_FREERESULT($result); + // Free result + SQL_FREERESULT($result); - // Get total URLs - $total = SURFBAR_GET_TOTAL_URLS(); + // Get total URLs + $total = SURFBAR_GET_TOTAL_URLS(); - // Do we have some URLs in lock? Admins can always surf on own URLs! - //DEBUG_LOG(__FUNCTION__.":userLocks=".SURFBAR_GET_DATA('user_locks').",total={$total}"); - $isFull = ((SURFBAR_GET_DATA('user_locks') == $total) && ($total > 0)); - } else { - // Dynamic model... - die("DYNAMIC not yet implemented!"); - } + // Do we have some URLs in lock? Admins can always surf on own URLs! + //DEBUG_LOG(__FUNCTION__.":userLocks=".SURFBAR_GET_DATA('user_locks').",total={$total}"); + $isFull = ((SURFBAR_GET_DATA('user_locks') == $total) && ($total > 0)); // Return result return $isFull; } // Get total amount of URLs of given status for current user or of CONFIRMED URLs by default -function SURFBAR_GET_TOTAL_URLS ($status="CONFIRMED") { +function SURFBAR_GET_TOTAL_URLS ($status="CONFIRMED", $excludeUserId="") { // Determine depleted user account $UIDs = SURFBAR_DETERMINE_DEPLETED_USERIDS(); + // Is the exlude userid set? + if ($excludeUserId !== "") { + // Then add it + $UIDs[] = $excludeUserId; + } // END - if + // Get amount from database $result = SQL_QUERY_ESC("SELECT COUNT(id) AS cnt FROM "._MYSQL_PREFIX."_surfbar_urls @@ -417,7 +433,7 @@ function SURFBAR_IF_USER_BOOK_MORE_URLS ($uid=0) { return ((($uid == 0) && (IS_ADMIN())) || (SURFBAR_GET_TOTAL_USER_URLS($uid) < $_CONFIG['surfbar_max_order'])); } // Get total amount of URLs of given status for current user -function SURFBAR_GET_TOTAL_USER_URLS ($uid=0) { +function SURFBAR_GET_TOTAL_USER_URLS ($uid=0, $status="") { global $_CONFIG; // Is the user 0 and user is logged in? @@ -429,10 +445,18 @@ function SURFBAR_GET_TOTAL_USER_URLS ($uid=0) { return ($_CONFIG['surfbar_max_order'] + 1); } + // Default is all URLs + $ADD = ""; + + // Is the status set? + if (!empty($status)) { + $ADD = sprintf(" AND status='%s'", $status); + } // END - if + // Get amount from database $result = SQL_QUERY_ESC("SELECT COUNT(id) AS cnt FROM "._MYSQL_PREFIX."_surfbar_urls -WHERE userid=%s +WHERE userid=%s".$ADD." LIMIT %s", array($uid, $_CONFIG['surfbar_max_order']), __FILE__, __LINE__ ); @@ -671,17 +695,14 @@ GROUP BY userid", function SURFBAR_DETERMINE_WAIT_TIME () { global $_CONFIG; - // Init time - $time = 0; + // Static time is default + $time = $_CONFIG['surfbar_static_time']; // Which payment model do we have? - if ($_CONFIG['surfbar_pay_model'] == "STATIC") { - // Static model - $time = $_CONFIG['surfbar_static_time']; - } else { - // Dynamic - die("DYNAMIC payment model not yet finished!"); - } + if ($_CONFIG['surfbar_pay_model'] == "DYNAMIC") { + // "Calculate" dynamic time + $time += SURFBAR_CALCULATE_DYNAMIC_ADD(); + } // END - if // Return value return $time; @@ -745,13 +766,17 @@ function SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE () { $addon += abs(log($onlineUsers / $totalUsers + 1) * $percent * $totalUsers); // Get total URLs - $totalUrls = SURFBAR_GET_TOTAL_URLS(); + $totalUrls = SURFBAR_GET_TOTAL_URLS("CONFIRMED", "0"); // Get user's total URLs - $userUrls = SURFBAR_GET_TOTAL_USER_URLS(); + $userUrls = SURFBAR_GET_TOTAL_USER_URLS(0, "CONFIRMED"); // Calculate addon - $addon += abs(log($userUrls / $totalUrls + 1) * $percent * $totalUrls); + if ($totalUrls > 0) { + $addon += abs(log($userUrls / $totalUrls + 1) * $percent * $totalUrls); + } else { + $addon += abs(log($userUrls / 1 + 1) * $percent * $totalUrls); + } // Return addon return $addon; @@ -776,7 +801,7 @@ function SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE () { $addon += abs($max * $percent * $totalUsers); // Get total URLs - $totalUrls = SURFBAR_GET_TOTAL_URLS(); + $totalUrls = SURFBAR_GET_TOTAL_URLS("CONFIRMED", "0"); // Calculate addon $addon += abs($max * $percent * $totalUrls); @@ -795,7 +820,7 @@ function SURFBAR_CALCULATE_DYNAMIC_LOCK () { $onlineUsers = SURFBAR_DETERMINE_TOTAL_ONLINE(); // Calculate lock - $addon = abs(log($onlineUsers / $addon +1)); + $addon = abs(log($onlineUsers / $addon + 1)); // Return value return $addon; @@ -878,6 +903,33 @@ GROUP BY sbu.id", __FILE__, __LINE__); // Return value return $maxRand; } +// Load all URLs of the current user and return it as an array +function SURFBAR_GET_USER_URLS () { + // Init array + $URLs = array(); + + // Begin the query + $result = SQL_QUERY_ESC("SELECT u.id, u.url, u.views_total, u.status, UNIX_TIMESTAMP(u.registered) AS registered, UNIX_TIMESTAMP(u.last_locked) AS last_locked, u.lock_reason AS lock_reason +FROM "._MYSQL_PREFIX."_surfbar_urls AS u +WHERE u.userid=%s +ORDER BY u.id ASC", + array($GLOBALS['userid']), __FILE__, __LINE__); + + // Are there entries? + if (SQL_NUMROWS($result) > 0) { + // Load all rows + while ($row = SQL_FETCHARRAY($result)) { + // Add the row + $URLs[$row['id']] = $row; + } // END - while + } // END - if + + // Free result + SQL_FREERESULT($result); + + // Return the array + return $URLs; +} // Determine next id for surfbar or get data for given id, always call this before you call other // getters below this function!!! function SURFBAR_DETERMINE_NEXT_ID ($id = 0) { @@ -979,8 +1031,8 @@ LIMIT 1", // Only in dynamic model add the dynamic bonus! if ($_CONFIG['surfbar_pay_model'] == "DYNAMIC") { // Calculate dynamic reward/costs and add it - $SURFBAR_CACHE['reward'] += SURFBAR_CALCULATE_DYNAMIC_REWARD_ADD(); - $SURFBAR_CACHE['costs'] += SURFBAR_CALCULATE_DYNAMIC_COSTS_ADD(); + $SURFBAR_CACHE['reward'] += SURFBAR_CALCULATE_DYNAMIC_ADD(); + $SURFBAR_CACHE['costs'] += SURFBAR_CALCULATE_DYNAMIC_ADD(); //DEBUG_LOG(__FUNCTION__.":DYNAMIC+ - reward=".SURFBAR_GET_REWARD()."|costs=".SURFBAR_GET_COSTS().""); } // END - if