// Check if cache is latest version
$locked = "Y"; $hidden = "N"; $admin = "N"; $mem = "N"; $found = false;
- if ((GET_EXT_VERSION("cache") >= "0.1.2") && (isset($cacheArray['modules']['module'])) && (is_array($cacheArray['modules']['module']))) {
+ if (GET_EXT_VERSION("cache") >= "0.1.2") {
// Is the module cached?
if (isset($cacheArray['modules']['locked'][$mod_chk])) {
// Check cache
}
}
- // Check returned values against current access permissions
- //
- // Admin access ----- Guest access ----- --- Guest or member? ---
- if ((IS_ADMIN()) || (($locked == "N") && ($admin == "N") && (($mem == "N") || (IS_MEMBER())))) {
- // If you are admin you are welcome for everything!
- $ret = "done";
- } elseif ($locked == "Y") {
- // Module is locked
- $ret = "locked";
- } elseif (($mem == "Y") && (!IS_MEMBER())) {
- // You have to login first!
- $ret = "mem_only";
- } elseif (($admin == "Y") && (!IS_ADMIN())) {
- // Only the Admin is allowed to enter this module!
- $ret = "admin_only";
- }
+ // Is the module found?
+ if ($found) {
+ // Check returned values against current access permissions
+ //
+ // Admin access ----- Guest access ----- --- Guest or member? ---
+ if ((IS_ADMIN()) || (($locked == "N") && ($admin == "N") && (($mem == "N") || (IS_MEMBER())))) {
+ // If you are admin you are welcome for everything!
+ $ret = "done";
+ } elseif ($locked == "Y") {
+ // Module is locked
+ $ret = "locked";
+ } elseif (($mem == "Y") && (!IS_MEMBER())) {
+ // You have to login first!
+ $ret = "mem_only";
+ } elseif (($admin == "Y") && (!IS_ADMIN())) {
+ // Only the Admin is allowed to enter this module!
+ $ret = "admin_only";
+ }
+ } // END - if
// Still no luck or not found?
- if (($ret == "major") || ($ret == "cache_miss") || (!$found)) {
+ if (($ret == "cache_miss") || (!$found)) {
// ----- Legacy module ----- ---- Module in base folder ---- --- Module with extension's name ---
if ((FILE_READABLE(sprintf("%sinc/modules/%s.php", PATH, $mod))) || (FILE_READABLE(sprintf("%s%s.php", PATH, $mod))) || (FILE_READABLE(sprintf("%s%s/%s.php", PATH, $extension, $mod)))) {
// Data is missing so we add it
// Module not found we don't add it to the database
$ret = "404";
}
- } // END - if
+ } elseif (!$found) {
+ // Problem with module detected
+ DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Problem in module %s detected. ret=%s, locked=%s, hidden=%s, mem=%s, admin=%s",
+ $mod,
+ $ret,
+ $locked,
+ $hidden,
+ $mem,
+ $admin
+ ));
+ }
// Return the value
return $ret;
return $ret;
}
//
-function UPDATE_LOGIN_DATA () {
- global $LAST, $_CONFIG;
- if (!is_array($LAST)) $LAST = array();
-
- // Recheck if logged in
- if (!IS_MEMBER()) return false;
-
- // Secure user ID
- $GLOBALS['userid'] = bigintval(get_session('userid'));
-
- // Extract last online time (life) and how long is auto-login valid (time)
- $newl = time() + bigintval(get_session('lifetime'));
-
- // Load last module and last online time
- $result = SQL_QUERY_ESC("SELECT last_module, last_online FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__);
- if (SQL_NUMROWS($result) == 1) {
- // Load last module and online time
- list($mod, $onl) = SQL_FETCHROW($result);
- SQL_FREERESULT($result);
-
- // Maybe first login time?
- if (empty($mod)) $mod = "login";
-
- if (set_session("userid", $GLOBALS['userid'], $newl, COOKIE_PATH) && set_session("u_hash", get_session('u_hash'), $newl, COOKIE_PATH) && set_session("lifetime", bigintval(get_session('lifetime')), $newl, COOKIE_PATH)) {
- // This will be displayed on welcome page! :-)
- if (empty($LAST['module'])) {
- $LAST['module'] = $mod; $LAST['online'] = $onl;
- } // END - if
-
- // "what" not set?
- if (empty($GLOBALS['what'])) {
- // Fix it to default
- $GLOBALS['what'] = "welcome";
- if (getConfig('index_home') != "") $GLOBALS['what'] = getConfig('index_home');
- } // END - if
-
- // Update last module / online time
- $result = SQL_QUERY_ESC("UPDATE `"._MYSQL_PREFIX."_user_data` SET last_module='%s', last_online=UNIX_TIMESTAMP(), REMOTE_ADDR='%s' WHERE userid=%s LIMIT 1",
- array($GLOBALS['what'], GET_REMOTE_ADDR(), $GLOBALS['userid']), __FILE__, __LINE__);
- }
- } else {
- // Destroy session, we cannot update!
- destroy_user_session();
- }
-}
-//
function VALIDATE_MENU_ACTION ($MODE, $act, $wht, $UPDATE=false)
{
$ret = false;
*/
function ADD_POINTS_REFSYSTEM ($subject, $uid, $points, $send_notify=false, $rid="0", $locked=false, $add_mode="ref") {
//* DEBUG: */ print "----------------------- <font color=\"#00aa00\">".__FUNCTION__." - ENTRY</font> ------------------------<ul><li>\n";
- global $DEPTH, $_CONFIG, $DATA, $cacheArray;
+ global $_CONFIG, $DATA, $cacheArray;
// Convert mode to lower-case
$add_mode = strtolower($add_mode);
} // END - if
// Count up referal depth
- if (!isset($DEPTH)) {
+ if (!isset($GLOBALS['ref_level'])) {
// Initialialize referal system
//* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>): Referal system initialized!<br />\n";
- $DEPTH = 0;
+ $GLOBALS['ref_level'] = 0;
} else {
// Increase referal level
- $DEPTH++;
- //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>): Referal level increased. DEPTH={$DEPTH}<br />\n";
+ $GLOBALS['ref_level']++;
+ //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>): Referal level increased. DEPTH={$GLOBALS['ref_level']}<br />\n";
}
// Default is "normal" 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__);
+ array(bigintval($uid)), __FILE__, __LINE__);
//* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},numRows=".SQL_NUMROWS($result_user).",points={$points}<br />\n";
if (SQL_NUMROWS($result_user) == 1) {
$cacheArray['add_uid'][$ref] = $uid;
// Get percents
- $per = GET_REF_LEVEL_PERCENTS($DEPTH);
- //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},points={$points},depth={$DEPTH},per={$per},mode={$add_mode}<br />\n";
+ $per = GET_REF_LEVEL_PERCENTS($GLOBALS['ref_level']);
+ //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},points={$points},depth={$GLOBALS['ref_level']},per={$per},mode={$add_mode}<br />\n";
// Some percents found?
if ($per > 0) {
// Calculate new points
- //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},points={$points},per={$per},depth={$DEPTH}<br />\n";
+ //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},points={$points},per={$per},depth={$GLOBALS['ref_level']}<br />\n";
$ref_points = $points * $per / 100;
// Pay refback here if level > 0 and in ref-mode
- if ((EXT_IS_ACTIVE("refback")) && ($DEPTH > 0) && ($per < 100) && ($add_mode == "ref") && (isset($cacheArray['add_uid'][$uid]))) {
- //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},data={$cacheArray['add_uid'][$uid]},ref_points={$ref_points},depth={$DEPTH} - BEFORE!<br />\n";
+ if ((EXT_IS_ACTIVE("refback")) && ($GLOBALS['ref_level'] > 0) && ($per < 100) && ($add_mode == "ref") && (isset($cacheArray['add_uid'][$uid]))) {
+ //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},data={$cacheArray['add_uid'][$uid]},ref_points={$ref_points},depth={$GLOBALS['ref_level']} - BEFORE!<br />\n";
$ref_points = ADD_REFBACK_POINTS($cacheArray['add_uid'][$uid], $uid, $points, $ref_points);
- //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},data={$cacheArray['add_uid'][$uid]},ref_points={$ref_points},depth={$DEPTH} - AFTER!<br />\n";
+ //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},data={$cacheArray['add_uid'][$uid]},ref_points={$ref_points},depth={$GLOBALS['ref_level']} - AFTER!<br />\n";
} // END - if
// Update points...
SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_points SET %s=%s+%s WHERE userid=%s AND ref_depth='%s' LIMIT 1",
- array($data, $data, $ref_points, bigintval($uid), bigintval($DEPTH)), __FILE__, __LINE__);
- //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):data={$data},ref_points={$ref_points},uid={$uid},depth={$DEPTH},mode={$add_mode} - UPDATE! (".SQL_AFFECTEDROWS().")<br />\n";
+ array($data, $data, $ref_points, bigintval($uid), bigintval($GLOBALS['ref_level'])), __FILE__, __LINE__);
+ //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):data={$data},ref_points={$ref_points},uid={$uid},depth={$GLOBALS['ref_level']},mode={$add_mode} - UPDATE! (".SQL_AFFECTEDROWS().")<br />\n";
// No entry updated?
if (SQL_AFFECTEDROWS() < 1) {
// 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), $ref_points), __FILE__, __LINE__);
+ $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_points (userid,ref_depth,%s) VALUES (%s,'%s',%s)",
+ array($data, bigintval($uid), bigintval($GLOBALS['ref_level']), $ref_points), __FILE__, __LINE__);
+ //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):data={$data},ref_points={$ref_points},uid={$uid},depth={$GLOBALS['ref_level']},mode={$add_mode} - INSERTED! (".SQL_AFFECTEDROWS().")<br />\n";
} // END - if
// Update mediadata as well
// Prepare content
$content = array(
'percent' => $per,
- 'level' => bigintval($DEPTH),
+ 'level' => bigintval($GLOBALS['ref_level']),
'points' => $ref_points,
'refid' => bigintval($ref)
);
if (($ref > 0) && ($points > 0) && ($ref != $uid) && ($add_mode == "ref")) {
// Then let's credit him here...
//* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},ref={$ref},points={$points} - ADVANCE!<br />\n";
- ADD_POINTS_REFSYSTEM(sprintf("%s_ref:%s", $subject, $DEPTH), $ref, $points, $send_notify, $ref, $locked);
+ ADD_POINTS_REFSYSTEM(sprintf("%s_ref:%s", $subject, $GLOBALS['ref_level']), $ref, $points, $send_notify, $ref, $locked);
} // END - if
} // END - if
} // END - if
UPDATE_REFBACK_TABLE($uid);
} // END - if
}
-// Updates/extends the online list
-function UPDATE_ONLINE_LIST($SID, $mod, $act, $wht) {
- global $_CONFIG;
- // Do not update online list when extension is deactivated
- if (!EXT_IS_ACTIVE("online", true)) return;
-
- // Empty session?
- if (empty($SID)) {
- // This is invalid here!
- print "Invalid session. Backtrace:<pre>";
- debug_print_backtrace();
- die("</pre>");
- } // END - if
-
- // Initialize variables
- $uid = 0; $rid = 0; $MEM = "N"; $ADMIN = "N";
-
- // Valid userid?
- if ((!empty($GLOBALS['userid'])) && ($GLOBALS['userid'] > 0) && (IS_MEMBER())) {
- // Is valid user
- $uid = bigintval($GLOBALS['userid']);
- $MEM = "Y";
- } // END - if
-
- if (IS_ADMIN()) {
- // Is administrator
- $ADMIN = "Y";
- } // END - if
-
- if (isSessionVariableSet('refid')) {
- // Check cookie
- if (get_session('refid') > 0) $rid = bigintval($GLOBALS['refid']);
- } // END - if
-
- // Now search for the user
- $result = SQL_QUERY_ESC("SELECT timestamp FROM "._MYSQL_PREFIX."_online
-WHERE sid='%s' LIMIT 1",
- array($SID), __FILE__, __LINE__);
-
- // Entry found?
- if (SQL_NUMROWS($result) == 1) {
- // Then update it
- SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_online SET
-module='%s',
-action='%s',
-what='%s',
-userid=%s,
-refid=%s,
-is_member='%s',
-is_admin='%s',
-timestamp=UNIX_TIMESTAMP()
-WHERE sid='%s' LIMIT 1",
- array($mod, $act, $wht, $uid, $rid, $MEM, $ADMIN, $SID), __FILE__, __LINE__
- );
- } else {
- // No entry does exists so we simply add it!
- SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_online (module, action, what, userid, refid, is_member, is_admin, timestamp, sid, ip) VALUES ('%s','%s','%s', %s, %s, '%s','%s', UNIX_TIMESTAMP(), '%s','%s')",
- array($mod, $act, $wht, $uid, $rid, $MEM, $ADMIN, $SID, GET_REMOTE_ADDR()), __FILE__, __LINE__
- );
- }
-
- // Free result
- SQL_FREERESULT($result);
-
- // Purge old entries
- $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_online WHERE timestamp <= (UNIX_TIMESTAMP() - %s)",
- array(getConfig('online_timeout')), __FILE__, __LINE__);
-}
// OBSOLETE: Sends out mail to all administrators
function SEND_ADMIN_EMAILS ($subj, $msg) {
// Load all admin email addresses
// Really simple... ;-)
}
+
// Get ID number from administrator's login name
function GET_ADMIN_ID ($login) {
global $cacheArray, $_CONFIG;
} elseif (!EXT_IS_ACTIVE("cache")) {
// Load from database
$result_aid = SQL_QUERY_ESC("SELECT email FROM "._MYSQL_PREFIX."_admins WHERE id=%s LIMIT 1",
- array(bigintval($ret)), __FILE__, __LINE__);
- if (SQL_NUMROWS($result) == 1) {
+ array(bigintval($aid)), __FILE__, __LINE__);
+ if (SQL_NUMROWS($result_aid) == 1) {
// Get data
list($ret) = SQL_FETCHROW($result_aid);
}
//
function META_DESCRIPTION ($mod, $wht) {
- global $_CONFIG, $DEPTH;
+ global $_CONFIG;
// Exclude admin and member's area
if (($mod != "admin") && ($mod != "login")) {
} // END - if
// Remove depth
- unset($DEPTH);
+ unset($GLOBALS['ref_level']);
}
//
function ADD_JACKPOT($points) {