X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Fmysql-manager.php;h=559361db9299319e28dc91a10fc0bf390e66ba3e;hb=fc162164725588cf75969f707faead9c9cd8e68b;hp=b8f7fed89dcadc6667875e66a236c4b425cc6324;hpb=5a8c537bc2633402ca515964c9a3a2674f37edc2;p=mailer.git
diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php
index b8f7fed89d..559361db92 100644
--- a/inc/mysql-manager.php
+++ b/inc/mysql-manager.php
@@ -18,6 +18,7 @@
* svn:keywords Date Revision" (autoprobset!) at least!!!!!! *
* -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
+ * Copyright (c) 2009, 2010 by Mailer Developer Team *
* For more information visit: http://www.mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -78,8 +79,8 @@ function getModuleTitle ($module) {
// Still no luck or empty title?
if (empty($data['title'])) {
// No name found
- $data['title'] = sprintf("%s (%s)", getMessage('LANG_UNKNOWN_MODULE'), $module);
- if (SQL_NUMROWS($result) == '0') {
+ $data['title'] = getMaskedMessage('UNKNOWN_MODULE_DETECTED', $module);
+ if ((is_resource($result)) && (SQL_HASZERONUMS($result))) {
// Add module to database
$dummy = checkModulePermissions($module);
} // END - if
@@ -138,10 +139,10 @@ function checkModulePermissions ($module = '') {
// Check for prefix is a extension...
$modSplit = explode('_', $module);
$extension = ''; $module_chk = $module;
- //* DEBUG: */ print(__LINE__."*".count($modSplit)."*/".$module."*
");
+ //* DEBUG: */ debugOutput(__LINE__.'*'.count($modSplit).'/'.$module.'*');
if (count($modSplit) == 2) {
// Okay, there is a seperator (_) in the name so is the first part a module?
- //* DEBUG: */ print(__LINE__."*".$modSplit[0]."*
");
+ //* DEBUG: */ debugOutput(__LINE__.'*'.$modSplit[0].'*');
if (isExtensionActive($modSplit[0])) {
// The prefix is an extension's name, so let's set it
$extension = $modSplit[0]; $module = $modSplit[1];
@@ -261,7 +262,7 @@ function checkModulePermissions ($module = '') {
// Destroy cache here
// @TODO Rewrite this to a filter
- if ((getOutputMode() == '0') || (getOutputMode() == -1)) rebuildCacheFile('modules', 'modules');
+ if ((getOutputMode() == '0') || (getOutputMode() == -1)) rebuildCache('modules', 'modules');
// And reload data
unset($GLOBALS['module_status'][$module]);
@@ -272,7 +273,7 @@ function checkModulePermissions ($module = '') {
}
} elseif (($ret == 'cache_miss') && (getOutputMode() == '0')) {
// Rebuild the cache files
- rebuildCacheFile('modules', 'modules');
+ rebuildCache('modules', 'modules');
} elseif ($found === false) {
// Problem with module detected
logDebugMessage(__FUNCTION__, __LINE__, sprintf("Problem in module %s detected. ret=%s, locked=%s, hidden=%s, mem=%s, admin=%s, output_mode=%s",
@@ -301,6 +302,7 @@ function addMenuDescription ($accessLevel, $FQFN, $return = false) {
$LINK_ADD = '';
$OUT = '';
$ADD = '';
+ $prefix = '';
// First we have to do some analysis...
if (substr($file, 0, 7) == 'action-') {
@@ -326,7 +328,7 @@ function addMenuDescription ($accessLevel, $FQFN, $return = false) {
if (isAdmin()) $ADD = '';
$dummy = substr($search, 0, -4);
- $ADD .= " AND `action`='".getModeAction($accessLevel, $dummy)."'";
+ $ADD .= " AND `action`='".getActionFromModuleWhat($accessLevel, $dummy)."'";
} elseif (($accessLevel == 'sponsor') || ($accessLevel == 'engine')) {
// Sponsor / engine menu
$type = 'what';
@@ -343,11 +345,19 @@ function addMenuDescription ($accessLevel, $FQFN, $return = false) {
// Begin the navigation line
if ((!isset($GLOBALS['nav_depth'])) && ($return === false)) {
+ // Init nav_depth
$GLOBALS['nav_depth'] = '0';
- $prefix = '
{--YOU_ARE_HERE--}
Home';
- } else {
- if ($return === false) $GLOBALS['nav_depth']++;
- $prefix = '';
+
+ // Run the pre-filter chain
+ $ret = runFilterChain('pre_youhere_line', array('access_level' => $accessLevel, 'type' => $type, 'content' => ''));
+
+ // Add pre-content
+ $prefix = $ret['content'];
+
+ $prefix .= '
{--YOU_ARE_HERE--}
Home';
+ } elseif ($return === false) {
+ // Count depth
+ $GLOBALS['nav_depth']++;
}
$prefix .= ' -> ';
@@ -363,20 +373,20 @@ function addMenuDescription ($accessLevel, $FQFN, $return = false) {
$OUT = $prefix . '
' . getTitleFromMenu($accessLevel, $search, $type, $ADD) . '';
// Can we close the you-are-here navigation?
- //* DEBUG: */ print(__LINE__."*".$type.'/'.getWhat()."*
");
+ //* DEBUG: */ debugOutput(__LINE__.'*'.$type.'/'.getWhat().'*');
if (($type == 'what') || (($type == 'action') && ((!isWhatSet()) || (getWhat() == 'overview')))) {
- //* DEBUG: */ print(__LINE__.'+'.$type."+
");
+ //* DEBUG: */ debugOutput(__LINE__.'+'.$type.'+');
// Add closing div and br-tag
- $OUT .= '
';
+ $OUT .= '
';
$GLOBALS['nav_depth'] = '0';
- // Run the filter chain
+ // Run the post-filter chain
$ret = runFilterChain('post_youhere_line', array('access_level' => $accessLevel, 'type' => $type, 'content' => ''));
// Add additional content
$OUT .= $ret['content'];
} // END - if
- }
+ } // END - if
// Return or output HTML code?
if ($return === true) {
@@ -405,31 +415,48 @@ function addMenu ($mode, $action, $what) {
} // END - if
// 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)".$ADD." ORDER BY `sort` ASC",
+ $result_main = SQL_QUERY_ESC("SELECT
+ `title`, `what`, `action`, `visible`, `locked`
+FROM
+ `{?_MYSQL_PREFIX?}_%s_menu`
+WHERE
+ (`what`='' OR `what` IS NULL)
+ ".$ADD."
+ORDER BY
+ `sort` ASC",
array($mode), __FUNCTION__, __LINE__);
- //* DEBUG: */ print(__LINE__.'/'.$main_cnt.':'.getWhat()."*
");
+ //* DEBUG: */ debugOutput(__LINE__.'/'.$main_cnt.':'.getWhat().'*');
if (SQL_NUMROWS($result_main) > 0) {
// There are menus available, so we simply display them... :)
$GLOBALS['rows'] = '';
while ($content = SQL_FETCHARRAY($result_main)) {
- //* DEBUG: */ print(__LINE__.'/'.$main_cnt.'/'.$content['action'].':'.getWhat()."*
");
- // Init variables
+ //* DEBUG: */ debugOutput(__LINE__ . '/' . $main_cnt . '/' . $content['action'] . ':' . getWhat() . '*');
+ // Disable the block-mode
enableBlockMode(false);
- $action = $content['action'];
// Load menu header template
$GLOBALS['rows'] .= loadTemplate($mode . '_menu_title', true, $content);
// Sub menu
- $result_sub = SQL_QUERY_ESC("SELECT `title` AS sub_title, `what` AS sub_what FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE `action`='%s' AND `what` != '' AND `what` IS NOT NULL ".$ADD." ORDER BY `sort`",
+ $result_sub = SQL_QUERY_ESC("SELECT
+ `title` AS `sub_title`,
+ `what` AS `sub_what`,
+ `visible` AS `sub_visible`,
+ `locked` AS `sub_locked`
+FROM
+ `{?_MYSQL_PREFIX?}_%s_menu`
+WHERE
+ `action`='%s' AND
+ `what` != '' AND
+ `what` IS NOT NULL
+ ".$ADD."
+ORDER BY
+ `sort` ASC",
array($mode, $content['action']), __FUNCTION__, __LINE__);
- // Get number of rows
- $totalWhats = SQL_NUMROWS($result_sub);
-
// Do we have some entries?
- if ($totalWhats > 0) {
+ if (SQL_NUMROWS($result_sub) > 0) {
// Init counter
$cnt = '0';
@@ -442,7 +469,7 @@ function addMenu ($mode, $action, $what) {
$OUT = '';
// Full file name for checking menu
- //* DEBUG: */ print(__LINE__.":!!!!".$content['sub_what']."!!!
");
+ //* DEBUG: */ debugOutput(__LINE__ . ':!!!!' . $content['sub_what'] . '!!!');
$inc = sprintf("inc/modules/%s/what-%s.php", $mode, $content['sub_what']);
if (isIncludeReadable($inc)) {
// Mark currently selected menu - open
@@ -476,18 +503,20 @@ function addMenu ($mode, $action, $what) {
$cnt++;
// Rewrite array
- $content = array(
- 'menu' => $OUT,
- 'what' => $content['sub_what']
+ $content = array(
+ 'menu' => $OUT,
+ 'what' => $content['sub_what'],
+ 'visible' => $content['sub_visible'],
+ 'locked' => $content['locked'],
);
// Add regular menu row or bottom row?
- if ($cnt < $totalWhats) {
+ if ($cnt < SQL_NUMROWS($result_sub)) {
$GLOBALS['rows'] .= loadTemplate($mode . '_menu_row', true, $content);
} else {
$GLOBALS['rows'] .= loadTemplate($mode . '_menu_bottom', true, $content);
}
- }
+ } // END - while
} else {
// This is a menu block... ;-)
enableBlockMode();
@@ -497,17 +526,21 @@ function addMenu ($mode, $action, $what) {
if (isFileReadable($INC)) {
// Load include file
if ((!isExtensionActive($content['action'])) || ($content['action'] == 'online')) $GLOBALS['rows'] .= loadTemplate('menu_what_begin', true, $mode);
- //* DEBUG: */ print(__LINE__.'/'.$main_cnt.'/'.$content['action'].'/'.getWhat()."*
");
+ //* DEBUG: */ debugOutput(__LINE__.'/'.$main_cnt.'/'.$content['action'].'/'.getWhat().'*');
loadInclude($INC);
- //* DEBUG: */ print(__LINE__.'/'.$main_cnt.'/'.$content['action'].'/'.getWhat()."*
");
+ //* DEBUG: */ debugOutput(__LINE__.'/'.$main_cnt.'/'.$content['action'].'/'.getWhat().'*');
if ((!isExtensionActive($content['action'])) || ($content['action'] == 'online')) $GLOBALS['rows'] .= loadTemplate('menu_what_end', true, $mode);
}
- //* DEBUG: */ print(__LINE__.'/'.$main_cnt.'/'.$content['action'].'/'.$content['sub_what'].':'.getWhat()."*
");
+ //* DEBUG: */ debugOutput(__LINE__.'/'.$main_cnt.'/'.$content['action'].'/'.$content['sub_what'].':'.getWhat().'*');
}
+ // Free result
+ SQL_FREERESULT($result_sub);
+
+ // Count one up
$main_cnt++;
- //* DEBUG: */ print(__LINE__.'/'.$main_cnt.':'.getWhat()."*
");
+ //* DEBUG: */ debugOutput(__LINE__.'/'.$main_cnt.':'.getWhat().'*');
if (SQL_NUMROWS($result_main) > $main_cnt) {
// Add seperator
$GLOBALS['rows'] .= loadTemplate('menu_seperator', true, $mode);
@@ -542,7 +575,7 @@ function addMenu ($mode, $action, $what) {
);
// Load main template
- //* DEBUG: */ print(__LINE__.'/'.$main_cnt.'/'.$content['action'].'/'.$content['sub_what'].':'.getWhat()."*
");
+ //* DEBUG: */ debugOutput(__LINE__.'/'.$main_cnt.'/'.$content['action'].'/'.$content['sub_what'].':'.getWhat().'*');
loadTemplate('menu_table', false, $content);
} // END - if
}
@@ -559,16 +592,20 @@ function isMember () {
// is the cache entry there?
if (isset($GLOBALS['is_member'])) {
// Then return it
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'CACHED! (' . intval($GLOBALS['is_member']) . ')');
return $GLOBALS['is_member'];
- } elseif (getMemberId() == '0') {
+ } elseif ((!isSessionVariableSet('userid')) || (!isSessionVariableSet('u_hash'))) {
// No member
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'No member set in cookie/session.');
return false;
} else {
- // Transfer userid=>current
- setCurrentUserid(getMemberId());
+ // Get it secured from session
+ setMemberId(getSession('userid'));
+ setCurrentUserId(getMemberId());
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . getSession('userid') . ' used from cookie/session.');
}
- // Init global user data array
+ // Init user data array
initUserData();
// Fix "deleted" cookies first
@@ -579,7 +616,7 @@ function isMember () {
// Cookies are set with values, but are they valid?
if (fetchUserData(getMemberId()) === true) {
// Validate password by created the difference of it and the secret key
- $valPass = generatePassString(getUserData('password'));
+ $valPass = encodeHashForCookie(getUserData('password'));
// Transfer last module and online time
$GLOBALS['last_online']['module'] = getUserData('last_module');
@@ -591,15 +628,17 @@ function isMember () {
$ret = true;
} else {
// Maybe got locked etc.
- logDebugMessage(__FUNCTION__, __LINE__, 'status=' . getUserData('status'));
+ //* DEBUG */ logDebugMessage(__FUNCTION__, __LINE__, 'status=' . getUserData('status') . ',' . $valPass . '(' . strlen($valPass) . ')/' . getSession('u_hash') . '(' . strlen(getSession('u_hash')) . ')/' . getUserData('password') . '(' . strlen(getUserData('password')) . ')');
destroyMemberSession();
}
} else {
// Cookie data is invalid!
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cookie data invalid or user not found.');
destroyMemberSession();
}
} else {
// Cookie data is invalid!
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cookie data not complete.');
destroyMemberSession();
}
@@ -607,6 +646,7 @@ function isMember () {
$GLOBALS['is_member'] = $ret;
// Return status
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ret=' . intval($ret));
return $ret;
}
@@ -623,7 +663,7 @@ function fetchUserData ($userid, $column = 'userid') {
// Don't look for invalid userids...
if ($userid < 1) {
// Invalid, so abort here
- debug_report_bug('User id ' . $userid . ' is invalid.');
+ debug_report_bug(__FUNCTION__, __LINE__, 'User id ' . $userid . ' is invalid.');
} elseif (isUserDataValid()) {
// Use cache, so it is fine
return true;
@@ -693,51 +733,61 @@ function fetchUserData ($userid, $column = 'userid') {
}
// This patched function will reduce many SELECT queries for the specified or current admin login
-function isAdmin ($admin = '') {
+function isAdmin ($adminLogin = '') {
+ // No admin in installation phase!
+ if ((isInstallationPhase()) || (!isAdminRegistered())) {
+ return false;
+ } // END - if
+
// Init variables
- $ret = false; $passCookie = ''; $valPass = '';
- //* DEBUG: */ print(__FUNCTION__.':'.$admin.'
');
+ $ret = false;
+ $passCookie = '';
+ $valPass = '';
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $adminLogin);
// If admin login is not given take current from cookies...
- if ((empty($admin)) && (isSessionVariableSet('admin_login')) && (isSessionVariableSet('admin_md5'))) {
+ if ((empty($adminLogin)) && (isSessionVariableSet('admin_login')) && (isSessionVariableSet('admin_md5'))) {
// Get admin login and password from session/cookies
- $admin = getSession('admin_login');
+ $adminLogin = getSession('admin_login');
$passCookie = getSession('admin_md5');
} // END - if
- //* DEBUG: */ print(__FUNCTION__.':'.$admin.'/'.$passCookie.'
');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $adminLogin.'/'.$passCookie);
// Do we have cache?
- if (!isset($GLOBALS['is_admin'][$admin])) {
+ if (!isset($GLOBALS['is_admin'][$adminLogin])) {
// Init it with failed
- $GLOBALS['is_admin'][$admin] = false;
+ $GLOBALS['is_admin'][$adminLogin] = false;
// Search in array for entry
if (isset($GLOBALS['admin_hash'])) {
// Use cached string
$valPass = $GLOBALS['admin_hash'];
- } elseif ((!empty($passCookie)) && (isAdminHashSet($admin) === true) && (!empty($admin))) {
+ } elseif ((!empty($passCookie)) && (isAdminHashSet($adminLogin) === true) && (!empty($adminLogin))) {
// Login data is valid or not?
- $valPass = generatePassString(getAdminHash($admin));
+ $valPass = encodeHashForCookie(getAdminHash($adminLogin));
// Cache it away
$GLOBALS['admin_hash'] = $valPass;
// Count cache hits
incrementStatsEntry('cache_hits');
- } elseif ((!empty($admin)) && ((!isExtensionActive('cache'))) || (isAdminHashSet($admin) === false)) {
+ } elseif ((!empty($adminLogin)) && ((!isExtensionActive('cache')) || (isAdminHashSet($adminLogin) === false))) {
// Get admin hash and hash it
- $valPass = generatePassString(getAdminHash($admin));
+ $valPass = encodeHashForCookie(getAdminHash($adminLogin));
+
+ // Cache it away
+ $GLOBALS['admin_hash'] = $valPass;
}
if (!empty($valPass)) {
// Check if password is valid
- //* DEBUG: */ print(__FUNCTION__ . ':(' . $valPass . '==' . $passCookie . ')='.intval($valPass == $passCookie).'
');
- $GLOBALS['is_admin'][$admin] = (($valPass == $passCookie) || ((strlen($valPass) == 32) && ($valPass == md5($passCookie))) || (($valPass == '*FAILED*') && (!isExtensionActive('cache'))));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '(' . $valPass . '==' . $passCookie . ')='.intval($valPass == $passCookie));
+ $GLOBALS['is_admin'][$adminLogin] = (($valPass == $passCookie) || ((strlen($valPass) == 32) && ($valPass == md5($passCookie))) || (($valPass == '*FAILED*') && (!isExtensionActive('cache'))));
} // END - if
} // END - if
// Return result of comparision
- return $GLOBALS['is_admin'][$admin];
+ return $GLOBALS['is_admin'][$adminLogin];
}
// Generates a list of "max receiveable emails per day"
@@ -768,7 +818,7 @@ function addMaxReceiveList ($mode, $default = '', $return = false) {
$OUT = '';
while ($content = SQL_FETCHARRAY($result)) {
$OUT .= ' ");
+ //* DEBUG: */ debugOutput(__LINE__.':'.$mode.'/'.$action.'/'.$what.'*');
if (($mode != 'admin') && ($updateEntry === true)) {
// Update guest or member menu
$sql = SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET counter=counter+1 WHERE `action`='%s' AND `what`='%s'".$add." LIMIT 1",
- array($mode, $action, $what), __FUNCTION__, __LINE__, false);
+ array(
+ $mode,
+ $action,
+ $what
+ ), __FUNCTION__, __LINE__, false);
} elseif (($what != 'overview') && (!empty($what))) {
// Other actions
$sql = SQL_QUERY_ESC("SELECT `id`, `what` FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE `action`='%s' AND `what`='%s'".$add." ORDER BY `action` DESC LIMIT 1",
- array($mode, $action, $what), __FUNCTION__, __LINE__, false);
+ array(
+ $mode,
+ $action,
+ $what
+ ), __FUNCTION__, __LINE__, false);
} else {
// Admin login overview
$sql = SQL_QUERY_ESC("SELECT `id`, `what` FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE `action`='%s' AND (`what`='' OR `what` IS NULL)".$add." ORDER BY `action` DESC LIMIT 1",
- array($mode, $action), __FUNCTION__, __LINE__, false);
+ array(
+ $mode,
+ $action
+ ), __FUNCTION__, __LINE__, false);
}
// Run SQL command
@@ -865,33 +926,33 @@ function isMenuActionValid ($mode, $action, $what, $updateEntry=false) {
}
// Get action value from mode (admin/guest/member) and what-value
-function getModeAction ($mode, $what) {
+function getActionFromModuleWhat ($module, $what) {
// Init status
$data['action'] = '';
- //* DEBUG: */ print(__LINE__.'='.$mode.'/'.$what.'/'.getAction()."=
");
+ //* DEBUG: */ debugOutput(__LINE__.'='.$module.'/'.$what.'/'.getAction().'=');
if (!isExtensionInstalledAndNewer('sql_patches', '0.0.5')) {
// sql_patches is missing so choose depending on mode
if (isWhatSet()) {
// Use setted what
$what = getWhat();
- } elseif ($mode == 'admin') {
+ } elseif ($module == 'admin') {
// Admin area
$what = 'overview';
} else {
// Everywhere else
$what = 'welcome';
}
- } elseif ((empty($what)) && ($mode != 'admin')) {
+ } elseif ((empty($what)) && ($module != 'admin')) {
// Use configured 'home'
$what = getConfig('index_home');
} // END - if
- if ($mode == 'admin') {
+ if ($module == 'admin') {
// Action value for admin area
- if (isGetRequestElementSet('action')) {
+ if (isGetRequestParameterSet('action')) {
// Use from request!
- return getRequestElement('action');
+ return getRequestParameter('action');
} elseif (isActionSet()) {
// Get it directly from URL
return getAction();
@@ -903,19 +964,19 @@ function getModeAction ($mode, $what) {
// Get it directly from URL
return getAction();
}
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."): ret=".$data['action'].'
');
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '): ret=' . $data['action']);
// Does the module have a menu?
- if (ifModuleHasMenu($mode)) {
+ if (ifModuleHasMenu($module)) {
// Rewriting modules to menu
- $mode = mapModuleToTable($mode);
+ $module = mapModuleToTable($module);
// Guest and member menu is 'main' as the default
if (empty($data['action'])) $data['action'] = 'main';
// Load from database
$result = SQL_QUERY_ESC("SELECT `action` FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE `what`='%s' LIMIT 1",
- array($mode, $what), __FUNCTION__, __LINE__);
+ array($module, $what), __FUNCTION__, __LINE__);
if (SQL_NUMROWS($result) == 1) {
// Load action value and pray that this one is the right you want... ;-)
$data = SQL_FETCHARRAY($result);
@@ -923,7 +984,7 @@ function getModeAction ($mode, $what) {
// Free memory
SQL_FREERESULT($result);
- } elseif ((!isExtensionInstalled('sql_patches')) && (($mode != 'admin') && ($mode != 'unknown'))) {
+ } elseif ((!isExtensionInstalled('sql_patches')) && ($module != 'admin') && ($module != 'unknown')) {
// No sql_patches installed, but maybe we need to register an admin?
if (isAdminRegistered()) {
// Redirect to admin area
@@ -938,12 +999,12 @@ function getModeAction ($mode, $what) {
// Get category name back
function getCategory ($cid) {
// Default is not found
- $data['cat'] = getMessage('_CATEGORY_404');
+ $data['cat'] = '{--_CATEGORY_404--}';
// Is the category id set?
if ($cid == '0') {
// No category
- $data['cat'] = getMessage('_CATEGORY_NONE');
+ $data['cat'] = '{--_CATEGORY_NONE--}';
} elseif ($cid > 0) {
// Lookup the category in database
$result = SQL_QUERY_ESC("SELECT `cat` FROM `{?_MYSQL_PREFIX?}_cats` WHERE `id`=%s LIMIT 1",
@@ -964,7 +1025,7 @@ function getCategory ($cid) {
// Get a string of "mail title" and price back
function getPaymentTitlePrice ($pid, $full=false) {
// Default is not found
- $ret = getMessage('_PAYMENT_404');
+ $ret = '{--_PAYMENT_404--}';
// Load payment data
$result = SQL_QUERY_ESC("SELECT `mail_title`, `price` FROM `{?_MYSQL_PREFIX?}_payments` WHERE `id`=%s LIMIT 1",
@@ -1031,7 +1092,7 @@ function removeReceiver (&$receivers, $key, $userid, $pool_id, $stats_id = '', $
array($rowName, $stats_id, bigintval($userid), $type), __FUNCTION__, __LINE__);
// Was it *not* found?
- if (SQL_NUMROWS($result) == '0') {
+ if (SQL_HASZERONUMS($result)) {
// So we add one!
SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_links` (`%s`, `userid`, `link_type`) VALUES ('%s','%s','%s')",
array($rowName, $stats_id, bigintval($userid), $type), __FUNCTION__, __LINE__);
@@ -1055,7 +1116,7 @@ function countSumTotalData ($search, $tableName, $lookFor = 'id', $whereStatemen
// Init count/sum
$data['res'] = '0';
- //* DEBUG: */ print($search.'/'.$tableName.'/'.$lookFor.'/'.$whereStatement.'/'.$add.'
');
+ //* DEBUG: */ debugOutput($search.'/'.$tableName.'/'.$lookFor.'/'.$whereStatement.'/'.$add);
if ((empty($search)) && ($search != '0')) {
// Count or sum whole table?
if ($countRows === true) {
@@ -1069,12 +1130,12 @@ function countSumTotalData ($search, $tableName, $lookFor = 'id', $whereStatemen
}
} elseif (($countRows === true) || ($lookFor == 'userid')) {
// Count rows
- //* DEBUG: */ print("COUNT!
");
+ //* DEBUG: */ debugOutput('COUNT!');
$result = SQL_QUERY_ESC("SELECT COUNT(`%s`) AS res FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`='%s'".$add,
array($lookFor, $tableName, $whereStatement, $search), __FUNCTION__, __LINE__);
} else {
// Add all rows
- //* DEBUG: */ print("SUM!
");
+ //* DEBUG: */ debugOutput('SUM!');
$result = SQL_QUERY_ESC("SELECT SUM(`%s`) AS res FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`='%s'".$add,
array($lookFor, $tableName, $whereStatement, $search), __FUNCTION__, __LINE__);
}
@@ -1095,7 +1156,7 @@ function countSumTotalData ($search, $tableName, $lookFor = 'id', $whereStatemen
}
// Return value
- //* DEBUG: */ print 'ret=' . $data['res'] . '
';
+ //* DEBUG: */ debugOutput('ret=' . $data['res']);
return $data['res'];
}
// Getter fro ref level percents
@@ -1147,7 +1208,7 @@ function getReferalLevelPercents ($level) {
* for default value will cause no referal will get points ever!!!)
*/
function addPointsThroughReferalSystem ($subject, $userid, $points, $sendNotify = false, $rid = '0', $locked = false, $add_mode = 'ref') {
- //* DEBUG: */ print("----------------------- ".__FUNCTION__." - ENTRY ------------------------- \n");
+ //* DEBUG: */ debugOutput('----------------------- ' . __FUNCTION__ . ' - ENTRY ------------------------
- ');
// Convert mode to lower-case
$add_mode = strtolower($add_mode);
@@ -1176,12 +1237,12 @@ function addPointsThroughReferalSystem ($subject, $userid, $points, $sendNotify
// Count up referal depth
if (!isset($GLOBALS['ref_level'])) {
// Initialialize referal system
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."): Referal system initialized!
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '): Referal system initialized!');
$GLOBALS['ref_level'] = '0';
} else {
// Increase referal level
$GLOBALS['ref_level']++;
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."): Referal level increased. DEPTH={$GLOBALS['ref_level']}
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '): Referal level increased. DEPTH='.$GLOBALS['ref_level']);
}
// Default is 'normal' points
@@ -1191,39 +1252,39 @@ function addPointsThroughReferalSystem ($subject, $userid, $points, $sendNotify
if ($locked === true) $data = 'locked_points';
// Check user account
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):userid={$userid},points={$points}
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid.',points='.$points);
if (fetchUserData($userid)) {
// This is the user and his ref
$GLOBALS['cache_array']['add_userid'][getUserData('refid')] = $userid;
// Get percents
$per = getReferalLevelPercents($GLOBALS['ref_level']);
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):userid={$userid},points={$points},depth={$GLOBALS['ref_level']},per={$per},mode={$add_mode}
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid.',points='.$points.',depth='.$GLOBALS['ref_level'].',per='.$per.',mode='.$add_mode);
// Some percents found?
if ($per > 0) {
// Calculate new points
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):userid={$userid},points={$points},per={$per},depth={$GLOBALS['ref_level']}
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid.',points='.$points.',per='.$per.',depth='.$GLOBALS['ref_level']);
$ref_points = $points * $per / 100;
// Pay refback here if level > 0 and in ref-mode
- if ((isExtensionActive('refback')) && ($GLOBALS['ref_level'] > 0) && ($per < 100) && ($add_mode == "ref") && (isset($GLOBALS['cache_array']['add_userid'][$userid]))) {
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):userid={$userid},data={$GLOBALS['cache_array']['add_userid'][$userid]},ref_points={$ref_points},depth={$GLOBALS['ref_level']} - BEFORE!
");
+ if ((isExtensionActive('refback')) && ($GLOBALS['ref_level'] > 0) && ($per < 100) && ($add_mode == 'ref') && (isset($GLOBALS['cache_array']['add_userid'][$userid]))) {
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid.',data='.$GLOBALS['cache_array']['add_userid'][$userid].',ref_points='.$ref_points.',depth='.$GLOBALS['ref_level'].' - BEFORE!');
$ref_points = addRefbackPoints($GLOBALS['cache_array']['add_userid'][$userid], $userid, $points, $ref_points);
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):userid={$userid},data={$GLOBALS['cache_array']['add_userid'][$userid]},ref_points={$ref_points},depth={$GLOBALS['ref_level']} - AFTER!
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid.',data='.$GLOBALS['cache_array']['add_userid'][$userid].',ref_points='.$ref_points.',depth='.$GLOBALS['ref_level'].' - AFTER!');
} // 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",
+ 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($userid), bigintval($GLOBALS['ref_level'])), __FUNCTION__, __LINE__);
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):data={$data},ref_points={$ref_points},userid={$userid},depth={$GLOBALS['ref_level']},mode={$add_mode} - UPDATE! (".SQL_AFFECTEDROWS().")
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):data='.$data.',ref_points='.$ref_points.',userid='.$userid.',depth='.$GLOBALS['ref_level'].',mode='.$add_mode.' - UPDATE! ('.SQL_AFFECTEDROWS().')');
// No entry updated?
if (SQL_AFFECTEDROWS() < 1) {
// First ref in this level! :-)
- SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_points` (`userid`,`ref_depth`,`%s`) VALUES (%s,'%s',%s)",
+ SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_points` (`userid`,`ref_depth`,`%s`) VALUES (%s,%s,%s)",
array($data, bigintval($userid), bigintval($GLOBALS['ref_level']), $ref_points), __FUNCTION__, __LINE__);
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):data={$data},ref_points={$ref_points},userid={$userid},depth={$GLOBALS['ref_level']},mode={$add_mode} - INSERTED! (".SQL_AFFECTEDROWS().")
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):data='.$data.',ref_points='.$ref_points.',userid='.$userid.',depth='.$GLOBALS['ref_level'].',mode='.$add_mode.' - INSERTED! ('.SQL_AFFECTEDROWS().')');
} // END - if
// Points updated, maybe I shall send him an email?
@@ -1240,51 +1301,51 @@ function addPointsThroughReferalSystem ($subject, $userid, $points, $sendNotify
$message = loadEmailTemplate('confirm-referal', $content, bigintval($userid));
// Send email
- sendEmail($userid, getMessage('THANX_REFERAL_ONE_SUBJECT'), $message);
- } elseif (($sendNotify) && (getUserData('refid') == '0') && ($locked === false) && ($add_mode == 'direct')) {
+ sendEmail($userid, '{--THANX_REFERAL_ONE_SUBJECT--}', $message);
+ } elseif (($sendNotify === true) && (getUserData('refid') == '0') && ($locked === false) && ($add_mode == 'direct')) {
// Prepare content
$content = array(
- 'text' => getMessage('REASON_DIRECT_PAYMENT'),
- 'points' => translateComma($ref_points)
+ 'text' => '{--REASON_DIRECT_PAYMENT--}',
+ 'points' => $ref_points
);
// Load message
$message = loadEmailTemplate('add-points', $content, $userid);
// And sent it away
- sendEmail($userid, getMessage('SUBJECT_DIRECT_PAYMENT'), $message);
- if (!isGetRequestElementSet('mid')) loadTemplate('admin_settings_saved', false, getMessage('ADMIN_POINTS_ADDED'));
+ sendEmail($userid, '{--SUBJECT_DIRECT_PAYMENT--}', $message);
+ if (!isGetRequestParameterSet('mid')) loadTemplate('admin_settings_saved', false, '{--ADMIN_POINTS_ADDED--}');
}
// Maybe there's another ref?
if ((getUserData('refid') > 0) && ($points > 0) && (getUserData('refid') != $userid) && ($add_mode == 'ref')) {
// Then let's credit him here...
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):userid={$userid},ref=".getUserData('refid').",points={$points} - ADVANCE!
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid.',ref='.getUserData('refid').',points='.$points.' - ADVANCE!');
addPointsThroughReferalSystem(sprintf("%s_ref:%s", $subject, $GLOBALS['ref_level']), getUserData('refid'), $points, $sendNotify, getUserData('refid'), $locked);
} // END - if
} // END - if
} // END - if
- //* DEBUG: */ print("
----------------------- ".__FUNCTION__." - EXIT ------------------------
");
+ //* DEBUG: */ debugOutput('
----------------------- '.__FUNCTION__.' - EXIT ------------------------
');
}
// Updates the referal counter
function updateReferalCounter ($userid) {
// Make it sure referal level zero (member him-/herself) is at least selected
if (empty($GLOBALS['cache_array']['ref_level'][$userid])) $GLOBALS['cache_array']['ref_level'][$userid] = 1;
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):userid={$userid},level={$GLOBALS['cache_array']['ref_level'][$userid]}
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid.',level='.$GLOBALS['cache_array']['ref_level'][$userid]);
// Update counter
SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_refsystem` SET `counter`=`counter`+1 WHERE `userid`=%s AND `level`='%s' LIMIT 1",
array(bigintval($userid), $GLOBALS['cache_array']['ref_level'][$userid]), __FUNCTION__, __LINE__);
// When no entry was updated then we have to create it here
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):updated=".SQL_AFFECTEDROWS().'
');
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):updated=' . SQL_AFFECTEDROWS());
if (SQL_AFFECTEDROWS() < 1) {
// First count!
SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_refsystem` (`userid`, `level`, `counter`) VALUES (%s,%s,1)",
array(bigintval($userid), $GLOBALS['cache_array']['ref_level'][$userid]), __FUNCTION__, __LINE__);
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):userid={$userid}
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid);
} // END - if
// Init referal id
@@ -1296,18 +1357,18 @@ function updateReferalCounter ($userid) {
$ref = getUserData('refid');
} // END - if
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):userid={$userid},ref={$ref}
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):userid='.$userid.',ref='.$ref);
// When he has a referal...
if (($ref > 0) && ($ref != $userid)) {
// Move to next referal level and count his counter one up!
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):ref={$ref} - ADVANCE!
");
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):ref='.$ref.' - ADVANCE!');
$GLOBALS['cache_array']['ref_level'][$userid]++;
updateReferalCounter($ref);
} elseif ((($ref == $userid) || ($ref == '0')) && (isExtensionInstalledAndNewer('cache', '0.1.2'))) {
// Remove cache here
- //* DEBUG: */ print(__FUNCTION__."(".__LINE__."):ref={$ref} - CACHE!
");
- rebuildCacheFile('refsystem', 'refsystem');
+ //* DEBUG: */ debugOutput(__FUNCTION__ . '(' . __LINE__ . '):ref='.$ref.' - CACHE!');
+ rebuildCache('refsystem', 'refsystem');
}
// "Walk" back here
@@ -1336,21 +1397,21 @@ function sendAdminEmails ($subj, $message) {
}
// Get id number from administrator's login name
-function getAdminId ($login) {
+function getAdminId ($adminLogin) {
// By default no admin is found
$data['id'] = '-1';
// Check cache
- if (isset($GLOBALS['cache_array']['admin']['admin_id'][$login])) {
+ if (isset($GLOBALS['cache_array']['admin']['admin_id'][$adminLogin])) {
// Use it if found to save SQL queries
- $data['id'] = $GLOBALS['cache_array']['admin']['admin_id'][$login];
+ $data['id'] = $GLOBALS['cache_array']['admin']['admin_id'][$adminLogin];
// Update cache hits
incrementStatsEntry('cache_hits');
} elseif (!isExtensionActive('cache')) {
// Load from database
$result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `login`='%s' LIMIT 1",
- array($login), __FUNCTION__, __LINE__);
+ array($adminLogin), __FUNCTION__, __LINE__);
// Do we have an entry?
if (SQL_NUMROWS($result) == 1) {
@@ -1377,28 +1438,34 @@ function getCurrentAdminId () {
$adminId = getAdminId($adminLogin);
// Remember in cache securely
- $GLOBALS['current_admin_id'] = bigintval($adminId);
+ setCurrentAdminId(bigintval($adminId));
} // END - if
// Return it
return $GLOBALS['current_admin_id'];
}
+// Setter for current admin id
+function setCurrentAdminId ($currentAdminId) {
+ // Set it secured
+ $GLOBALS['current_admin_id'] = bigintval($currentAdminId);
+}
+
// Get password hash from administrator's login name
-function getAdminHash ($admin) {
+function getAdminHash ($adminLogin) {
// By default an invalid hash is returned
$data['password'] = '-1';
- if (isAdminHashSet($admin)) {
+ if (isAdminHashSet($adminLogin)) {
// Check cache
- $data['password'] = $GLOBALS['cache_array']['admin']['password'][$admin];
+ $data['password'] = $GLOBALS['cache_array']['admin']['password'][$adminLogin];
// Update cache hits
incrementStatsEntry('cache_hits');
} elseif (!isExtensionActive('cache')) {
// Load from database
$result = SQL_QUERY_ESC("SELECT `password` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `login`='%s' LIMIT 1",
- array($admin), __FUNCTION__, __LINE__);
+ array($adminLogin), __FUNCTION__, __LINE__);
// Do we have an entry?
if (SQL_NUMROWS($result) == 1) {
@@ -1406,7 +1473,7 @@ function getAdminHash ($admin) {
$data = SQL_FETCHARRAY($result);
// Set cache
- setAdminHash($admin, $data['password']);
+ setAdminHash($adminLogin, $data['password']);
} // END - if
// Free result
@@ -1519,7 +1586,7 @@ function getAdminDefaultAcl ($adminId) {
}
// Generates an option list from various parameters
-function generateOptionList ($table, $id, $name, $default='', $special='', $where='') {
+function generateOptionList ($table, $id, $name, $default='', $special='', $where='', $disabled=array()) {
$ret = '';
if ($table == '/ARRAY/') {
// Selection from array
@@ -1527,12 +1594,18 @@ function generateOptionList ($table, $id, $name, $default='', $special='', $wher
// Both are arrays
foreach ($id as $idx => $value) {
$ret .= '