return false;
}
- // Do we have fixed or dynamic payment model?
- $reward = SURFBAR_DETERMINE_REWARD();
- $costs = SURFBAR_DETERMINE_COSTS();
-
// Register the new URL
- return SURFBAR_REGISTER_URL($url, "0", $reward, $costs, "0", "CONFIRMED", "unlock");
+ return SURFBAR_REGISTER_URL($url, "0", "0", "ACTIVE", "unlock");
}
// Admin function for unlocking URLs
function SURFBAR_ADMIN_UNLOCK_URL_IDS ($IDs) {
// Update the status for all ids
foreach ($IDs as $id => $dummy) {
// Test all ids through (ignores failed)
- $done = (($done) && (SURFBAR_CHANGE_STATUS($id, "PENDING", "CONFIRMED")));
+ $done = (($done) && (SURFBAR_CHANGE_STATUS($id, "PENDING", "ACTIVE")));
+ } // END - if
+
+ // Return total status
+ return $done;
+}
+// Admin function for rejecting URLs
+function SURFBAR_ADMIN_REJECT_URL_IDS ($IDs) {
+ // Is this an admin or invalid array?
+ if (!IS_ADMIN()) {
+ // Not admin or invalid IDs array
+ return false;
+ } elseif (!is_array($IDs)) {
+ // No array
+ return false;
+ } elseif (count($IDs) == 0) {
+ // Empty array
+ return false;
+ }
+
+ // Set to true to make AND expression valid if first URL got unlocked
+ $done = true;
+
+ // Update the status for all ids
+ foreach ($IDs as $id => $dummy) {
+ // Test all ids through (ignores failed)
+ $done = (($done) && (SURFBAR_CHANGE_STATUS($id, "PENDING", "REJECTED")));
} // END - if
// Return total status
return false;
}
- // Do we have fixed or dynamic payment model?
- $reward = SURFBAR_DETERMINE_REWARD();
- $costs = SURFBAR_DETERMINE_COSTS();
-
// Register the new URL
- return SURFBAR_REGISTER_URL($url, $GLOBALS['userid'], $reward, $costs);
+ return SURFBAR_REGISTER_URL($url, $GLOBALS['userid']);
}
// Create list of actions depending on status for the user
function SURFBAR_MEMBER_ACTIONS ($urlId, $status) {
}
// Do the member form request
function SURFBAR_MEMBER_DO_FORM ($formData, $URLs) {
+ global $SURFBAR_CACHE;
+
+ // By default no action is performed
+ $performed = false;
+
// Is this a member?
if (!IS_MEMBER()) {
// No member!
return false;
+ } elseif ((!isset($formData['id'])) || (!isset($formData['action']))) {
+ // Important form elements are missing!
+ return false;
+ } elseif (!isset($URLs[$formData['id']])) {
+ // ID not found in cache
+ return false;
+ } elseif (!SURFBAR_VALIDATE_MEMBER_ACTION_STATUS($formData['action'], $URLs[$formData['id']]['status'])) {
+ // Action not allowed for current URL status
+ return false;
+ }
+
+ // Create the function name for selected action
+ $functionName = sprintf("SURFBAR_MEMBER_%s_ACTION", strtoupper(SQL_ESCAPE($formData['action'])));
+
+ // Is the function there?
+ if (function_exists($functionName)) {
+ // Add new status
+ $URLs[$formData['id']]['new_status'] = $SURFBAR_CACHE['new_status'];
+
+ // Extract URL data for call-back
+ $urlData = array($URLs[$formData['id']]);
+
+ // Action found so execute it
+ $performed = call_user_func_array($functionName, $urlData);
+ } else {
+ // Log invalid request
+ DEBUG_LOG(__FUNCTION__.": action={$formData['action']},id={$formData['id']},function={$functionName}");
+ }
+
+ // Return status
+ return $performed;
+}
+// Validate if the requested action can be performed on current URL status
+function SURFBAR_VALIDATE_MEMBER_ACTION_STATUS ($action, $status) {
+ global $SURFBAR_CACHE;
+
+ // Search for the requested action/status combination in database
+ $result = SQL_QUERY_ESC("SELECT new_status FROM "._MYSQL_PREFIX."_surfbar_actions WHERE action='%s' AND status='%s' LIMIT 1",
+ array($action, $status), __FILE__, __LINE__);
+
+ // Is the entry there?
+ $isValid = (SQL_NUMROWS($result) == 1);
+
+ // Fetch the new status if found
+ if ($isValid) {
+ list($SURFBAR_CACHE['new_status']) = SQL_FETCHROW($result);
} // END - if
- /* DEBUG: */ die("<pre>".print_r($formData, true)."</pre><pre>".print_r($URLs, true)."</pre>");
+ // Free result
+ SQL_FREERESULT($result);
+
+ // Return status
+ return $isValid;
+}
+//
+// -----------------------------------------------------------------------------
+// Member actions
+// -----------------------------------------------------------------------------
+//
+// Retreat an URL
+function SURFBAR_MEMBER_RETREAT_ACTION ($urlData) {
+ // Create the data array for next function call
+ $data = array(
+ $urlData['id'] => $urlData
+ );
+
+ // Simply change the status here
+ return SURFBAR_CHANGE_STATUS ($urlData['id'], $urlData['status'], $urlData['new_status'], $data);
}
//
// -----------------------------------------------------------------------------
} // END - if
// Look up the record
- $result = SQL_QUERY_ESC("SELECT id, userid, url, reward, costs, views_total, status, registered, last_locked, lock_reason
+ $result = SQL_QUERY_ESC("SELECT id, userid, url, views_total, status, registered, last_locked, lock_reason
FROM "._MYSQL_PREFIX."_surfbar_urls
WHERE %s='%s'
ORDER BY %s %s
return $lastUrlData;
}
// Registers an URL with the surfbar. You should have called SURFBAR_LOOKUP_BY_URL() first!
-function SURFBAR_REGISTER_URL ($url, $uid, $reward, $costs, $paymentId=0, $status="PENDING", $addMode="reg") {
+function SURFBAR_REGISTER_URL ($url, $uid, $paymentId=0, $status="PENDING", $addMode="reg") {
global $_CONFIG;
// Make sure by the user registered URLs are always pending
'url' => $url,
'frametester' => FRAMETESTER($url),
'uid' => $uid,
- 'reward' => $reward,
- 'costs' => $costs,
'status' => $status
);
// Translate status, reward and costs
$content['status'] = SURFBAR_TRANSLATE_STATUS($content['status']);
- $content['reward'] = TRANSLATE_COMMA($content['reward']);
- $content['costs'] = TRANSLATE_COMMA($content['costs']);
// If in reg-mode we notify admin
if (($addMode == "reg") || ($_CONFIG['surfbar_notify_admin_unlock'] == "Y")) {
if (empty($uid)) $uid = 0;
// Just run the insert query for now
- SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_surfbar_urls (userid, url, reward, costs, status) VALUES('%s', '%s', %s, %s, '%s')",
+ SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_surfbar_urls (userid, url, status) VALUES(%s, '%s', '%s')",
array(
$uid,
$urlData['url'],
- (float)$urlData['reward'],
- (float)$urlData['costs'],
$urlData['status']
), __FILE__, __LINE__
);
// Prepare template name
$templateName = sprintf("admin_surfbar_%s", $messageType);
+ // Set default subject if following eval() wents wrong
+ $subject = ADMIN_SURFBAR_NOTIFY_DEFAULT_SUBJECT;
+
// Prepare subject
$eval = sprintf("\$subject = ADMIN_SURFBAR_NOTIFY_%s_SUBJECT;",
strtoupper($messageType)
);
- eval($eval);
+ @eval($eval);
// Send the notification out
return SEND_ADMIN_NOTIFICATION($subject, $templateName, $content, $content['uid']);
// Prepare template name
$templateName = sprintf("member_surfbar_%s", $messageType);
+ // Set default subject if following eval() wents wrong
+ $subject = MEMBER_SURFBAR_NOTIFY_DEFAULT_SUBJECT;
+
// Prepare subject
$eval = sprintf("\$subject = MEMBER_SURFBAR_NOTIFY_%s_SUBJECT;",
strtoupper($messageType)
);
- eval($eval);
+ @eval($eval);
// Load template
$mailText = LOAD_EMAIL_TEMPLATE($templateName, $content);
return $statusTranslated;
}
// Determine reward
-function SURFBAR_DETERMINE_REWARD () {
+function SURFBAR_DETERMINE_REWARD ($onlyMin=false) {
global $_CONFIG;
// Static values are default
// Do we have static or dynamic?
if ($_CONFIG['surfbar_pay_model'] == "DYNAMIC") {
// "Calculate" dynamic reward
- $reward += SURFBAR_CALCULATE_DYNAMIC_ADD();
+ if ($onlyMin) {
+ $reward += SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE();
+ } else {
+ $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 () {
+function SURFBAR_DETERMINE_COSTS ($onlyMin=false) {
global $_CONFIG;
// Static costs is default
// Do we have static or dynamic?
if ($_CONFIG['surfbar_pay_model'] == "DYNAMIC") {
// "Calculate" dynamic costs
- $costs += SURFBAR_CALCULATE_DYNAMIC_ADD();
+ if ($onlyMin) {
+ $costs += SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE();
+ } else {
+ $costs += SURFBAR_CALCULATE_DYNAMIC_ADD();
+ }
} // END - if
// Return costs
return $costs;
}
+// "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 right template name
function SURFBAR_DETERMINE_TEMPLATE_NAME() {
// Default is the frameset
// 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", $excludeUserId="") {
+// Get total amount of URLs of given status for current user or of ACTIVE URLs by default
+function SURFBAR_GET_TOTAL_URLS ($status="ACTIVE", $excludeUserId="") {
// Determine depleted user account
$UIDs = SURFBAR_DETERMINE_DEPLETED_USERIDS();
// Get all userid except logged in one
$result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_surfbar_urls
-WHERE userid NOT IN (%s,0) AND status='CONFIRMED'
+WHERE userid NOT IN (%s,0) AND status='ACTIVE'
GROUP BY userid
ORDER BY userid ASC",
array($GLOBALS['userid']), __FILE__, __LINE__);
} else {
// Get all userid
$result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_surfbar_urls
-WHERE status='CONFIRMED'
+WHERE status='ACTIVE'
GROUP BY userid
ORDER BY userid ASC", __FILE__, __LINE__);
}
return $time;
}
// Changes the status of an URL from given to other
-function SURFBAR_CHANGE_STATUS ($urlId, $prevStatus, $newStatus) {
- // Get URL data for status comparison
- $data = SURFBAR_GET_URL_DATA($urlId);
+function SURFBAR_CHANGE_STATUS ($urlId, $prevStatus, $newStatus, $data=array()) {
+ global $_CONFIG;
+
+ // Get URL data for status comparison if missing
+ if (count($data) == 0) {
+ $data = SURFBAR_GET_URL_DATA($urlId);
+ } // END - if
// Is the status like prevStatus is saying?
if ($data[$urlId]['status'] != $prevStatus) {
return false;
} // END - if
+
// Update the status now
- SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_urls SET status='%s' WHERE id=%s LIMIT 1",
- array($newStatus, bigintval($urlId)), __FILE__, __LINE__);
+ // ---------------------- Commented out for debugging member actions! -----------------------
+ //SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_urls SET status='%s' WHERE id=%s LIMIT 1",
+ // array($newStatus, bigintval($urlId)), __FILE__, __LINE__);
+ // ---------------------- Commented out for debugging member actions! -----------------------
// Was that fine?
if (SQL_AFFECTEDROWS() != 1) {
// Prepare content for notification routines
$data[$urlId]['uid'] = $data[$urlId]['userid'];
$data[$urlId]['frametester'] = FRAMETESTER($data[$urlId]['url']);
- $data[$urlId]['reward'] = TRANSLATE_COMMA($data[$urlId]['reward']);
- $data[$urlId]['costs'] = TRANSLATE_COMMA($data[$urlId]['costs']);
+ $data[$urlId]['reward'] = TRANSLATE_COMMA($_CONFIG['surfbar_static_reward']);
+ $data[$urlId]['costs'] = TRANSLATE_COMMA($_CONFIG['surfbar_static_costs']);
$data[$urlId]['status'] = SURFBAR_TRANSLATE_STATUS($newStatus);
$data[$urlId]['registered'] = MAKE_DATETIME($data[$urlId]['registered'], "2");
$newStatus = strtolower($newStatus);
$addon += abs(log($onlineUsers / $totalUsers + 1) * $percent * $totalUsers);
// Get total URLs
- $totalUrls = SURFBAR_GET_TOTAL_URLS("CONFIRMED", "0");
+ $totalUrls = SURFBAR_GET_TOTAL_URLS("ACTIVE", "0");
// Get user's total URLs
- $userUrls = SURFBAR_GET_TOTAL_USER_URLS(0, "CONFIRMED");
+ $userUrls = SURFBAR_GET_TOTAL_USER_URLS(0, "ACTIVE");
// Calculate addon
if ($totalUrls > 0) {
$addon += abs($max * $percent * $totalUsers);
// Get total URLs
- $totalUrls = SURFBAR_GET_TOTAL_URLS("CONFIRMED", "0");
+ $totalUrls = SURFBAR_GET_TOTAL_URLS("ACTIVE", "0");
// Calculate addon
$addon += abs($max * $percent * $totalUrls);
ON sbu.id=sbs.url_id
LEFT JOIN "._MYSQL_PREFIX."_surfbar_locks AS l
ON sbu.id=l.url_id
-WHERE sbu.userid NOT IN (".implode(",", $UIDs).") AND sbu.status='CONFIRMED'".$ADD."
+WHERE sbu.userid NOT IN (".implode(",", $UIDs).") AND sbu.status='ACTIVE'".$ADD."
GROUP BY sbu.id", __FILE__, __LINE__);
// Log last query
$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
+ $result = SQL_QUERY_ESC("SELECT u.id, u.userid, 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 AND u.status != 'DELETED'
ORDER BY u.id ASC",
ON sbu.id=sbs.url_id
LEFT JOIN "._MYSQL_PREFIX."_surfbar_locks AS l
ON sbu.id=l.url_id
-WHERE sbu.userid NOT IN (".implode(",", $UIDs).") AND sbu.status='CONFIRMED'".$ADD."
+WHERE sbu.userid NOT IN (".implode(",", $UIDs).") AND sbu.status='ACTIVE'".$ADD."
GROUP BY sbu.id
ORDER BY l.last_surfed ASC, sbu.id ASC
LIMIT %s,1",
ON sbu.id=sbs.url_id
LEFT JOIN "._MYSQL_PREFIX."_surfbar_locks AS l
ON sbu.id=l.url_id
-WHERE sbu.userid != %s AND sbu.status='CONFIRMED' AND sbu.id=%s
+WHERE sbu.userid != %s AND sbu.status='ACTIVE' AND sbu.id=%s
LIMIT 1",
array($GLOBALS['userid'], bigintval($urlId)), __FILE__, __LINE__
);