'; $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 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] ?>