X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmysql-manager.php;h=158977bd0f260c604c04d9b0e1aefca6bad34394;hb=8f045e5cfa4abad39d0de560b1eae26ea8ba05cf;hp=036e85393975441e53de6b724a3edf14a420736a;hpb=7eb9da85bfb337997a58a244cb610c97a8d10c13;p=mailer.git
diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php
index 036e853939..158977bd0f 100644
--- a/inc/mysql-manager.php
+++ b/inc/mysql-manager.php
@@ -190,7 +190,7 @@ function CHECK_MODULE($mod) {
// Add menu description pending on given file name (without path!)
function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) {
- global $DEPTH, $_CONFIG;
+ global $NAV_DEPTH, $_CONFIG;
// Use only filename of the file ;)
$file = basename($file);
@@ -205,13 +205,13 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) {
switch ($ACC_LVL)
{
case "admin":
- $MOD_CHECK = "admin";
+ $modCheck = "admin";
break;
case "sponsor":
case "guest":
case "member":
- $MOD_CHECK = $GLOBALS['module'];
+ $modCheck = $GLOBALS['module'];
break;
}
$AND = " AND (what='' OR what IS NULL)";
@@ -223,12 +223,12 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) {
switch ($ACC_LVL)
{
case "admin":
- $MOD_CHECK = "admin";
+ $modCheck = "admin";
break;
case "guest":
case "member":
- $MOD_CHECK = $GLOBALS['module'];
+ $modCheck = $GLOBALS['module'];
if (!IS_ADMIN()) {
$AND = " AND visible='Y' AND locked='N'";
}
@@ -240,20 +240,20 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) {
// Sponsor / engine menu
$type = "what";
$search = $file;
- $MOD_CHECK = $GLOBALS['module'];
+ $modCheck = $GLOBALS['module'];
$AND = "";
} else {
// Other
$type = "menu";
$search = $file;
- $MOD_CHECK = $GLOBALS['module'];
+ $modCheck = $GLOBALS['module'];
$AND = "";
}
- if ((!isset($DEPTH)) && (!$return)) {
- $DEPTH = 0;
+ if ((!isset($NAV_DEPTH)) && (!$return)) {
+ $NAV_DEPTH = 0;
$prefix = "
".YOU_ARE_HERE."
Home";
} else {
- if (!$return) $DEPTH++;
+ if (!$return) $NAV_DEPTH++;
$prefix = "";
}
@@ -278,9 +278,9 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) {
if ($return) {
// Return title
return $ret;
- } elseif (((GET_EXT_VERSION("sql_patches") >= "0.2.3") && ($_CONFIG['youre_here'] == "Y")) || ((IS_ADMIN()) && ($MOD_CHECK == "admin"))) {
+ } elseif (((GET_EXT_VERSION("sql_patches") >= "0.2.3") && ($_CONFIG['youre_here'] == "Y")) || ((IS_ADMIN()) && ($modCheck == "admin"))) {
// Output HTML code
- $OUT = $prefix."
".$ret."\n";
+ $OUT = $prefix."
".$ret."\n";
// Can we close the you-are-here navigation?
//* DEBUG: */ echo __LINE__."*".$type."/".$GLOBALS['what']."*
\n";
@@ -297,7 +297,7 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) {
// Add line-break tag
$OUT .= "
\n";
- $DEPTH = "0";
+ $NAV_DEPTH = "0";
// Handle failed logins here if not in guest
//* DEBUG: */ print __FUNCTION__."(
".__LINE__."):type={$type},action={$GLOBALS['action']},what={$GLOBALS['what']},lvl={$ACC_LVL}
\n";
@@ -335,11 +335,11 @@ function ADD_MENU($MODE, $act, $wht) {
// Non-admin shall not see all menus
if (!IS_ADMIN()) {
- $AND = "AND visible='Y' AND locked='N'";
+ $AND = " AND visible='Y' AND locked='N'";
}
// Load SQL data and add the menu to the output stream...
- $result_main = SQL_QUERY_ESC("SELECT title, action FROM "._MYSQL_PREFIX."_%s_menu WHERE (what='' OR what IS NULL) ".$AND." ORDER BY sort",
+ $result_main = SQL_QUERY_ESC("SELECT title, action FROM "._MYSQL_PREFIX."_%s_menu WHERE (what='' OR what IS NULL)".$AND." ORDER BY sort",
array($MODE), __FILE__, __LINE__);
//* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."*
\n";
if (SQL_NUMROWS($result_main) > 0) {
@@ -839,6 +839,7 @@ function SEND_MODE_MAILS($mod, $modes)
break;
default:
+ DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Unknown mode %s detected.", $mode));
$content = MEMBER_UNKNOWN_MODE.": ".$mode."\n\n";
break;
}
@@ -855,11 +856,11 @@ function SEND_MODE_MAILS($mod, $modes)
if ($_CONFIG['admin_notify'] == "Y") {
// The admin needs to be notified about a profile change
$msg_admin = "admin_mydata_notify";
- $sub_adm = ADMIN_CHANGED_DATA;
+ $sub_adm = ADMIN_CHANGED_DATA;
} else {
// No mail to admin
$msg_admin = "";
- $sub_adm = "";
+ $sub_adm = "";
}
// Set subject lines
@@ -870,6 +871,7 @@ function SEND_MODE_MAILS($mod, $modes)
break;
default:
+ DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("Unsupported module %s detected.", $mod));
$content = "
".UNKNOWN_MODULE."";
break;
}
@@ -1074,17 +1076,21 @@ function REMOVE_RECEIVER(&$ARRAY, $key, $uid, $pool_id, $stats_id="", $bonus=fal
// Return status for sending routine
return $ret;
}
-//
-function GET_TOTAL_DATA($search, $tableName, $lookFor, $whereStatement="userid", $onlyRows=false, $add="") {
+
+// Calculate sum (default) or count records of given criteria
+function GET_TOTAL_DATA ($search, $tableName, $lookFor, $whereStatement="userid", $onlyRows=false, $add="") {
$ret = 0;
- if ($onlyRows) {
+ //* DEBUG: */ echo $search."/".$tableName."/".$lookFor."/".$whereStatement."/".$add."
\n";
+ if (($onlyRows) || ($lookFor == "userid")) {
// Count rows
- $result = SQL_QUERY_ESC("SELECT COUNT(%s) FROM "._MYSQL_PREFIX."_%s WHERE %s='%s'%s",
- array($lookFor, $tableName, $whereStatement, $search, $add), __FILE__, __LINE__);
+ //* DEBUG: */ echo "COUNT!
\n";
+ $result = SQL_QUERY_ESC("SELECT COUNT(`%s`) FROM `"._MYSQL_PREFIX."_%s` WHERE `%s`='%s'".$add,
+ array($lookFor, $tableName, $whereStatement, $search), __FILE__, __LINE__);
} else {
// Add all rows
- $result = SQL_QUERY_ESC("SELECT SUM(%s) FROM "._MYSQL_PREFIX."_%s WHERE %s='%s'%s",
- array($lookFor, $tableName, $whereStatement, $search, $add), __FILE__, __LINE__);
+ //* DEBUG: */ echo "SUM!
\n";
+ $result = SQL_QUERY_ESC("SELECT SUM(`%s`) FROM `"._MYSQL_PREFIX."_%s` WHERE `%s`='%s'".$add,
+ array($lookFor, $tableName, $whereStatement, $search), __FILE__, __LINE__);
}
// Load row
@@ -1095,8 +1101,12 @@ function GET_TOTAL_DATA($search, $tableName, $lookFor, $whereStatement="userid",
// Fix empty values
if ((empty($ret)) && ($lookFor != "counter") && ($lookFor != "id") && ($lookFor != "userid")) {
+ // Float number
$ret = "0.00000";
- } // END - if
+ } elseif ("".$ret."" == "") {
+ // Fix empty result
+ $ret = "0";
+ }
// Return value
return $ret;
@@ -1141,6 +1151,7 @@ function GET_REF_LEVEL_PERCENTS ($level) {
*
* Dynamic referal system, can also send mails!
*
+ * subject = Subject line, write in lower-case letters and underscore is allowed
* uid = Referal ID wich should receive...
* points = ... xxx points
* send_notify = shall I send the referal an email or not?
@@ -1149,7 +1160,7 @@ function GET_REF_LEVEL_PERCENTS ($level) {
* add_mode = Add points only to $uid or also refs? (WARNING! Changing "ref" to "direct"
* for default value will cause no referal will get points ever!!!)
*/
-function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $locked=false, $add_mode="ref") {
+function ADD_POINTS_REFSYSTEM ($subject, $uid, $points, $send_notify=false, $rid="0", $locked=false, $add_mode="ref") {
//* DEBUG: */ print "-----------------------
".__FUNCTION__." - ENTRY ------------------------
- \n";
global $DEPTH, $_CONFIG, $DATA, $cacheArray;
@@ -1163,13 +1174,21 @@ function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $lock
return;
} // END - if
+ // Add booking record if extension is installed
+ if (EXT_IS_ACTIVE("booking")) {
+ // Add record
+ ADD_BOOKING_RECORD($subject, $uid, $points, "add");
+ } // END - if
+
// Count up referal depth
if (!isset($DEPTH)) {
// Initialialize referal system
+ //* DEBUG: */ print __FUNCTION__."(".__LINE__."): Referal system initialized!
\n";
$DEPTH = 0;
} else {
// Increase referal level
$DEPTH++;
+ //* DEBUG: */ print __FUNCTION__."(".__LINE__."): Referal level increased. DEPTH={$DEPTH}
\n";
}
// Default is "normal" points
@@ -1259,7 +1278,7 @@ function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $lock
if (($ref > 0) && ($points > 0) && ($ref != $uid) && ($add_mode == "ref")) {
// Then let's credit him here...
//* DEBUG: */ print __FUNCTION__."(".__LINE__."):uid={$uid},ref={$ref},points={$points} - ADVANCE!
\n";
- ADD_POINTS_REFSYSTEM($ref, $points, $send_notify, $ref, $locked);
+ ADD_POINTS_REFSYSTEM(sprintf("%s_ref:%s", $subject, $DEPTH), $ref, $points, $send_notify, $ref, $locked);
} // END - if
} // END - if
} // END - if
@@ -1389,7 +1408,7 @@ WHERE sid='%s' LIMIT 1",
array($_CONFIG['online_timeout']), __FILE__, __LINE__);
}
// OBSULETE: Sends out mail to all administrators
-function SEND_ADMIN_EMAILS($subj, $msg) {
+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)) {
@@ -1403,7 +1422,7 @@ function SEND_ADMIN_EMAILS($subj, $msg) {
// Really simple... ;-)
}
// Get ID number from administrator's login name
-function GET_ADMIN_ID($login) {
+function GET_ADMIN_ID ($login) {
global $cacheArray, $_CONFIG;
$ret = "-1";
if (!empty($cacheArray['admins']['aid'][$login])) {
@@ -1427,26 +1446,26 @@ function GET_ADMIN_ID($login) {
}
//
// Get password hash from administrator's login name
-function GET_ADMIN_HASH($login)
+function GET_ADMIN_HASH ($aid)
{
global $cacheArray, $_CONFIG;
$ret = "-1";
- if (!empty($cacheArray['admins']['password'][$login])) {
+ if (!empty($cacheArray['admins']['password'][$aid])) {
// Check cache
- $ret = $cacheArray['admins']['password'][$login];
+ $ret = $cacheArray['admins']['password'][$aid];
// Update cache hits
if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; }
} elseif (!EXT_IS_ACTIVE("cache")) {
// Load from database
- $result = SQL_QUERY_ESC("SELECT password FROM "._MYSQL_PREFIX."_admins WHERE login='%s' LIMIT 1",
- array($login), __FILE__, __LINE__);
+ $result = SQL_QUERY_ESC("SELECT password FROM "._MYSQL_PREFIX."_admins WHERE id=%s LIMIT 1",
+ array($aid), __FILE__, __LINE__);
if (SQL_NUMROWS($result) == 1) {
// Fetch data
list($ret) = SQL_FETCHROW($result);
// Set cache
- $cacheArray['admins']['password'][$login] = $ret;
+ $cacheArray['admins']['password'][$aid] = $ret;
}
// Free result
@@ -1486,7 +1505,7 @@ function GET_ADMIN_EMAIL ($aid) {
global $cacheArray, $_CONFIG;
$ret = "***";
- if (!empty($cacheArray['admins']['email'])) {
+ if (!empty($cacheArray['admins']['email'][$aid])) {
// Get cache
$ret = $cacheArray['admins']['email'][$aid];
@@ -1516,17 +1535,17 @@ function GET_ADMIN_DEFAULT_ACL ($aid) {
global $cacheArray, $_CONFIG;
$ret = "***";
- if (!empty($cacheArray['admins']['def_acl'])) {
+ if (!empty($cacheArray['admins']['def_acl'][$aid])) {
// Use cache
$ret = $cacheArray['admins']['def_acl'][$aid];
// Update cache hits
if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; }
- } else {
+ } 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($ret)), __FILE__, __LINE__);
- if (SQL_NUMROWS($result) == 1) {
+ array(bigintval($aid)), __FILE__, __LINE__);
+ if (SQL_NUMROWS($result_aid) == 1) {
// Fetch data
list($ret) = SQL_FETCHROW($result_aid);
@@ -1751,12 +1770,12 @@ function LOAD_CONFIG($no="0") {
return $CFG_DUMMY;
}
// Gets the matching what name from module
-function GET_WHAT($MOD_CHECK) {
+function GET_WHAT($modCheck) {
global $_CONFIG;
$wht = "";
- //* DEBUG: */ echo __LINE__."!".$MOD_CHECK."!
\n";
- switch ($MOD_CHECK)
+ //* DEBUG: */ echo __LINE__."!".$modCheck."!
\n";
+ switch ($modCheck)
{
case "admin":
$wht = "overview";
@@ -1765,7 +1784,7 @@ function GET_WHAT($MOD_CHECK) {
case "login":
case "index":
$wht = "welcome";
- if (($MOD_CHECK == "index") && (!empty($_CONFIG['index_home']))) $wht = $_CONFIG['index_home'];
+ if (($modCheck == "index") && (!empty($_CONFIG['index_home']))) $wht = $_CONFIG['index_home'];
break;
default:
@@ -1819,18 +1838,26 @@ function MODULE_HAS_MENU($mod, $forceDb = false)
// Return status
return $ret;
}
+
// Subtract points from database and mediadata cache
-function SUB_POINTS ($uid, $points) {
+function SUB_POINTS ($subject, $uid, $points) {
// Add points to used points
$result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET `used_points`=`used_points`+%s WHERE userid=%s LIMIT 1",
array($points, bigintval($uid)), __FILE__, __LINE__);
+ // Insert booking record
+ if (EXT_IS_ACTIVE("booking")) {
+ // Add record
+ ADD_BOOKING_RECORD($subject, $uid, $points, "sub");
+ } // END - if
+
// Update mediadata as well
if (GET_EXT_VERSION("mediadata") >= "0.0.4") {
// Update database
MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $points);
} // END - if
}
+
// Update config entries
function UPDATE_CONFIG ($entries, $values, $updateMode="") {
// Do we have multiple entries?
@@ -1847,6 +1874,9 @@ function UPDATE_CONFIG ($entries, $values, $updateMode="") {
if (($values[$idx] + 0) === $values[$idx]) {
// Number detected
$all .= sprintf("%s=%s,", $entry, (float)$values[$idx]);
+ } elseif ($values[$idx] == "UNIX_TIMESTAMP()") {
+ // Function UNIX_TIMESTAMP() detected
+ $all .= sprintf("%s=%s,", $entry, $values[$idx]);
} else {
// String detected
$all .= sprintf("%s='%s',", $entry, SQL_ESCAPE($values[$idx]));
@@ -1865,7 +1895,7 @@ function UPDATE_CONFIG ($entries, $values, $updateMode="") {
}
// Run database update
- //DEBUG_LOG(__FUNCTION__.":entries={$entries}");
+ //DEBUG_LOG(__FUNCTION__, __LINE__, "entries={$entries}");
SQL_QUERY("UPDATE "._MYSQL_PREFIX."_config SET ".$entries." WHERE config=0 LIMIT 1", __FILE__, __LINE__);
// Get affected rows
@@ -1875,6 +1905,7 @@ function UPDATE_CONFIG ($entries, $values, $updateMode="") {
// Rebuild cache
REBUILD_CACHE("config", "config");
}
+
// Creates a new task for updated extension
function CREATE_EXTENSION_UPDATE_TASK ($admin_id, $subject, $notes) {
// Check if task is not there
@@ -1889,6 +1920,7 @@ function CREATE_EXTENSION_UPDATE_TASK ($admin_id, $subject, $notes) {
// 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?
@@ -2198,7 +2230,7 @@ function USER_STATS_INSERT_RECORD ($uid, $type, $data) {
array(bigintval($uid), $type, $data), __FILE__, __LINE__);
} elseif (is_array($data)) {
// Invalid data!
- DEBUG_LOG(__FUNCTION__."(".__LINE__."): uid={$uid},type={$type},data={".gettype($data).": Invalid statistics data type!");
+ DEBUG_LOG(__FUNCTION__, __LINE__, " uid={$uid},type={$type},data={".gettype($data).": Invalid statistics data type!");
}
}
@@ -2267,5 +2299,28 @@ ORDER BY ur.refid ASC",
return $refs;
}
-//
+// Recuced the amount of received emails for the receipients for given email
+function REDUCT_RECIPIENT_RECEIVED_MAILS ($column, $id, $count) {
+ // Search for mail in database
+ $result = SQL_QUERY_ESC("SELECT `userid` FROM `"._MYSQL_PREFIX."_user_links` WHERE `%s`=%s ORDER BY `userid` ASC LIMIT %s",
+ array($column, bigintval($id), $count), __FILE__, __LINE__);
+
+ // Are there entries?
+ if (SQL_NUMROWS($result) > 0) {
+ // Now load all userids for one big query!
+ $UIDs = array();
+ while (list($uid) = SQL_FETCHROW($result)) {
+ $UIDs[$uid] = $uid;
+ } // END - while
+
+ // Now update all user accounts
+ SQL_QUERY_ESC("UPDATE `"._MYSQL_PREFIX."_user_data` SET `emails_received`=`emails_received`-1 WHERE `userid` IN (%s) LIMIT %s",
+ array(implode(",", $UIDs), count($UIDs)), __FILE__, __LINE__);
+ } // END - if
+
+ // Free result
+ SQL_FREERESULT($result);
+}
+
+// [EOF]
?>