X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Finc-functions.php;h=54853e78ad893cc408c14917d074be4ccaf505c3;hb=65ed873eefdacdcea3331773b6458a06a5adff82;hp=ed3dba2a7cf42d9f57ebc3b658d60889be1a7c5f;hpb=b8aa17b98b99c27eafbdca0fa090bae63527da9a;p=mailer.git
diff --git a/inc/inc-functions.php b/inc/inc-functions.php
index ed3dba2a7c..54853e78ad 100644
--- a/inc/inc-functions.php
+++ b/inc/inc-functions.php
@@ -1,7 +1,7 @@
';
+ $GLOBALS['inc_pool'][$pool] = array();
}
// Setter for INC_POOL
-function SET_INC_POOL ($includePool) {
- $GLOBALS['inc_pool'] = (array) $includePool;
+function setIncludePool ($pool, $includePool) {
+ //* DEBUG: */ print __FUNCTION__.':pool='.$pool.'
';
+ $GLOBALS['inc_pool'][$pool] = (array) $includePool;
}
// Getter for INC_POOL
-function GET_INC_POOL () {
- return $GLOBALS['inc_pool'];
+function getIncludePool ($pool) {
+ //* DEBUG: */ print __FUNCTION__.':pool='.$pool.'
';
+ return $GLOBALS['inc_pool'][$pool];
}
// Count INC_POOL
-function COUNT_INC_POOL () {
- return count($GLOBALS['inc_pool']);
+function countIncludePool ($pool) {
+ //* DEBUG: */ print __FUNCTION__.':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: */ print __FUNCTION__.':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: */ print __FUNCTION__.':pool='.$pool.'
';
+ $GLOBALS['inc_pool'][$pool][] = (string) $inc;
}
// Remove an include file from INC_POOL
-function REMOVE_INC_FROM_POOL ($INC) {
+function removeIncludeFromPool ($pool, $inc) {
+ //* DEBUG: */ print __FUNCTION__.':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) {
// 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: */ print __FUNCTION__.':pool='.$pool.' - START
';
+ foreach (getIncludePool($pool) as $inc) {
+ //* DEBUG: */ print __FUNCTION__.':inc='.$inc.'
';
+ loadIncludeOnce($inc);
+ } // END - foreach
+ //* DEBUG: */ print __FUNCTION__.':pool='.$pool.' - END
';
+
+ // Remove it
+ initIncludePool($pool);
+}
+
+// Loads an include file and logs any missing files for debug purposes
+function loadInclude ($inc) {
+ // Do we have cache?
+ if (!isset($GLOBALS['inc_loaded'][$inc])) {
+ // Add the path. This is why we need a trailing slash in config.php
+ $GLOBALS['inc_loaded'][$inc] = getConfig('PATH') . $inc;
+
+ // Is the include file there?
+ if (!isIncludeReadable($inc)) {
+ // Not there so log it
+ debug_report_bug(sprintf("Include file %s not found.", $inc));
+ } // END - if
} // END - if
+
+ // Try to load it
+ include($GLOBALS['inc_loaded'][$inc]);
+}
+
+// Loads an include file once
+function loadIncludeOnce ($inc) {
+ // Remove double path
+ $inc = str_replace(getConfig('PATH'), '', $inc);
+
+ // Is it not loaded?
+ if (!isset($GLOBALS['load_once'][$inc])) {
+ // Mark it as loaded
+ $GLOBALS['load_once'][$inc] = 'loaded';
+
+ // Then try to load it
+ loadInclude($inc);
+ } // END - if
+}
+
+// Checks wether an include file (non-FQFN better) is readable
+function isIncludeReadable ($inc) {
+ // Do we have cache?
+ if (!isset($GLOBALS['inc_readable'][$inc])) {
+ // Remove double path
+ $inc = str_replace(getConfig('PATH'), '', $inc);
+
+ // Construct FQFN
+ $FQFN = getConfig('PATH') . $inc;
+
+ // Is it readable?
+ $GLOBALS['inc_readable'][$inc] = isFileReadable($FQFN);
+ } // END - if
+
+ // Return result
+ return $GLOBALS['inc_readable'][$inc];
}
// [EOF]