X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Ffilter-functions.php;h=4d766f980ee59f7b7ad4e581242cd1390c7fdbc2;hb=9b8fe454a575a1f000b00bc7ca37eaad6d59d21a;hp=613760b858d69661d6eabe8d930d92c6b8de7942;hpb=1c2d077de1940e35b00ad895e75039949c979cae;p=mailer.git diff --git a/inc/filter-functions.php b/inc/filter-functions.php index 613760b858..4d766f980e 100644 --- a/inc/filter-functions.php +++ b/inc/filter-functions.php @@ -225,7 +225,7 @@ function registerFilter ($filterName, $filterFunction, $silentAbort = true, $for // "Unregisters" a filter from the given chain function unregisterFilter ($F, $L, $filterName, $filterFunction, $force = false, $dry_run = false) { - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ENTRY: F=' . $F . ',L=' . $L . ',filterName=' . $filterName . ',filterFunction=' . $filterFunction . ',force=' . intval($force) . ',dry=' . intval($dry_run) . ' - ENTERED!'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ENTRY: F=' . $F . ',L=' . $L . ',filterName=' . $filterName . ',filterFunction=' . $filterFunction . ',force=' . intval($force) . ',dry_run=' . intval($dry_run) . ' - ENTERED!'); // Extend the filter function name only if not loaded from database if (!isset($GLOBALS['cache_array']['filter']['loaded'][$filterName][$filterFunction])) { @@ -246,12 +246,12 @@ function unregisterFilter ($F, $L, $filterName, $filterFunction, $force = false, $GLOBALS['cache_array']['filter']['chains'][$filterName][$filterFunction] = 'R'; } // END - if - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ENTRY: F=' . $F . ',L=' . $L . ',filterName=' . $filterName . ',filterFunction=' . $filterFunction . ',force=' . intval($force) . ',dry=' . intval($dry_run) . ' - EXIT!'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ENTRY: F=' . $F . ',L=' . $L . ',filterName=' . $filterName . ',filterFunction=' . $filterFunction . ',force=' . intval($force) . ',dry_run=' . intval($dry_run) . ' - EXIT!'); } -// "Runs" the given filters, data is optional and can be any type of data -function runFilterChain ($filterName, $data = null) { - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'filterName=' . $filterName . ',data[]=' . gettype($data) . ' - ENTERED!'); +// "Runs" the given filters, filterData is optional and can be any type of data +function runFilterChain ($filterName, $filterData = null) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'filterName=' . $filterName . ',filterData[]=' . gettype($filterData) . ' - ENTERED!'); // Is that filter chain there? if (!isset($GLOBALS['cache_array']['filter']['chains'][$filterName])) { @@ -262,11 +262,11 @@ function runFilterChain ($filterName, $data = null) { } // END - if // Abort here and return content - return $data; + return $filterData; } // END - if // Default return value - $returnValue = $data; + $returnValue = $filterData; // Then run all filters foreach ($GLOBALS['cache_array']['filter']['chains'][$filterName] as $filterFunction => $active) { @@ -297,7 +297,7 @@ function runFilterChain ($filterName, $data = null) { } // END - foreach // Return the filtered content - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'filterName=' . $filterName . ',data[]=' . gettype($data) . ',returnValue[]=' . gettype($returnValue) . ' - EXIT!'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'filterName=' . $filterName . ',filterData[]=' . gettype($filterData) . ',returnValue[]=' . gettype($returnValue) . ' - EXIT!'); return $returnValue; } @@ -343,5 +343,30 @@ function prepareFilterArray () { $GLOBALS['cache_array']['filter'] = $filterArray; } +// Loads filter for given extension if present. This function will silently +// ignore absent filter files. +function loadExtensionFilters ($ext_name) { + // Do we have cache entry? + if (!isset($GLOBALS[__FUNCTION__][$ext_name])) { + // Default is not found + $GLOBALS[__FUNCTION__][$ext_name] = false; + + // Construct include file name + $incFileName = sprintf("inc/filter/%s_filter.php", $ext_name); + + // Is the include file readable? + if (isIncludeReadable($incFileName)) { + // Load the include file + loadIncludeOnce($incFileName); + + // Mark the file as loaded + $GLOBALS[__FUNCTION__][$ext_name] = true; + } elseif (isDebugModeEnabled()) { + // Log missing file + logDebugMessage(__FUNCTION__, __LINE__, 'Include file ' . $incFileName . ' for extension ' . $ext_name . ' is missing.'); + } + } // END - if +} + // [EOF] ?>