Dynamic payment added to surfbar
[mailer.git] / inc / libs / surfbar_functions.php
index ec045622f3b728ba6420dfb4f509b69b79b7d2b7..f2b006ccda75b3f62ad88b5531924acaabd9249c 100644 (file)
@@ -725,6 +725,81 @@ function SURFBAR_CHANGE_STATUS ($id, $prevStatus, $newStatus) {
        // All done!
        return true;
 }
+// Calculate minimum value for dynamic payment model
+function SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE () {
+       global $_CONFIG;
+
+       // Addon is zero by default
+       $addon = 0;
+
+       // Percentage part
+       $percent = abs(log($_CONFIG['surfbar_dynamic_percent'] / 100 + 1));
+
+       // Get total users
+       $totalUsers = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true);
+
+       // Get online users
+       $onlineUsers = SURFBAR_DETERMINE_TOTAL_ONLINE();
+
+       // Calculate addon
+       $addon += abs(log($onlineUsers / $totalUsers + 1) * $percent * $totalUsers);
+
+       // Get total URLs
+       $totalUrls = SURFBAR_GET_TOTAL_URLS();
+
+       // Get user's total URLs
+       $userUrls = SURFBAR_GET_TOTAL_USER_URLS();
+
+       // Calculate addon
+       $addon += abs(log($userUrls / $totalUrls + 1) * $percent * $totalUrls);
+
+       // Return addon
+       return $addon;
+}
+// Calculate maximum value for dynamic payment model
+function SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE () {
+       global $_CONFIG;
+
+       // Addon is zero by default
+       $addon = 0;
+
+       // Maximum value
+       $max = log(2);
+
+       // Percentage part
+       $percent = abs(log($_CONFIG['surfbar_dynamic_percent'] / 100 + 1));
+
+       // Get total users
+       $totalUsers = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true);
+
+       // Calculate addon
+       $addon += abs($max * $percent * $totalUsers);
+
+       // Get total URLs
+       $totalUrls = SURFBAR_GET_TOTAL_URLS();
+
+       // Calculate addon
+       $addon += abs($max * $percent * $totalUrls);
+
+       // Return addon
+       return $addon;
+}
+// Calculate dynamic lock
+function SURFBAR_CALCULATE_DYNAMIC_LOCK () {
+       global $_CONFIG;
+
+       // Default lock is 30 seconds
+       $addon = 30;
+
+       // Get online users
+       $onlineUsers = SURFBAR_DETERMINE_TOTAL_ONLINE();
+
+       // Calculate lock
+       $addon = abs(log($onlineUsers / $addon +1));
+
+       // Return value
+       return $addon;
+}
 // "Getter" for lock ids array
 function SURFBAR_GET_LOCK_IDS () {
        // Prepare some arrays