X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Fmysql-manager.php;h=2d5d26fa9af300d84339cf283937fcf42e9b7e2e;hb=1355d2c0b29510dbd407f9cde9f41a5ac02d01fa;hp=98c45fe686e0b13b182ae9b1981886483f1e7850;hpb=08b3c51b70b6498fd92a2760979d64470ad1b586;p=mailer.git
diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php
index 98c45fe686..2d5d26fa9a 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,30 +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) {
- global $cacheArray;
-
+// "Getter" for module title
+function getModuleTitle ($mod) {
// Init variables
- $name = "";
+ $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")) {
+ } 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 +75,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
@@ -79,17 +83,40 @@ function ADD_MODULE_TITLE ($mod) {
return $name;
}
-// Check validity of a given module name (no file extension)
-function CHECK_MODULE ($mod) {
- // We need them now here...
- global $cacheArray, $cacheInstance;
+// "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;
+ $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?
@@ -97,25 +124,40 @@ 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";
+ // 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';
+ } // 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") {
+ 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
incrementConfigEntry('cache_hits');
@@ -124,9 +166,10 @@ function CHECK_MODULE ($mod) {
// No, then we have to update it!
$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", 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);
@@ -140,37 +183,45 @@ 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 ((IS_ADMIN()) || (($locked == 'N') && ($admin == 'N') && (($mem == 'N') || (IS_MEMBER())))) {
// 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())) {
+ } elseif (($mem == 'Y') && (!IS_MEMBER())) {
// You have to login first!
$ret = "mem_only";
- } elseif (($admin == "Y") && (!IS_ADMIN())) {
+ } 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 ---
- 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)))) {
+ // ----- Legacy module ----- ---- Module in base folder ---- --- Module with extension's name ---
+ 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
-('%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,23 +231,23 @@ 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";
+ $ret = '404';
}
} 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
+ $mod,
+ $ret,
+ $locked,
+ $hidden,
+ $mem,
+ $admin
));
}
@@ -205,86 +256,86 @@ 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)
- {
- case "admin":
- $modCheck = "admin";
- break;
-
- case "sponsor":
- case "guest":
- case "member":
- $modCheck = $GLOBALS['module'];
- break;
+ switch ($ACC_LVL) {
+ case 'admin':
+ $modCheck = 'admin';
+ break;
+
+ 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";
- break;
-
- case "guest":
- case "member":
- $modCheck = $GLOBALS['module'];
- if (!IS_ADMIN()) {
- $AND = " AND `visible`='Y' AND `locked`='N'";
- }
- break;
+ $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;
}
$dummy = substr($search, 0, -4);
- $AND .= " AND `action`='".GET_ACTION($ACC_LVL, $dummy)."'";
- } elseif (($ACC_LVL == "sponsor") || ($ACC_LVL == "engine")) {
+ $AND .= " AND `action`='".getModeAction($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;
+
+ // Begin the navigation line
+ if ((!isset($GLOBALS['nav_depth'])) && (!$return)) {
+ $GLOBALS['nav_depth'] = 0;
$prefix = "
");
- //* DEBUG: */ echo __LINE__."/".$main_cnt."/".$main_action."/".$sub_what.":".$GLOBALS['what']."* \n"; - LOAD_INC($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"; + loadInclude($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(" |