}
// "Registers" a new filter function
-function REGISTER_FILTER ($filterName, $filterFunction, $silentAbort = true) {
+function REGISTER_FILTER ($filterName, $filterFunction, $silentAbort = true, $force = false) {
global $filters;
// Extend the filter function name
$filterFunction = sprintf("FILTER_%s", strtoupper($filterFunction));
// Is that filter already there?
- if (isset($filters[$filterName][$filterFunction])) {
+ if ((isset($filters[$filterName][$filterFunction])) && (!$force)) {
// Then abort here
if (!$silentAbort) {
ADD_FATAL(sprintf(FILTER_FAILED_ALREADY_ADDED, $filterFunction, $filterName));
}
// "Unregisters" a filter from the given chain
-function UNREGISTER_FILTER ($filterName, $filterFunction) {
+function UNREGISTER_FILTER ($filterName, $filterFunction, $force = false) {
global $filters;
+ // Extend the filter function name
+ $filterFunction = sprintf("FILTER_%s", strtoupper($filterFunction));
+
// Is that filter there?
- if (!isset($filters[$filterName][$filterFunction])) {
+ if ((!isset($filters[$filterName][$filterFunction])) && (!$force)) {
// Not found, so abort here
ADD_FATAL(sprintf(FILTER_FAILED_NOT_REMOVED, $filterFunction, $filterName));
return false;