// Free memory
SQL_FREERESULT($result);
- //* DEBUG: */ var_dump($ret);
+
+ // Return result
return $ret;
}
//
{
global $DEPTH, $_CONFIG, $DATA, $link;
+ // Debug message
+ //DEBUG_LOG(__FUNCTION__.": uid={$uid},points={$points}");
+
// When $uid = 0 add points to jackpot
if ($uid == "0") {
// Add points to jackpot
// Which points, locked or normal?
$data = "points"; if ($locked) $data = "locked_points";
+ // Check user account
$result_user = SQL_QUERY_ESC("SELECT refid, email FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s AND status='CONFIRMED' LIMIT 1",
array(bigintval($uid)), __FILE__, __LINE__);
+
//* DEBUG */ echo "+".SQL_NUMROWS($result_user).":".$points."+<br />\n";
if (SQL_NUMROWS($result_user) == 1) {
// This is the user and his ref
list ($ref, $email) = SQL_FETCHROW($result_user);
- SQL_FREERESULT($result_user);
- $result = SQL_QUERY_ESC("SELECT %s FROM "._MYSQL_PREFIX."_%s WHERE level='%s' LIMIT 1",
+ // Debug message
+ //DEBUG_LOG(__FUNCTION__.": ref={$ref},email={$email},DEPTH={$DEPTH}");
+
+ // Get referal data
+ $result_lvl = SQL_QUERY_ESC("SELECT %s FROM "._MYSQL_PREFIX."_%s WHERE level='%s' LIMIT 1",
array($percents, $table, bigintval($DEPTH)), __FILE__, __LINE__);
//* DEBUG */ echo "DEPTH:".$DEPTH."<br />\n";
- if (SQL_NUMROWS($result) == 1) {
- list($per) = SQL_FETCHROW($result);
- SQL_FREERESULT($result);
- $P = $points * $per / 100;
- //* DEBUG */ echo "ADD:".$P."<br />\n";
+ if (SQL_NUMROWS($result_lvl) == 1) {
+ // Get percents
+ list($per) = SQL_FETCHROW($result_lvl);
+
+ // Calculate new points
+ $ref_points = $points * $per / 100;
+
+ // Debug message
+ //DEBUG_LOG(__FUNCTION__.": percent={$per},ref_points={$ref_points}");
// Update points...
- $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET %s=%s+%s WHERE userid=%s AND ref_depth=%s LIMIT 1",
- array($data, $data, $P, bigintval($uid), bigintval($DEPTH)), __FILE__, __LINE__);
- if (SQL_AFFECTEDROWS($link, __FILE__, __LINE__) == 0) {
+ SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET %s=%s+%s WHERE userid=%s AND ref_depth=%d LIMIT 1",
+ array($data, $data, $ref_points, bigintval($uid), bigintval($DEPTH)), __FILE__, __LINE__);
+
+ // Debug log
+ //DEBUG_LOG(__FUNCTION__.": affectedRows=".SQL_AFFECTEDROWS().",DEPTH={$DEPTH}");
+
+ // No entry updated?
+ if (SQL_AFFECTEDROWS() == 0) {
// First ref in this level! :-)
- $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_points (userid, ref_depth, %s) VALUES (%s, %s, %s)",
- array($data, bigintval($uid), bigintval($DEPTH), $P), __FILE__, __LINE__);
- }
+ $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_points (userid, ref_depth, %s) VALUES (%s, %d, %s)",
+ array($data, bigintval($uid), bigintval($DEPTH), $ref_points), __FILE__, __LINE__);
+
+ // Debug log
+ //DEBUG_LOG(__FUNCTION__.": insertedRows=".SQL_AFFECTEDROWS()."");
+ } // END - if
// Update mediadata as well
if (GET_EXT_VERSION("mediadata") >= "0.0.4") {
// Update database
- MEDIA_UPDATE_ENTRY(array("total_points"), "add", $P);
- }
+ MEDIA_UPDATE_ENTRY(array("total_points"), "add", $ref_points);
+ } // END - if
// Points updated, maybe I shall send him an email?
if (($send_notify) && ($ref > 0) && (!$locked)) {
// 0 1 2 3
- $DATA = array($per, bigintval($DEPTH), $P, bigintval($ref));
+ $DATA = array($per, bigintval($DEPTH), $ref_points, bigintval($ref));
$msg = LOAD_EMAIL_TEMPLATE("confirm-referral", "", bigintval($uid));
SEND_EMAIL($email, THANX_REFERRAL_ONE, $msg);
} elseif (($send_notify) && ($ref == 0) && (!$locked) && ($add_mode == "direct") && (!defined('__POINTS_VALUE'))) {
// Direct payment shall be notified about
- define('__POINTS_VALUE', $P);
+ define('__POINTS_VALUE', $ref_points);
// Load message
$msg = LOAD_EMAIL_TEMPLATE("add-points", REASON_DIRECT_PAYMENT, $uid);
ADD_POINTS_REFSYSTEM($ref, $points, $send_notify, $ref, $locked);
}
}
+
+ // Free result
+ SQL_FREERESULT($result_lvl);
}
+
+ // Free result
+ SQL_FREERESULT($result_user);
}
//
function UPDATE_REF_COUNTER($uid)
return $ret;
}
//
-function GET_ADMIN_LOGIN($aid) {
+function GET_ADMIN_LOGIN ($aid) {
global $cacheArray;
$ret = "***";
- if (!empty($cacheArray['admins']['login']['aid'])) {
+ if (!empty($cacheArray['admins']['login'])) {
// Check cache
- if (!empty($cacheArray['admins']['login'][$aid])) $ret = $cacheArray['admins']['login'][$aid];
+ if (!empty($cacheArray['admins']['login'][$aid])) {
+ $ret = $cacheArray['admins']['login'][$aid];
+ } // END - if
if (empty($ret)) $ret = "***";
} else {
// Load from database
if (SQL_NUMROWS($result) == 1) {
// Fetch data
list($ret) = SQL_FETCHROW($result);
+
+ // Set cache
+ $cacheArray['admins']['login'][$aid] = $ret;
}
// Free memory
return $wht;
}
//
-function MODULE_HAS_MENU($mod)
+function MODULE_HAS_MENU($mod, $forceDb = false)
{
global $cacheArray, $_CONFIG;
// All is false by default
$ret = false;
+ //* DEBUG: */ echo __FUNCTION__.":mod={$mod},cache=".GET_EXT_VERSION("cache")."<br />\n";
if (GET_EXT_VERSION("cache") >= "0.1.2") {
- if (isset($cacheArray['modules']['has_menu'][$mod]))
- {
+ // Cache version is okay, so let's check the cache!
+ if (isset($cacheArray['modules']['has_menu'][$mod])) {
// Check module cache and count hit
- if ($cacheArray['modules']['has_menu'][$mod] == "Y") $ret = true;
+ $ret = ($cacheArray['modules']['has_menu'][$mod] == "Y");
$_CONFIG['cache_hits']++;
- }
- elseif (isset($cacheArray['extensions']['ext_menu'][$mod]))
- {
+ } elseif (isset($cacheArray['extensions']['ext_menu'][$mod])) {
// Check cache and count hit
- if ($cacheArray['extensions']['ext_menu'][$mod] == "Y") $ret = true;
+ $ret = ($cacheArray['extensions']['ext_menu'][$mod] == "Y");
$_CONFIG['cache_hits']++;
}
- }
-
- if ((GET_EXT_VERSION("sql_patches") >= "0.3.6") && ($ret === false)) {
+ } elseif ((GET_EXT_VERSION("sql_patches") >= "0.3.6") && ((!EXT_IS_ACTIVE("cache")) || ($forceDb === true))) {
// Check database for entry
$result = SQL_QUERY_ESC("SELECT has_menu FROM "._MYSQL_PREFIX."_mod_reg WHERE module='%s' LIMIT 1",
array($mod), __FILE__, __LINE__);
if (SQL_NUMROWS($result) == 1) {
list($has_menu) = SQL_FETCHROW($result);
+
+ // Fake cache... ;-)
+ $cacheArray['extensions']['ext_menu'][$mod] = $has_menu;
+
+ // Does it have a menu?
$ret = ($has_menu == "Y");
- }
+ } // END - if
// Free memory
SQL_FREERESULT($result);
}
// Run database update
- //* DEBUG: */ DEBUG_LOG(__FUNCTION__.":entries={$entries}");
+ //DEBUG_LOG(__FUNCTION__.":entries={$entries}");
SQL_QUERY("UPDATE "._MYSQL_PREFIX."_config SET ".$entries." WHERE config=0 LIMIT 1", __FILE__, __LINE__);
- // Destroy cache
- if ((GET_EXT_VERSION("cache") >= "0.1.2") && (SQL_AFFECTEDROWS() == 1)) {
+ // Get affected rows
+ $affectedRows = SQL_AFFECTEDROWS();
+ //* DEBUG: */ echo __FUNCTION__.":entries={$entries},affectedRows={$affectedRows}<br />\n";
+
+ // Destroy cache?
+ if ((GET_EXT_VERSION("cache") >= "0.1.2") && ($affectedRows == 1)) {
global $cacheInstance, $_CONFIG, $CSS;
if ($cacheInstance->cache_file("config", true)) $cacheInstance->cache_destroy();
require(PATH."inc/load_cache-config.php");
} // END - if
}
+// Creates a new task for updated extension
+function CREATE_EXTENSION_UPDATE_TASK ($admin_id, $subject, $notes) {
+ // Check if task is not there
+ $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE subject='%s' LIMIT 1",
+ array($subject), __FILE__, __LINE__);
+ if (SQL_NUMROWS($result) == 0) {
+ // Task not created so it's a brand-new extension which we need to register and create a task for!
+ $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (assigned_admin, userid, status, task_type, subject, text, task_created) VALUES ('%s', '0', 'NEW', 'EXTENSION_UPDATE', '%s', '%s', UNIX_TIMESTAMP())",
+ array($admin_id, $subject, $notes), __FILE__, __LINE__);
+ } // END - if
+
+ // Free memory
+ SQL_FREERESULT($result);
+}
+// Creates a new task for newly installed extension
+function CREATE_NEW_EXTENSION_TASK ($admin_id, $subject, $ext) {
+ // Not installed and do we have created a task for the admin?
+ $result = SQL_QUERY_ESC("SELECT `id` FROM `"._MYSQL_PREFIX."_task_system` WHERE `subject` LIKE '%s%%' LIMIT 1",
+ array($subject), __FILE__, __LINE__);
+ if ((SQL_NUMROWS($result) == 0) && (GET_EXT_VERSION($ext) == "")) {
+ // Template file
+ $tpl = sprintf("%stemplates/%s/html/ext/ext_%s.tpl",
+ PATH,
+ GET_LANGUAGE(),
+ $ext
+ );
+
+ // Load text for task
+ if ((file_exists($tpl)) && (is_readable($tpl))) {
+ // Load extension's own text template (HTML!)
+ $msg = LOAD_TEMPLATE("ext_".$ext, true);
+ } else {
+ // Load default message
+ $msg = LOAD_EMAIL_TEMPLATE("admin_new_ext","", 0);
+ }
+
+ // Task not created so it's a brand-new extension which we need to register and create a task for!
+ $result_insert = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (assigned_admin, userid, status, task_type, subject, text, task_created)
+VALUES (%s, 0, 'NEW', 'EXTENSION', '%s', '%s', UNIX_TIMESTAMP())",
+ array(
+ $admin_id,
+ $subject,
+ addslashes($msg),
+ ), __FILE__, __LINE__, true, false
+ );
+ } // END - if
+
+ // Free memory
+ SQL_FREERESULT($result);
+}
//
?>