';
$GLOBALS['inc_pool'][$pool] = array();
}
// Setter for INC_POOL
function setIncludePool ($pool, $includePool) {
//* DEBUG: */ print __FUNCTION__.':pool='.$pool.'
';
$GLOBALS['inc_pool'][$pool] = (array) $includePool;
}
// Getter for INC_POOL
function getIncludePool ($pool) {
//* DEBUG: */ print __FUNCTION__.':pool='.$pool.'
';
return $GLOBALS['inc_pool'][$pool];
}
// Count INC_POOL
function countIncludePool ($pool) {
//* DEBUG: */ print __FUNCTION__.':pool='.$pool.'
';
return count($GLOBALS['inc_pool'][$pool]);
}
// Merge INC_POOL into given
function mergeIncludePool ($pool, $includePool) {
//* DEBUG: */ print __FUNCTION__.':pool='.$pool.'
';
setIncludePool($pool, merge_array(getIncludePool($pool), $includePool));
}
// Add single include file to INC_POOL
function addIncludeToPool ($pool, $inc) {
//* DEBUG: */ print __FUNCTION__.':pool='.$pool.'
';
$GLOBALS['inc_pool'][$pool][] = (string) $inc;
}
// Remove an include file from INC_POOL
function removeIncludeFromPool ($pool, $inc) {
//* DEBUG: */ print __FUNCTION__.':pool='.$pool.'
';
// First look it up
$key = array_search($inc, getIncludePool($pool));
// Is it valid?
if ($key !== false) {
// Then remove it
unset($GLOBALS['inc_pool'][$pool][$key]);
// And sort the list
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
require($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]
?>