X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=inline;f=inc%2Fmysql-manager.php;h=49962859a1e1f5f053af6b143002057b016671f1;hb=60c6d7a179157acd6e5f6df2ed8968980aebe193;hp=d8cbc5e2d12965693dac7f29df45025aa7894a5d;hpb=acfab4c558dc0cab788213d5861121170d541258;p=mailer.git
diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php
index d8cbc5e2d1..49962859a1 100644
--- a/inc/mysql-manager.php
+++ b/inc/mysql-manager.php
@@ -38,29 +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);
}
-// Returns the title for given module
-function ADD_MODULE_TITLE ($mod) {
+// "Getter" for module title
+function getModuleTitle ($mod) {
// Init variables
- $name = "";
+ $name = '';
$result = false;
// Is the script installed?
if (isInstalled()) {
// Check if cache is valid
- if ((GET_EXT_VERSION("cache") >= "0.1.2") && (isset($GLOBALS['cache_array']['modules']['module'])) && (in_array($mod, $GLOBALS['cache_array']['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 = $GLOBALS['cache_array']['modules']['title'][$mod];
// Update cache hits
incrementConfigEntry('cache_hits');
- } elseif (!EXT_IS_ACTIVE("cache")) {
+ } 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), __FUNCTION__, __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);
}
@@ -83,18 +83,44 @@ function ADD_MODULE_TITLE ($mod) {
return $name;
}
+// "Getter" for module description
+function getModuleDescription ($mode, $wht, $column = 'what') {
+ // Fix empty 'what'
+ if (empty($wht)) {
+ $wht = 'welcome';
+ if (getConfig('index_home') != '') $wht = getConfig('index_home');
+ } // END - if
+
+ // Default is not found
+ $ret = '??? (' . $wht . ')';
+
+ // Look for title
+ $result = SQL_QUERY_ESC("SELECT title FROM `{!_MYSQL_PREFIX!}_%s_menu` WHERE %s='%s' LIMIT 1",
+ array($mode, $column, $wht), __FUNCTION__, __LINE__);
+
+ // Is there an entry?
+ if (SQL_NUMROWS($result) == 1) {
+ // Fetch the title
+ list($ret) = SQL_FETCHROW($result);
+ } // END - if
+
+ // Free result
+ SQL_FREERESULT($result);
+ return $ret;
+}
+
// Check validity of a given module name (no file extension)
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;
- //* DEBUG: */ echo __LINE__."*".count($modSplit)."*/".$mod."*
";
+ $extension = ''; $mod_chk = $mod;
+ //* DEBUG: */ OUTPUT_HTML(__LINE__."*".count($modSplit)."*/".$mod."*
");
if (count($modSplit) == 2) {
// Okay, there is a seperator (_) in the name so is the first part a module?
- //* DEBUG: */ echo __LINE__."*".$modSplit[0]."*
";
+ //* DEBUG: */ OUTPUT_HTML(__LINE__."*".$modSplit[0]."*
");
if (EXT_IS_ACTIVE($modSplit[0])) {
// The prefix is an extension's name, so let's set it
$extension = $modSplit[0]; $mod = $modSplit[1];
@@ -102,32 +128,34 @@ function checkModulePermissions ($mod) {
} // END - if
// Major error in module registry is the default
- $ret = "major";
+ $ret = 'major';
- // Check if script is installed if not return a "done" to prevent some errors
+ // Check if script is installed if not return a 'done' to prevent some errors
if ((!isInstalled()) || (isInstalling()) || (!isAdminRegistered())) {
// Not installed or no admin registered or in installation phase
- return "done";
+ return 'done';
} // END - if
// Init variables
- $locked = "Y";
- $hidden = "N";
- $admin = "N";
- $mem = "N";
+ $locked = 'Y';
+ $hidden = 'N';
+ $admin = 'N';
+ $mem = 'N';
$found = false;
// Check if cache is latest version
- if (GET_EXT_VERSION("cache") >= "0.1.2") {
+ if (GET_EXT_VERSION('cache') >= '0.1.2') {
// Is the cache there?
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, 'Using cache.');
if (!isset($GLOBALS['cache_array']['modules'])) {
- // This should normally not happen...
- debug_report_bug("Cache 'modules' is gone.");
+ // This happens when a new extension is registered while ext-cache is installed
+ $ret = 'cache_miss';
} // END - if
// Is the module cached?
if (isset($GLOBALS['cache_array']['modules']['locked'][$mod_chk])) {
// Check cache
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, 'Cache found.');
$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];
@@ -138,37 +166,48 @@ function checkModulePermissions ($mod) {
$found = true;
} else {
// No, then we have to update it!
- $ret = "cache_miss";
+ $ret = 'cache_miss';
}
- } elseif (!EXT_IS_ACTIVE("cache")) {
+ } 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",
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, 'Using 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), __FUNCTION__, __LINE__);
if (SQL_NUMROWS($result) == 1) {
// Read data
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, 'Entry found.');
list($locked, $hidden, $admin, $mem) = SQL_FETCHROW($result);
- SQL_FREERESULT($result);
$found = true;
+ } elseif (isDebugModeEnabled()) {
+ // Debug message only in debug-mode...
+ DEBUG_LOG(__FUNCTION__, __LINE__, 'Module ' . $mod_chk . ' not found!');
}
+
+ // Free result
+ SQL_FREERESULT($result);
}
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, 'ret=' . $ret);
// 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 ((IS_ADMIN()) || (($locked == 'N') && ($admin == 'N') && (($mem == 'N') || (IS_MEMBER())))) {
+ // Count module
+ countModuleHit($mod_chk);
+
// If you are admin you are welcome for everything!
- $ret = "done";
- } elseif ($locked == "Y") {
+ $ret = 'done';
+ } elseif ($locked == 'Y') {
// Module is locked
- $ret = "locked";
- } elseif (($mem == "Y") && (!IS_MEMBER())) {
+ $ret = 'locked';
+ } elseif (($mem == 'Y') && (!IS_MEMBER())) {
// You have to login first!
- $ret = "mem_only";
- } elseif (($admin == "Y") && (!IS_ADMIN())) {
+ $ret = 'mem_only';
+ } elseif (($admin == 'Y') && (!IS_ADMIN())) {
// Only the Admin is allowed to enter this module!
- $ret = "admin_only";
+ $ret = 'admin_only';
} else {
// @TODO Nothing helped???
DEBUG_LOG(__FUNCTION__, __LINE__, sprintf("ret=%s,locked=%s,admin=%s,mem=%s",
@@ -181,39 +220,43 @@ function checkModulePermissions ($mod) {
} // END - if
// Still no luck or not found?
- if (($ret == "cache_miss") || (!$found)) {
+ if (($found === false) && (!EXT_IS_ACTIVE('cache')) && ($ret != 'done')) {
// ----- 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)))) {
+ if ((isFileReadable(sprintf("%sinc/modules/%s.php", constant('PATH'), $mod))) || (isFileReadable(sprintf("%s%s.php", constant('PATH'), $mod))) || (isFileReadable(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*
SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_mod_reg`
-(module, locked, hidden, mem_only, admin_only, has_menu) VALUES
+(`module`, `locked`, `hidden`, `mem_only`, `admin_only`, `has_menu`) VALUES
('%s','Y','N','N','N','N')", array($mod_chk), __FUNCTION__, __LINE__);
} else {
// Wrong/missing sql_patches!
SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_mod_reg`
-(module, locked, hidden, mem_only, admin_only) VALUES
+(`module`, `locked`, `hidden`, `mem_only`, `admin_only`) VALUES
('%s','Y','N','N','N')", array($mod_chk), __FUNCTION__, __LINE__);
}
// Everthing is fine?
if (SQL_AFFECTEDROWS() < 1) {
// Something bad happend!
- return "major";
+ return 'major';
} // END - if
// Destroy cache here
- rebuildCacheFiles("modreg", "modreg");
+ // @TODO Rewrite this to a filter
+ rebuildCacheFiles('modreg', 'modreg');
// And reload data
$ret = checkModulePermissions($mod_chk);
} else {
// Module not found we don't add it to the database
- $ret = "404";
+ $ret = '404';
}
- } elseif (!$found) {
+ } elseif (($ret == 'cache_miss') && (getOutputMode() > -1)) {
+ // Rebuild the cache files
+ rebuildCacheFiles('modreg', 'modreg');
+ } elseif ($found === false) {
// 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,
@@ -226,90 +269,92 @@ function checkModulePermissions ($mod) {
}
// Return the value
+ //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, 'ret=' . $ret);
return $ret;
}
// Add menu description pending on given file name (without path!)
-function ADD_DESCR ($ACC_LVL, $FQFN, $return = false, $output = true) {
+function ADD_DESCR ($accessLevel, $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-") {
+ if (substr($file, 0, 7) == 'action-') {
// This is an action file!
- $type = "action";
+ $type = 'action';
$search = substr($file, 7);
- switch ($ACC_LVL) {
- case "admin":
- $modCheck = "admin";
- break;
-
- case "sponsor":
- case "guest":
- case "member":
- $modCheck = $GLOBALS['module'];
- break;
+ switch ($accessLevel) {
+ case 'admin':
+ $modCheck = 'admin';
+ break;
+
+ case 'sponsor':
+ case 'guest':
+ case 'member':
+ $modCheck = getModule();
+ break;
}
- $AND = " AND (what='' OR `what` IS NULL)";
- } elseif (substr($file, 0, 5) == "what-") {
+ $AND = " AND (`what`='' OR `what` IS NULL)";
+ } elseif (substr($file, 0, 5) == 'what-') {
// This is an admin what file!
- $type = "what";
+ $type = 'what';
$search = substr($file, 5);
- $AND = "";
- switch ($ACC_LVL) {
- case "admin":
- $modCheck = "admin";
- break;
-
- case "guest":
- case "member":
- $modCheck = $GLOBALS['module'];
- if (!IS_ADMIN()) {
- $AND = " AND `visible`='Y' AND `locked`='N'";
- }
- break;
+ $AND = '';
+ switch ($accessLevel) {
+ case 'admin':
+ $modCheck = 'admin';
+ break;
+
+ case 'guest':
+ case 'member':
+ $modCheck = getModule();
+ if (!IS_ADMIN()) {
+ $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`='".getModeAction($accessLevel, $dummy)."'";
+ } elseif (($accessLevel == 'sponsor') || ($accessLevel == "engine")) {
// Sponsor / engine menu
- $type = "what";
+ $type = 'what';
$search = $file;
- $modCheck = $GLOBALS['module'];
- $AND = "";
+ $modCheck = getModule();
+ $AND = '';
} else {
// Other
- $type = "menu";
+ $type = 'menu';
$search = $file;
- $modCheck = $GLOBALS['module'];
- $AND = "";
+ $modCheck = getModule();
+ $AND = '';
}
// Begin the navigation line
if ((!isset($GLOBALS['nav_depth'])) && (!$return)) {
$GLOBALS['nav_depth'] = 0;
- $prefix = "
");
- //* 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: */ OUTPUT_HTML(__LINE__.'/'.$main_cnt.'/'.$content['action'].'/'.$content['sub_what'].':'.getWhat()."* "); + loadInclude($INC_BLOCK); + //* DEBUG: */ OUTPUT_HTML(__LINE__.'/'.$main_cnt.'/'.$content['action'].'/'.$content['sub_what'].':'.getWhat()."* "); + if ((!EXT_IS_ACTIVE($content['action'])) || ($content['action'] == 'online')) OUTPUT_HTML(" |