<?php
/************************************************************************
- * MXChange v0.2.1 Start: 03/10/2009 *
- * =============== Last change: 03/10/2009 *
+ * Mailer v0.2.1-FINAL Start: 03/10/2009 *
+ * =================== Last change: 03/10/2009 *
* *
* -------------------------------------------------------------------- *
* File : inc-functions.php *
* -------------------------------------------------------------------- *
* Kurzbeschreibung : Spezielle Funktionen fuer Include-Dateien *
* -------------------------------------------------------------------- *
- * $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 *
+ * Copyright (c) 2003 - 2009 by Roland Haeder *
+ * Copyright (c) 2009 - 2016 by Mailer Developer Team *
+ * For more information visit: http://mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
// Some security stuff...
if (!defined('__SECURITY')) {
- $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
- require($INC);
-}
-
-// Check if our config file is writeable or not
-function isIncludeWriteable ($inc) {
- // Generate FQFN
- $FQFN = sprintf("%sinc/%s.php", getConfig('PATH'), $inc);
-
- // Abort by simple test
- if ((isFileReadable($FQFN)) && (!is_writeable($FQFN))) {
- return false;
- } // END - if
-
- // Test write-access on directory
- return is_writeable(dirname($FQFN));
-}
+ die();
+} // END - if
// Init INC_POOL
-function INIT_INC_POOL () {
- $GLOBALS['inc_pool'] = array();
+function initIncludePool ($poolName) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'poolName=' . $poolName);
+ $GLOBALS['inc_pool'][$poolName] = array();
}
// Setter for INC_POOL
-function SET_INC_POOL ($includePool) {
- $GLOBALS['inc_pool'] = (array) $includePool;
+function setIncludePool ($poolName, $includePool) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'poolName=' . $poolName);
+ $GLOBALS['inc_pool'][$poolName] = (array) $includePool;
}
// Getter for INC_POOL
-function GET_INC_POOL () {
- return $GLOBALS['inc_pool'];
+function getIncludePool ($poolName) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'poolName=' . $poolName);
+ // Default is empty pool
+ $poolArray = array();
+
+ // Is it set?
+ if (isset($GLOBALS['inc_pool'][$poolName])) {
+ // Return found pool (array)
+ $poolArray = $GLOBALS['inc_pool'][$poolName];
+ } // END - if
+
+ // Return it
+ return $poolArray;
}
// Count INC_POOL
-function COUNT_INC_POOL () {
- return count($GLOBALS['inc_pool']);
+function countIncludePool ($poolNAme) {
+ // Is the pool initialized?
+ if (!isset($GLOBALS['inc_pool'][$poolNAme])) {
+ // Not initialized with initIncludePool()
+ reportBug(__FUNCTION__, __LINE__, sprintf("Pool %s is not initialized.", $poolNAme));
+ } // END - if
+
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'poolNAme=' . $poolNAme);
+ return count($GLOBALS['inc_pool'][$poolNAme]);
}
// Merge INC_POOL into given
-function MERGE_INC_POOL ($includePool) {
- SET_INC_POOL(merge_array(GET_INC_POOL(), $includePool));
+function mergeIncludePool ($poolName, $includeArray) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'poolNAme=' . $poolNAme);
+ setIncludePool($poolName, merge_array(getIncludePool($poolName), $includeArray));
}
// Add single include file to INC_POOL
-function ADD_INC_TO_POOL ($INC) {
- $GLOBALS['inc_pool'][] = (string) $INC;
+function addIncludeToPool ($poolName, $includeFileName) {
+ // Is the pool initialized?
+ if (!isset($GLOBALS['inc_pool'][$poolName])) {
+ // Not initialized with initIncludePool()
+ reportBug(__FUNCTION__, __LINE__, sprintf("Pool %s is not initialized, not adding include %s.", $poolName, $includeFileName));
+ } // END - if
+
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'poolNAme=' . $poolNAme);
+ array_push($GLOBALS['inc_pool'][$poolName], $includeFileName);
}
// Remove an include file from INC_POOL
-function REMOVE_INC_FROM_POOL ($INC) {
+function removeIncludeFromPool ($poolNAme, $inc) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'poolNAme=' . $poolNAme);
// First look it up
- $key = array_search($INC, GET_INC_POOL());
+ $key = array_search($inc, getIncludePool($poolNAme));
// Is it valid?
- if ($key !== false) {
+ if ($key !== FALSE) {
// Then remove it
- unset($GLOBALS['inc_pool'][$key]);
+ unset($GLOBALS['inc_pool'][$poolNAme][$key]);
// And sort the list
- asort($GLOBALS['inc_pool']);
+ asort($GLOBALS['inc_pool'][$poolNAme]);
} // END - if
}
// Load the whole include pool
-function LOAD_INC_POOL () {
- foreach (GET_INC_POOL() as $inc) {
- loadIncludeOnce($inc);
+function loadIncludePool ($poolName) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'poolNAme=' . $poolNAme.' - START');
+ foreach (getIncludePool($poolName) as $includeFileName) {
+ //* DEBUG: */ debugOutput(__FUNCTION__.':includeFileName='.$includeFileName);
+ loadIncludeOnce($includeFileName);
} // END - foreach
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'poolNAme=' . $poolNAme.' - END');
+
+ // Remove it
+ initIncludePool($poolName);
+}
+
+// Loads an include file and logs any missing files for debug purposes
+function loadInclude ($includeFileName) {
+ // Is there cache?
+ if (!isset($GLOBALS['inc_loaded'][$includeFileName])) {
+ // Is the include file there?
+ if (!isIncludeReadable($includeFileName)) {
+ // Not there so log it
+ reportBug(__FUNCTION__, __LINE__, sprintf('Include file %s not found or deprecated.', $includeFileName));
+ } // END - if
+
+ // Add the path. This is why we need a trailing slash in config.php
+ $GLOBALS['inc_loaded'][$includeFileName] = getPath() . $includeFileName;
+ } // END - if
+
+ // Try to load it
+ include($GLOBALS['inc_loaded'][$includeFileName]);
+}
+
+// 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]