Add support for preg_replace_callback filters
to support changes needed for DTC to be moved
This commit is contained in:
@ -48,7 +48,20 @@ class Filters {
|
|||||||
}
|
}
|
||||||
foreach ( self::$filters as $pattern ) {
|
foreach ( self::$filters as $pattern ) {
|
||||||
if ( $pattern['enabled'] || false !== $force ) {
|
if ( $pattern['enabled'] || false !== $force ) {
|
||||||
$data = trim( preg_replace( $pattern['match'], $pattern['replace'], $data ) );
|
if ( ! empty( $pattern['callback'] ) && is_array( $pattern['callback'] ) ) {
|
||||||
|
$result = preg_replace_callback(
|
||||||
|
$pattern['match'],
|
||||||
|
$pattern['callback'],
|
||||||
|
$data
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$result = preg_replace(
|
||||||
|
$pattern['match'],
|
||||||
|
$pattern['replace'],
|
||||||
|
$data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$data = trim( $result );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $data;
|
return $data;
|
||||||
@ -59,13 +72,20 @@ class Filters {
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
if ( self::$filters[$name]['enabled'] || false !== $force ) {
|
if ( self::$filters[$name]['enabled'] || false !== $force ) {
|
||||||
$data = trim(
|
if ( ! empty( self::$filters[$name]['callback'] ) && is_array( self::$filters[$name]['callback'] ) ) {
|
||||||
preg_replace(
|
$result = preg_replace_callback(
|
||||||
|
self::$filters[$name]['match'],
|
||||||
|
self::$filters[$name]['callback'],
|
||||||
|
$data
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$result = preg_replace(
|
||||||
self::$filters[$name]['match'],
|
self::$filters[$name]['match'],
|
||||||
self::$filters[$name]['replace'],
|
self::$filters[$name]['replace'],
|
||||||
$data
|
$data
|
||||||
)
|
);
|
||||||
);
|
}
|
||||||
|
$data = trim( $result );
|
||||||
}
|
}
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
@ -78,12 +98,21 @@ class Filters {
|
|||||||
* @param {string} [$replace]
|
* @param {string} [$replace]
|
||||||
* @param {bool} [$enabled] - Whether the filter should be enabled or disabled.
|
* @param {bool} [$enabled] - Whether the filter should be enabled or disabled.
|
||||||
*/
|
*/
|
||||||
public static function add( $filterName, $match, $replace, $enabled = false ) {
|
public static function add( $filterName, $match, $replace, $enabled = false, $callback = false ) {
|
||||||
if ( isset( self::$filters[$filterName] ) ) {
|
if ( isset( self::$filters[$filterName] ) ) {
|
||||||
Debug::error( "Filter already exists: $filterName" );
|
Debug::error( "Filter already exists: $filterName" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
self::$filters[$filterName] = [
|
if ( $callback === true ) {
|
||||||
|
self::$filters[ $filterName ] = [
|
||||||
|
'name' => $filterName,
|
||||||
|
'match' => $match,
|
||||||
|
'callback' => $replace,
|
||||||
|
'enabled' => $enabled,
|
||||||
|
];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
self::$filters[ $filterName ] = [
|
||||||
'name' => $filterName,
|
'name' => $filterName,
|
||||||
'match' => $match,
|
'match' => $match,
|
||||||
'replace' => $replace,
|
'replace' => $replace,
|
||||||
|
Reference in New Issue
Block a user