X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmysql-manager.php;h=e4ef99b7002818d881166f91de7c301e61aa6422;hb=8120bdd67eb1c09cca24c1a6421f41ab107f0c67;hp=158977bd0f260c604c04d9b0e1aefca6bad34394;hpb=78815656dde7ad2e609f884f5778a5f421ff8621;p=mailer.git
diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php
index 158977bd0f..e4ef99b700 100644
--- a/inc/mysql-manager.php
+++ b/inc/mysql-manager.php
@@ -10,7 +10,12 @@
* -------------------------------------------------------------------- *
* Kurzbeschreibung : Alle MySQL-Relevanten Funktionen *
* -------------------------------------------------------------------- *
- * *
+ * $Revision:: $ *
+ * $Date:: $ *
+ * $Tag:: 0.2.1-FINAL $ *
+ * $Author:: $ *
+ * Needs to be in all Files and every File needs "svn propset *
+ * svn:keywords Date Revision" (autoprobset!) at least!!!!!! *
* -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2008 by Roland Haeder *
* For more information visit: http://www.mxchange.org *
@@ -33,27 +38,29 @@
// Some security stuff...
if (!defined('__SECURITY')) {
- $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+ $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
require($INC);
}
-//
-function ADD_MODULE_TITLE($mod) {
- global $cacheArray, $_CONFIG;
- $name = ""; $result = false;
+// Returns the title for given module
+function ADD_MODULE_TITLE ($mod) {
+ // Init variables
+ $name = '';
+ $result = false;
// Is the script installed?
- if (isBooleanConstantAndTrue('mxchange_installed')) {
+ if (isInstalled()) {
// Check if cache is valid
- if ((GET_EXT_VERSION("cache") >= "0.1.2") && (isset($cacheArray['modules']['module'])) && (in_array($mod, $cacheArray['modules']['module']))) {
+ if ((GET_EXT_VERSION('cache') >= '0.1.2') && (isset($GLOBALS['cache_array']['modules']['module'])) && (in_array($mod, $GLOBALS['cache_array']['modules']['module']))) {
// Load from cache
- $name = $cacheArray['modules']['title'][$mod];
+ $name = $GLOBALS['cache_array']['modules']['title'][$mod];
// Update cache hits
- if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; }
- } else {
+ incrementConfigEntry('cache_hits');
+ } elseif (!EXT_IS_ACTIVE('cache')) {
// Load from database
- $result = SQL_QUERY_ESC("SELECT title FROM "._MYSQL_PREFIX."_mod_reg WHERE module='%s' LIMIT 1", array($mod), __FILE__, __LINE__);
+ $result = SQL_QUERY_ESC("SELECT title FROM `{!_MYSQL_PREFIX!}_mod_reg` WHERE `module`='%s' LIMIT 1",
+ array($mod), __FUNCTION__, __LINE__);
list($name) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
}
@@ -65,10 +72,10 @@ function ADD_MODULE_TITLE($mod) {
// Still no luck or empty title?
if (empty($name)) {
// No name found
- $name = LANG_UNKNOWN_MODULE." (".$mod.")";
+ $name = sprintf("%s (%s)", getMessage('LANG_UNKNOWN_MODULE'), $mod);
if (SQL_NUMROWS($result) == 0) {
// Add module to database
- $dummy = CHECK_MODULE($mod);
+ $dummy = checkModulePermissions($mod);
} // END - if
} // END - if
@@ -77,16 +84,13 @@ function ADD_MODULE_TITLE($mod) {
}
// Check validity of a given module name (no file extension)
-function CHECK_MODULE($mod) {
- // We need them now here...
- global $cacheArray, $_CONFIG, $cacheInstance;
-
+function checkModulePermissions ($mod) {
// Filter module name (names with low chars and underlines are fine!)
- $mod = preg_replace("/[^a-z_]/", "", $mod);
+ $mod = preg_replace("/[^a-z_]/", '', $mod);
// Check for prefix is a extension...
$modSplit = explode("_", $mod);
- $extension = ""; $mod_chk = $mod;
+ $extension = ''; $mod_chk = $mod;
//* DEBUG: */ echo __LINE__."*".count($modSplit)."*/".$mod."*
";
if (count($modSplit) == 2) {
// Okay, there is a seperator (_) in the name so is the first part a module?
@@ -94,36 +98,52 @@ function CHECK_MODULE($mod) {
if (EXT_IS_ACTIVE($modSplit[0])) {
// The prefix is an extension's name, so let's set it
$extension = $modSplit[0]; $mod = $modSplit[1];
- }
- }
+ } // END - if
+ } // END - if
// Major error in module registry is the default
$ret = "major";
// Check if script is installed if not return a "done" to prevent some errors
- if ((!isBooleanConstantAndTrue('mxchange_installed')) || (isBooleanConstantAndTrue('mxchange_installing')) || (!isBooleanConstantAndTrue('admin_registered'))) return "done";
+ if ((!isInstalled()) || (isInstalling()) || (!isAdminRegistered())) {
+ // Not installed or no admin registered or in installation phase
+ return "done";
+ } // END - if
+
+ // Init variables
+ $locked = "Y";
+ $hidden = "N";
+ $admin = "N";
+ $mem = "N";
+ $found = false;
// 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 cache there?
+ if (!isset($GLOBALS['cache_array']['modules'])) {
+ // This should normally not happen...
+ debug_report_bug("Cache 'modules' is gone.");
+ } // END - if
+
// Is the module cached?
- if (isset($cacheArray['modules']['locked'][$mod_chk])) {
+ if (isset($GLOBALS['cache_array']['modules']['locked'][$mod_chk])) {
// Check cache
- $locked = $cacheArray['modules']['locked'][$mod_chk];
- $hidden = $cacheArray['modules']['hidden'][$mod_chk];
- $admin = $cacheArray['modules']['admin_only'][$mod_chk];
- $mem = $cacheArray['modules']['mem_only'][$mod_chk];
+ $locked = $GLOBALS['cache_array']['modules']['locked'][$mod_chk];
+ $hidden = $GLOBALS['cache_array']['modules']['hidden'][$mod_chk];
+ $admin = $GLOBALS['cache_array']['modules']['admin_only'][$mod_chk];
+ $mem = $GLOBALS['cache_array']['modules']['mem_only'][$mod_chk];
// Update cache hits
- if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; }
+ incrementConfigEntry('cache_hits');
$found = true;
} else {
// No, then we have to update it!
$ret = "cache_miss";
}
- } else {
+ } elseif (!EXT_IS_ACTIVE('cache')) {
// Check for module in database
- $result = SQL_QUERY_ESC("SELECT locked, hidden, admin_only, mem_only FROM "._MYSQL_PREFIX."_mod_reg WHERE module='%s' LIMIT 1", array($mod_chk), __FILE__, __LINE__);
+ $result = SQL_QUERY_ESC("SELECT locked, hidden, admin_only, mem_only FROM `{!_MYSQL_PREFIX!}_mod_reg` WHERE `module`='%s' LIMIT 1",
+ array($mod_chk), __FUNCTION__, __LINE__);
if (SQL_NUMROWS($result) == 1) {
// Read data
list($locked, $hidden, $admin, $mem) = SQL_FETCHROW($result);
@@ -132,39 +152,50 @@ function CHECK_MODULE($mod) {
}
}
- // 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 === true) {
+ // 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";
+ } else {
+ // @TODO Nothing helped???
+ DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("ret=%s,locked=%s,admin=%s,mem=%s",
+ $ret,
+ $locked,
+ $admin,
+ $mem
+ ));
+ }
+ } // END - if
// Still no luck or not found?
- if (($ret == "major") || ($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)))) {
+ if (($ret == "cache_miss") || (!$found)) {
+ // ----- Legacy module ----- ---- Module in base folder ---- --- Module with extension's name ---
+ if ((FILE_READABLE(sprintf("%sinc/modules/%s.php", constant('PATH'), $mod))) || (FILE_READABLE(sprintf("%s%s.php", constant('PATH'), $mod))) || (FILE_READABLE(sprintf("%s%s/%s.php", constant('PATH'), $extension, $mod)))) {
// Data is missing so we add it
- if (GET_EXT_VERSION("sql_patches") >= "0.3.6") {
+ if (GET_EXT_VERSION('sql_patches') >= '0.3.6') {
// Since 0.3.6 we have a has_menu column, this took me a half hour
// to find a loop here... *sigh*
- $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_mod_reg
+ SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_mod_reg`
(module, locked, hidden, mem_only, admin_only, has_menu) VALUES
-('%s','Y','N','N','N','N')", array($mod_chk), __FILE__, __LINE__);
+('%s','Y','N','N','N','N')", array($mod_chk), __FUNCTION__, __LINE__);
} else {
// Wrong/missing sql_patches!
- $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_mod_reg
+ SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_mod_reg`
(module, locked, hidden, mem_only, admin_only) VALUES
-('%s','Y','N','N','N')", array($mod_chk), __FILE__, __LINE__);
+('%s','Y','N','N','N')", array($mod_chk), __FUNCTION__, __LINE__);
}
// Everthing is fine?
@@ -174,87 +205,98 @@ function CHECK_MODULE($mod) {
} // END - if
// Destroy cache here
- REBUILD_CACHE("mod_reg", "modreg");
+ rebuildCacheFiles("modreg", "modreg");
// And reload data
- $ret = CHECK_MODULE($mod_chk);
+ $ret = checkModulePermissions($mod_chk);
} else {
// 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;
}
// Add menu description pending on given file name (without path!)
-function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) {
- global $NAV_DEPTH, $_CONFIG;
- // Use only filename of the file ;)
- $file = basename($file);
+function ADD_DESCR ($ACC_LVL, $FQFN, $return = false, $output = true) {
+ // Use only filename of the FQFN...
+ $file = basename($FQFN);
// Init variables
- $LINK_ADD = ""; $OUT = ""; $AND = "";
+ $LINK_ADD = '';
+ $OUT = '';
+ $AND = '';
// First we have to do some analysis...
if (substr($file, 0, 7) == "action-") {
// This is an action file!
$type = "action";
$search = substr($file, 7);
- switch ($ACC_LVL)
- {
- case "admin":
- $modCheck = "admin";
+ switch ($ACC_LVL) {
+ case 'admin':
+ $modCheck = 'admin';
break;
- case "sponsor":
- case "guest":
- case "member":
+ case 'sponsor':
+ case 'guest':
+ case 'member':
$modCheck = $GLOBALS['module'];
break;
}
- $AND = " AND (what='' OR what IS NULL)";
+ $AND = " AND (`what`='' OR `what` IS NULL)";
} elseif (substr($file, 0, 5) == "what-") {
// This is an admin what file!
$type = "what";
$search = substr($file, 5);
- $AND = "";
- switch ($ACC_LVL)
- {
- case "admin":
- $modCheck = "admin";
+ $AND = '';
+ switch ($ACC_LVL) {
+ case 'admin':
+ $modCheck = 'admin';
break;
- case "guest":
- case "member":
+ case 'guest':
+ case 'member':
$modCheck = $GLOBALS['module'];
if (!IS_ADMIN()) {
- $AND = " AND visible='Y' AND locked='N'";
+ $AND = " AND `visible`='Y' AND `locked`='N'";
}
break;
}
$dummy = substr($search, 0, -4);
- $AND .= " AND action='".GET_ACTION($ACC_LVL, $dummy)."'";
- } elseif (($ACC_LVL == "sponsor") || ($ACC_LVL == "engine")) {
+ $AND .= " AND `action`='".GET_ACTION($ACC_LVL, $dummy)."'";
+ } elseif (($ACC_LVL == 'sponsor') || ($ACC_LVL == "engine")) {
// Sponsor / engine menu
- $type = "what";
- $search = $file;
+ $type = "what";
+ $search = $file;
$modCheck = $GLOBALS['module'];
- $AND = "";
+ $AND = '';
} else {
// Other
- $type = "menu";
- $search = $file;
+ $type = "menu";
+ $search = $file;
$modCheck = $GLOBALS['module'];
- $AND = "";
+ $AND = '';
}
- if ((!isset($NAV_DEPTH)) && (!$return)) {
- $NAV_DEPTH = 0;
- $prefix = "
".print_r($_CONFIG, true).""); if (($type == "what") || (($type == "action") && ((!isset($GLOBALS['what'])) || ($GLOBALS['what'] == "overview")))) { //* DEBUG: */ echo __LINE__."+".$type."+
");
- //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."* \n"; - include ($INC_BLOCK); - //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."* \n"; - if ((!EXT_IS_ACTIVE($main_action)) || ($main_action == "online")) OUTPUT_HTML(" |
-
");
+ //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$content['action']."/".$content['sub_what'].":".$GLOBALS['what']."* \n"; + LOAD_INC($INC_BLOCK); + //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$content['action']."/".$content['sub_what'].":".$GLOBALS['what']."* \n"; + if ((!EXT_IS_ACTIVE($content['action'])) || ($content['action'] == 'online')) OUTPUT_HTML(" |
+
"; - debug_print_backtrace(); - die(""); - } // 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($_CONFIG['online_timeout']), __FILE__, __LINE__); -} -// OBSULETE: Sends out mail to all administrators +// Sends out mail to all administrators. This function is no longer obsolete +// because we need it when there is no ext-admins installed function SEND_ADMIN_EMAILS ($subj, $msg) { // Load all admin email addresses - $result = SQL_QUERY("SELECT email FROM "._MYSQL_PREFIX."_admins ORDER BY id ASC", __FILE__, __LINE__); - while (list($email) = SQL_FETCHROW($result)) { + $result = SQL_QUERY("SELECT email FROM `{!_MYSQL_PREFIX!}_admins` ORDER BY `id` ASC", __FUNCTION__, __LINE__); + while ($content = SQL_FETCHARRAY($result)) { // Send the email out - SEND_EMAIL($email, $subj, $msg); + SEND_EMAIL($content['email'], $subj, $msg); } // END - if // Free result @@ -1421,20 +1343,23 @@ function SEND_ADMIN_EMAILS ($subj, $msg) { // Really simple... ;-) } + // Get ID number from administrator's login name function GET_ADMIN_ID ($login) { - global $cacheArray, $_CONFIG; - $ret = "-1"; - if (!empty($cacheArray['admins']['aid'][$login])) { - // Check cache - $ret = $cacheArray['admins']['aid'][$login]; + // By default no admin is found + $ret = '-1'; + + // Check cache + if (isset($GLOBALS['cache_array']['admins']['aid'][$login])) { + // Use it if found to save SQL queries + $ret = $GLOBALS['cache_array']['admins']['aid'][$login]; // Update cache hits - if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; } - } elseif (!EXT_IS_ACTIVE("cache")) { + incrementConfigEntry('cache_hits'); + } elseif (!EXT_IS_ACTIVE('cache')) { // Load from database - $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1", - array($login), __FILE__, __LINE__); + $result = SQL_QUERY_ESC("SELECT id FROM `{!_MYSQL_PREFIX!}_admins` WHERE login='%s' LIMIT 1", + array($login), __FUNCTION__, __LINE__); if (SQL_NUMROWS($result) == 1) { list($ret) = SQL_FETCHROW($result); } // END - if @@ -1444,29 +1369,41 @@ function GET_ADMIN_ID ($login) { } return $ret; } -// + +// "Getter" for current admin id +function GET_CURRENT_ADMIN_ID () { + // Get the admin login from session + $adminLogin = get_session('admin_login'); + + // "Solve" it into an id + $adminId = GET_ADMIN_ID($adminLogin); + + // Secure and return it + return bigintval($adminId); +} + // Get password hash from administrator's login name -function GET_ADMIN_HASH ($aid) -{ - global $cacheArray, $_CONFIG; - $ret = "-1"; - if (!empty($cacheArray['admins']['password'][$aid])) { +function GET_ADMIN_HASH ($aid) { + // By default an invalid hash is returned + $ret = '-1'; + + if (isset($GLOBALS['cache_array']['admins']['password'][$aid])) { // Check cache - $ret = $cacheArray['admins']['password'][$aid]; + $ret = $GLOBALS['cache_array']['admins']['password'][$aid]; // Update cache hits - if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; } - } elseif (!EXT_IS_ACTIVE("cache")) { + incrementConfigEntry('cache_hits'); + } elseif (!EXT_IS_ACTIVE('cache')) { // Load from database - $result = SQL_QUERY_ESC("SELECT password FROM "._MYSQL_PREFIX."_admins WHERE id=%s LIMIT 1", - array($aid), __FILE__, __LINE__); + $result = SQL_QUERY_ESC("SELECT password FROM `{!_MYSQL_PREFIX!}_admins` WHERE id=%s LIMIT 1", + array($aid), __FUNCTION__, __LINE__); if (SQL_NUMROWS($result) == 1) { // Fetch data list($ret) = SQL_FETCHROW($result); // Set cache - $cacheArray['admins']['password'][$aid] = $ret; - } + $GLOBALS['cache_array']['admins']['password'][$aid] = $ret; + } // END - if // Free result SQL_FREERESULT($result); @@ -1475,24 +1412,25 @@ function GET_ADMIN_HASH ($aid) } // function GET_ADMIN_LOGIN ($aid) { - global $cacheArray, $_CONFIG; - $ret = "***"; - if (!empty($cacheArray['admins']['login'][$aid])) { + // By default a non-existent login is returned (other functions react on this!) + $ret = '***'; + + if (isset($GLOBALS['cache_array']['admins']['login'][$aid])) { // Get cache - $ret = $cacheArray['admins']['login'][$aid]; + $ret = $GLOBALS['cache_array']['admins']['login'][$aid]; // Update cache hits - if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; } - } elseif (!EXT_IS_ACTIVE("cache")) { + incrementConfigEntry('cache_hits'); + } elseif (!EXT_IS_ACTIVE('cache')) { // Load from database - $result = SQL_QUERY_ESC("SELECT login FROM "._MYSQL_PREFIX."_admins WHERE id=%s LIMIT 1", - array(bigintval($aid)), __FILE__, __LINE__); + $result = SQL_QUERY_ESC("SELECT login FROM `{!_MYSQL_PREFIX!}_admins` WHERE id=%s LIMIT 1", + array(bigintval($aid)), __FUNCTION__, __LINE__); if (SQL_NUMROWS($result) == 1) { // Fetch data list($ret) = SQL_FETCHROW($result); // Set cache - $cacheArray['admins']['login'][$aid] = $ret; + $GLOBALS['cache_array']['admins']['login'][$aid] = $ret; } // END - if // Free memory @@ -1502,25 +1440,25 @@ function GET_ADMIN_LOGIN ($aid) { } // Get email address of admin id function GET_ADMIN_EMAIL ($aid) { - global $cacheArray, $_CONFIG; + // By default an invalid emails is returned + $ret = '***'; - $ret = "***"; - if (!empty($cacheArray['admins']['email'][$aid])) { + if (isset($GLOBALS['cache_array']['admins']['email'][$aid])) { // Get cache - $ret = $cacheArray['admins']['email'][$aid]; + $ret = $GLOBALS['cache_array']['admins']['email'][$aid]; // Update cache hits - if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; } - } elseif (!EXT_IS_ACTIVE("cache")) { + incrementConfigEntry('cache_hits'); + } 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) { + $result_aid = SQL_QUERY_ESC("SELECT email FROM `{!_MYSQL_PREFIX!}_admins` WHERE id=%s LIMIT 1", + array(bigintval($aid)), __FUNCTION__, __LINE__); + if (SQL_NUMROWS($result_aid) == 1) { // Get data list($ret) = SQL_FETCHROW($result_aid); // Set cache - $cacheArray['admins']['email'][$aid] = $ret; + $GLOBALS['cache_array']['admins']['email'][$aid] = $ret; } // END - if // Free result @@ -1532,25 +1470,29 @@ function GET_ADMIN_EMAIL ($aid) { } // Get default ACL of admin id function GET_ADMIN_DEFAULT_ACL ($aid) { - global $cacheArray, $_CONFIG; - - $ret = "***"; - if (!empty($cacheArray['admins']['def_acl'][$aid])) { + // By default an invalid ACL value is returned + $ret = '***'; + + // Is sql_patches there and was it found in cache? + if (!EXT_IS_ACTIVE('sql_patches')) { + // Not found, which is bad, so we need to allow all + $ret = 'allow'; + } elseif (isset($GLOBALS['cache_array']['admins']['def_acl'][$aid])) { // Use cache - $ret = $cacheArray['admins']['def_acl'][$aid]; + $ret = $GLOBALS['cache_array']['admins']['def_acl'][$aid]; // Update cache hits - if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; } - } elseif (!EXT_IS_ACTIVE("cache")) { + incrementConfigEntry('cache_hits'); + } elseif (!EXT_IS_ACTIVE('cache')) { // Load from database - $result_aid = SQL_QUERY_ESC("SELECT default_acl FROM "._MYSQL_PREFIX."_admins WHERE id=%s LIMIT 1", - array(bigintval($aid)), __FILE__, __LINE__); + $result_aid = SQL_QUERY_ESC("SELECT default_acl FROM `{!_MYSQL_PREFIX!}_admins` WHERE id=%s LIMIT 1", + array(bigintval($aid)), __FUNCTION__, __LINE__); if (SQL_NUMROWS($result_aid) == 1) { // Fetch data list($ret) = SQL_FETCHROW($result_aid); // Set cache - $cacheArray['admins']['def_acl'][$aid] = $ret; + $GLOBALS['cache_array']['admins']['def_acl'][$aid] = $ret; } // Free result @@ -1561,92 +1503,97 @@ function GET_ADMIN_DEFAULT_ACL ($aid) { return $ret; } // -function ADD_OPTION_LINES($table, $id, $name, $default="",$special="",$where="") { - $ret = ""; - if ($table == "/ARRAY/") { +function ADD_OPTION_LINES ($table, $id, $name, $default='', $special='', $where='') { + $ret = ''; + if ($table == '/ARRAY/') { // Selection from array - if (is_array($id) && is_array($name) && sizeof($id) == sizeof($name)) { + if (is_array($id) && is_array($name) && count($id) == count($name)) { // Both are arrays foreach ($id as $idx => $value) { - $ret .= "\n"; + $ret = ''; } } // Return - hopefully - the requested data return $ret; } -// Activate exchange (DEPERECATED???) -function activateExchange() { - global $_CONFIG; - $result = SQL_QUERY("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE status='CONFIRMED' AND max_mails > 0", __FILE__, __LINE__); - if (SQL_NUMROWS($result) >= $_CONFIG['activate_xchange']) - { - // Free memory - SQL_FREERESULT($result); +// Activate exchange +function activateExchange () { + // Is the extension 'user' there? + if (!EXT_IS_ACTIVE('user')) { + // Silently abort here + return false; + } // END - if + // Check total amount of users + $totalUsers = GET_TOTAL_DATA('CONFIRMED', 'user_data', 'userid', 'status', true, ' AND max_mails > 0'); + + if ($totalUsers >= getConfig('activate_xchange')) { // Activate System - $SQLs = array( - "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='N', hidden='N', mem_only='Y' WHERE module='order' LIMIT 1", - "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE what='order' OR what='unconfirmed' LIMIT 2", - "UPDATE "._MYSQL_PREFIX."_config SET activate_xchange='0' WHERE config=0 LIMIT 1" - ); + SET_SQLS(array( + "UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET `locked`='N', `hidden`='N', `mem_only`='Y' WHERE `module`='order' LIMIT 1", + "UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what='order' OR `what`='unconfirmed' LIMIT 2", + "UPDATE `{!_MYSQL_PREFIX!}_config` SET activate_xchange='0' WHERE config=0 LIMIT 1" + )); // Run SQLs - foreach ($SQLs as $sql) { - $result = SQL_QUERY($sql, __FILE__, __LINE__); - } + runFilterChain('run_sqls'); - // @TODO Destroy cache - } + // Rebuild caches + // @TODO Rewrite this to a filter + rebuildCacheFiles('config', 'config'); + rebuildCacheFiles('modreg', 'modreg'); + } // END - if } + // -function DELETE_USER_ACCOUNT($uid, $reason) -{ +function DELETE_USER_ACCOUNT ($uid, $reason) { $points = 0; $result = SQL_QUERY_ESC("SELECT (SUM(p.points) - d.used_points) AS points -FROM "._MYSQL_PREFIX."_user_points AS p -LEFT JOIN "._MYSQL_PREFIX."_user_data AS d +FROM `{!_MYSQL_PREFIX!}_user_points` AS p +LEFT JOIN `{!_MYSQL_PREFIX!}_user_data` AS d ON p.userid=d.userid -WHERE p.userid=%s", array(bigintval($uid)), __FILE__, __LINE__); +WHERE p.userid=%s", array(bigintval($uid)), __FUNCTION__, __LINE__); if (SQL_NUMROWS($result) == 1) { // Save his points to add them to the jackpot list($points) = SQL_FETCHROW($result); SQL_FREERESULT($result); // Delete points entries as well - $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_points WHERE userid=%s", array(bigintval($uid)), __FILE__, __LINE__); + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_user_points` WHERE userid=%s", array(bigintval($uid)), __FUNCTION__, __LINE__); // Update mediadata as well - if (GET_EXT_VERSION("mediadata") >= "0.0.4") { + if (GET_EXT_VERSION('mediadata') >= '0.0.4') { // Update database - MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $points); + MEDIA_UPDATE_ENTRY(array('total_points'), 'sub', $points); } // END - if // Now, when we have all his points adds them do the jackpot! @@ -1654,227 +1601,155 @@ WHERE p.userid=%s", array(bigintval($uid)), __FILE__, __LINE__); } // Delete category selections as well... - $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_cats WHERE userid=%s", - array(bigintval($uid)), __FILE__, __LINE__); + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_user_cats` WHERE userid=%s", + array(bigintval($uid)), __FUNCTION__, __LINE__); // Remove from rallye if found - if (EXT_IS_ACTIVE("rallye")) { - $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_rallye_users WHERE userid=%s", - array(bigintval($uid)), __FILE__, __LINE__); + if (EXT_IS_ACTIVE('rallye')) { + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_rallye_users` WHERE userid=%s", + array(bigintval($uid)), __FUNCTION__, __LINE__); } // Now a mail to the user and that's all... $msg = LOAD_EMAIL_TEMPLATE("del-user", array('text' => $reason), $uid); - SEND_EMAIL($uid, ADMIN_DEL_ACCOUNT, $msg); + SEND_EMAIL($uid, getMessage('ADMIN_DEL_ACCOUNT'), $msg); // Ok, delete the account! - $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", array(bigintval($uid)), __FILE__, __LINE__); + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", array(bigintval($uid)), __FUNCTION__, __LINE__); } + // -function META_DESCRIPTION($mod, $wht) -{ - global $_CONFIG, $DEPTH; - if (($mod != "admin") && ($mod != "login")) - { - // Exclude admin and member's area - $DESCR = MAIN_TITLE." ".trim($_CONFIG['title_middle'])." ".ADD_DESCR("guest", "what-".$wht, true); - unset($DEPTH); - OUTPUT_HTML(""); - } +function META_DESCRIPTION ($mod, $wht) { + // Exclude admin and member's area + if (($mod != 'admin') && ($mod != 'login')) { + // Construct dynamic description + $DESCR = '{!MAIN_TITLE!} '.trim(getConfig('title_middle')).' '.ADD_DESCR('guest', 'what-'.$wht, true); + + // Output it directly + OUTPUT_HTML(''); + } // END - if + + // Remove depth + unset($GLOBALS['ref_level']); } // -function ADD_JACKPOT($points) -{ - $result = SQL_QUERY("SELECT points FROM "._MYSQL_PREFIX."_jackpot WHERE ok='ok' LIMIT 1", __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 0) - { +function ADD_JACKPOT($points) { + $result = SQL_QUERY("SELECT points FROM `{!_MYSQL_PREFIX!}_jackpot` WHERE ok='ok' LIMIT 1", __FUNCTION__, __LINE__); + if (SQL_NUMROWS($result) == 0) { // Create line - $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_jackpot (ok, points) VALUES ('ok','%s')", array($points), __FILE__, __LINE__); - } - else - { + SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_jackpot` (ok, points) VALUES ('ok','%s')", array($points), __FUNCTION__, __LINE__); + } else { // Free memory SQL_FREERESULT($result); // Update points - $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_jackpot SET points=points+%s WHERE ok='ok' LIMIT 1", - array($points), __FILE__, __LINE__); + SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_jackpot` SET points=points+%s WHERE ok='ok' LIMIT 1", + array($points), __FUNCTION__, __LINE__); } } // -function SUB_JACKPOT($points) -{ +function SUB_JACKPOT($points) { // First failed - $ret = "-1"; + $ret = '-1'; // Get current points - $result = SQL_QUERY("SELECT points FROM "._MYSQL_PREFIX."_jackpot WHERE ok='ok' LIMIT 1", __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 0) - { + $result = SQL_QUERY("SELECT points FROM `{!_MYSQL_PREFIX!}_jackpot` WHERE ok='ok' LIMIT 1", __FUNCTION__, __LINE__); + if (SQL_NUMROWS($result) == 0) { // Create line - $result = SQL_QUERY("INSERT INTO "._MYSQL_PREFIX."_jackpot (ok, points) VALUES ('ok', 0.00000)", __FILE__, __LINE__); - } - else - { - // Free memory - SQL_FREERESULT($result); - + SQL_QUERY("INSERT INTO `{!_MYSQL_PREFIX!}_jackpot` (ok, points) VALUES ('ok', 0.00000)", __FUNCTION__, __LINE__); + } else { // Read points list($jackpot) = SQL_FETCHROW($result); - if ($jackpot >= $points) - { + if ($jackpot >= $points) { // Update points when there are enougth points in jackpot - $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_jackpot SET points=points-%s WHERE ok='ok' LIMIT 1", - array($points), __FILE__, __LINE__); + SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_jackpot` SET points=points-%s WHERE ok='ok' LIMIT 1", + array($points), __FUNCTION__, __LINE__); $ret = $jackpot - $points; - } - } -} -// -function IS_DEMO() { - return ((EXT_IS_ACTIVE("demo")) && (get_session('admin_login') == "demo")); -} -// -function LOAD_CONFIG($no="0") { - global $cacheArray; - $CFG_DUMMY = array(); - - // Check for cache extension, cache-array and if the requested configuration is in cache - if ((is_array($cacheArray)) && (isset($cacheArray['config'][$no])) && (is_array($cacheArray['config'][$no]))) { - // Load config from cache - //* DEBUG: */ echo gettype($cacheArray['config'][$no])."