X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Finc-functions.php;h=4d778abdd0443ad2922cfa921ba37241ab65d9eb;hp=22fd177bdf1b9bae6ee098626e1441581a10becc;hb=e9da1508b2a3ccbf63adc999981674740a47e074;hpb=e53891f4375882eba23d10df70d92bff167677a9 diff --git a/inc/inc-functions.php b/inc/inc-functions.php index 22fd177bdf..4d778abdd0 100644 --- a/inc/inc-functions.php +++ b/inc/inc-functions.php @@ -1,7 +1,7 @@ 0) && (EXT_IS_ACTIVE($extName))) { - // Then add this file - //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, " Extension entry ".$baseFile." added."); - $INCs[] = $INC; - } elseif ($extId == 0) { - // Add non-extension files as well - //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, " Regular entry ".$baseFile." added."); - if ($addBaseDir) { - $INCs[] = $INC; - } else { - $INCs[] = $baseFile; - } - } - } // END - if - } // END - while - - // Close directory - closedir($dirPointer); - - // Sort array - asort($INCs); - - // Return array with include files - //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, " - Left!"); - return $INCs; -} + die(); +} // END - if // Init INC_POOL -function INIT_INC_POOL () { - $GLOBALS['inc_pool'] = array(); +function initIncludePool ($pool) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool); + $GLOBALS['inc_pool'][$pool] = array(); } // Setter for INC_POOL -function SET_INC_POOL ($includePool) { - $GLOBALS['inc_pool'] = (array) $includePool; +function setIncludePool ($pool, $includePool) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool); + $GLOBALS['inc_pool'][$pool] = (array) $includePool; } // Getter for INC_POOL -function GET_INC_POOL () { - return $GLOBALS['inc_pool']; +function getIncludePool ($pool) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool); + // Default is empty pool + $poolArray = array(); + + // Is it set? + if (isset($GLOBALS['inc_pool'][$pool])) { + // Return found pool (array) + $poolArray = $GLOBALS['inc_pool'][$pool]; + } // END - if + + // Return it + return $poolArray; } // Count INC_POOL -function COUNT_INC_POOL () { - return count($GLOBALS['inc_pool']); +function countIncludePool ($pool) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool); + return count($GLOBALS['inc_pool'][$pool]); } // Merge INC_POOL into given -function MERGE_INC_POOL ($includePool) { - SET_INC_POOL(merge_array(GET_INC_POOL(), $includePool)); +function mergeIncludePool ($pool, $includePool) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool); + setIncludePool($pool, merge_array(getIncludePool($pool), $includePool)); } // Add single include file to INC_POOL -function ADD_INC_TO_POOL ($INC) { - $GLOBALS['inc_pool'][] = (string) $INC; +function addIncludeToPool ($pool, $inc) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool); + array_push($GLOBALS['inc_pool'][$pool], $inc); } // Remove an include file from INC_POOL -function REMOVE_INC_FROM_POOL ($INC) { +function removeIncludeFromPool ($pool, $inc) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool); // First look it up - $key = array_search($INC, GET_INC_POOL()); + $key = array_search($inc, getIncludePool($pool)); // Is it valid? - if ($key !== false) { + if ($key !== FALSE) { // Then remove it - unset($GLOBALS['inc_pool'][$key]); + unset($GLOBALS['inc_pool'][$pool][$key]); // And sort the list - asort($GLOBALS['inc_pool']); + asort($GLOBALS['inc_pool'][$pool]); } // END - if } +// Load the whole include pool +function loadIncludePool ($pool) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool.' - START'); + foreach (getIncludePool($pool) as $inc) { + //* DEBUG: */ debugOutput(__FUNCTION__.':inc='.$inc); + loadIncludeOnce($inc); + } // END - foreach + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool.' - END'); + + // Remove it + initIncludePool($pool); +} + +// Loads an include file and logs any missing files for debug purposes +function loadInclude ($inc) { + // Is there cache? + if (!isset($GLOBALS['inc_loaded'][$inc])) { + // Is the include file there? + if (!isIncludeReadable($inc)) { + // Not there so log it + reportBug(__FUNCTION__, __LINE__, sprintf('Include file %s not found or deprecated.', $inc)); + } // END - if + + // Add the path. This is why we need a trailing slash in config.php + $GLOBALS['inc_loaded'][$inc] = getPath() . $inc; + } // END - if + + // Try to load it + include($GLOBALS['inc_loaded'][$inc]); +} + +// Loads an include file once +function loadIncludeOnce ($inc) { + // Is it not loaded? + if (!isset($GLOBALS['inc_loaded'][$inc])) { + // Then try to load it + loadInclude($inc); + } // END - if +} + +// Checks whether an include file (non-FQFN better) is readable +function isIncludeReadable ($inc) { + // Is there cache? + if (!isset($GLOBALS['inc_readable'][$inc])) { + // Construct FQFN + $FQFN = getPath() . $inc; + + // Is it readable and at least 50 byte large? Include file sizes < 50 byte are always deprecated + $GLOBALS['inc_readable'][$inc] = ((isFileReadable($FQFN)) && (filesize($FQFN) >= 50)); + } // END - if + + // Return result + return $GLOBALS['inc_readable'][$inc]; +} + // [EOF] ?>