X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmysql-manager.php;h=8367de207ee120c3e045c1f588aa32abefb2c7b1;hb=b7aada7890a3c7d1c1da4d2b36d8d7683fa61c06;hp=4e10c8874056bca75b325df90ad6ea0926799ff0;hpb=cc7c700143bca2420ff0497e648d31a18cc9add2;p=mailer.git diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php index 4e10c88740..8367de207e 100644 --- a/inc/mysql-manager.php +++ b/inc/mysql-manager.php @@ -39,24 +39,23 @@ if (!defined('__SECURITY')) { // Returns the title for given module function ADD_MODULE_TITLE ($mod) { - global $cacheArray; - // 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 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); } @@ -71,7 +70,7 @@ function ADD_MODULE_TITLE ($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 @@ -80,10 +79,7 @@ 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, $cacheInstance; - +function checkModulePermissions ($mod) { // Filter module name (names with low chars and underlines are fine!) $mod = preg_replace("/[^a-z_]/", "", $mod); @@ -97,25 +93,34 @@ 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") { // 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 incrementConfigEntry('cache_hits'); @@ -126,7 +131,8 @@ function CHECK_MODULE ($mod) { } } 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); @@ -152,12 +158,20 @@ function CHECK_MODULE ($mod) { } 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 == "cache_miss") || (!$found)) { - // ----- Legacy module ----- ---- Module in base folder ---- --- Module with extension's name --- + // ----- 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") { @@ -165,12 +179,12 @@ function CHECK_MODULE ($mod) { // 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 -('%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! 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? @@ -180,10 +194,10 @@ 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"; @@ -205,22 +219,21 @@ 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 $NAV_DEPTH; - - // 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) - { + switch ($ACC_LVL) { case "admin": $modCheck = "admin"; break; @@ -237,8 +250,7 @@ function ADD_DESCR ($ACC_LVL, $file, $return = false, $output = true) { $type = "what"; $search = substr($file, 5); $AND = ""; - switch ($ACC_LVL) - { + switch ($ACC_LVL) { case "admin": $modCheck = "admin"; break; @@ -252,25 +264,27 @@ function ADD_DESCR ($ACC_LVL, $file, $return = false, $output = true) { break; } $dummy = substr($search, 0, -4); - $AND .= " AND action='".GET_ACTION($ACC_LVL, $dummy)."'"; + $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 = "