// -----------------------------------------------------------------------------
//
// Admin has added an URL with given user id and so on
-function SURFBAR_ADMIN_ADD_URL ($url) {
+function SURFBAR_ADMIN_ADD_URL ($url, $limit) {
// Do some pre-checks
if (!IS_ADMIN()) {
// Not an admin
} elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS()) {
// No more allowed!
return false;
+ } elseif ("".bigintval($limit)."" != "".$limit."") {
+ // Invalid amount entered
+ return false;
}
// Register the new URL
- return SURFBAR_REGISTER_URL($url, "0", "ACTIVE", "unlock");
+ return SURFBAR_REGISTER_URL($url, "0", "ACTIVE", "unlock", $limit);
}
// Admin unlocked an email so we can migrate the URL
function SURFBAR_ADMIN_MIGRATE_URL ($url, $uid) {
// -----------------------------------------------------------------------------
//
// Member has added an URL
-function SURFBAR_MEMBER_ADD_URL ($url) {
+function SURFBAR_MEMBER_ADD_URL ($url, $limit) {
global $_CONFIG;
// Do some pre-checks
} elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS($GLOBALS['userid'])) {
// No more allowed!
return false;
+ } elseif ("".bigintval($limit)."" != "".$limit."") {
+ // Invalid amount entered
+ return false;
}
// Register the new URL
- return SURFBAR_REGISTER_URL($url, $GLOBALS['userid']);
+ return SURFBAR_REGISTER_URL($url, $GLOBALS['userid'], "PENDING", "reg", $limit);
}
// Create list of actions depending on status for the user
function SURFBAR_MEMBER_ACTIONS ($urlId, $status) {
return $lastUrlData;
}
// Registers an URL with the surfbar. You should have called SURFBAR_LOOKUP_BY_URL() first!
-function SURFBAR_REGISTER_URL ($url, $uid, $status="PENDING", $addMode="reg") {
+function SURFBAR_REGISTER_URL ($url, $uid, $status="PENDING", $addMode="reg", $limit=0) {
global $_CONFIG;
// Make sure by the user registered URLs are always pending
'url' => $url,
'frametester' => FRAMETESTER($url),
'uid' => $uid,
- 'status' => $status
+ 'status' => $status,
+ 'limit' => $limit
);
// Insert the URL into database
$content['insert_id'] = SURFBAR_INSERT_URL_BY_ARRAY($content);
- // Translate status, reward and costs
+ // Is this ID valid?
+ if ($content['insert_id'] == 0) {
+ // INSERT did not insert any data!
+ return false;
+ } // END - if
+
+ // Translate status and limit
$content['status'] = SURFBAR_TRANSLATE_STATUS($content['status']);
+ $content['limit'] = SURFBAR_TRANSLATE_LIMIT($content['limit']);
// 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, status) VALUES(%s, '%s', '%s')",
+ SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_surfbar_urls (userid,url,status,views_max,views_allowed) VALUES(%s,'%s','%s','%s','%s')",
array(
$uid,
$urlData['url'],
- $urlData['status']
+ $urlData['status'],
+ $urlData['limit'],
+ $urlData['limit']
), __FILE__, __LINE__
);
// Send the email
return SEND_EMAIL($content['uid'], $subject, $mailText);
}
+// Translates the limit
+function SURFBAR_TRANSLATE_LIMIT ($limit) {
+ // Is this zero?
+ if ($limit == 0) {
+ // Unlimited!
+ $return = MEMBER_SURFBAR_UNLIMITED_VIEWS;
+ } else {
+ // Translate comma
+ $return = TRANSLATE_COMMA($limit);
+ }
+
+ // Return value
+ return $return;
+}
// Translate the URL status
function SURFBAR_TRANSLATE_STATUS ($status) {
// Create constant name
function SURFBAR_UPDATE_INSERT_STATS_RECORD () {
global $_CONFIG;
- // Update views_total
- SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_urls SET views_total=views_total+1 WHERE id=%s LIMIT 1",
+ // Init add
+ $ADD = "";
+
+ // Get allowed views
+ $allowed = SURFBAR_GET_ALLOWED_VIEWS();
+
+ // Do we have a limit?
+ if ($allowed > 0) {
+ // Then count views_max down!
+ $ADD .= ",views_max=views_max-1";
+ } // END - if
+
+ // Update URL stats
+ SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_urls SET views_total=views_total+1".$ADD." WHERE id=%s LIMIT 1",
array(SURFBAR_GET_ID()), __FILE__, __LINE__);
// Update the stats entry
// And query the database
//DEBUG_LOG(__FUNCTION__.":randNum={$randNum},maxRand={$maxRand},surfLock=".SURFBAR_GET_DATA('surf_lock')."");
- $result = SQL_QUERY_ESC("SELECT sbu.id, sbu.userid, sbu.url, sbs.last_salt, sbu.reward, sbu.costs, sbu.views_total, UNIX_TIMESTAMP(l.last_surfed) AS last_surfed
+ $result = SQL_QUERY_ESC("SELECT sbu.id, sbu.userid, sbu.url, sbs.last_salt, sbu.reward, sbu.costs, sbu.views_total, sbu.views_max, sbu.views_allowed, UNIX_TIMESTAMP(l.last_surfed) AS last_surfed
FROM "._MYSQL_PREFIX."_surfbar_urls AS sbu
LEFT JOIN "._MYSQL_PREFIX."_surfbar_salts AS sbs
ON sbu.id=sbs.url_id
);
} else {
// Get data from specified id number
- $result = SQL_QUERY_ESC("SELECT sbu.id, sbu.userid, sbu.url, sbs.last_salt, sbu.reward, sbu.costs, sbu.views_total, UNIX_TIMESTAMP(l.last_surfed) AS last_surfed
+ $result = SQL_QUERY_ESC("SELECT sbu.id, sbu.userid, sbu.url, sbs.last_salt, sbu.reward, sbu.costs, sbu.views_total, sbu.views_max, sbu.views_allowed, UNIX_TIMESTAMP(l.last_surfed) AS last_surfed
FROM "._MYSQL_PREFIX."_surfbar_urls AS sbu
LEFT JOIN "._MYSQL_PREFIX."_surfbar_salts AS sbs
ON sbu.id=sbs.url_id
// Get data element and return its contents
return SURFBAR_GET_DATA('time');
}
+// Getter for allowed views
+function SURFBAR_GET_ALLOWED_VIEWS () {
+ // Get data element and return its contents
+ return SURFBAR_GET_DATA('views_allowed');
+}
//
?>