From 9326547e493b8025bec6ddd708d2769d9af12167 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Wed, 10 Feb 2010 13:20:32 -0700 Subject: [PATCH] Move filter interface into Horde_Text_Filter_Base class. --- framework/Text_Filter/lib/Horde/Text/Filter.php | 53 +---------------- .../Text_Filter/lib/Horde/Text/Filter/Base.php | 68 ++++++++++++++++++++++ .../Text_Filter/lib/Horde/Text/Filter/Bbcode.php | 2 +- .../lib/Horde/Text/Filter/Cleanascii.php | 2 +- .../lib/Horde/Text/Filter/Cleanhtml.php | 2 +- .../lib/Horde/Text/Filter/Dimsignature.php | 2 +- .../Text_Filter/lib/Horde/Text/Filter/Emails.php | 2 +- .../lib/Horde/Text/Filter/Emoticons.php | 2 +- .../lib/Horde/Text/Filter/Environment.php | 2 +- .../lib/Horde/Text/Filter/Highlightquotes.php | 2 +- .../lib/Horde/Text/Filter/Html2text.php | 2 +- .../lib/Horde/Text/Filter/JavascriptMinify.php | 2 +- .../Text_Filter/lib/Horde/Text/Filter/Linkurls.php | 2 +- .../lib/Horde/Text/Filter/Simplemarkup.php | 2 +- .../lib/Horde/Text/Filter/Space2html.php | 2 +- .../lib/Horde/Text/Filter/Tabs2spaces.php | 2 +- .../lib/Horde/Text/Filter/Text2html.php | 6 +- .../Text_Filter/lib/Horde/Text/Filter/Words.php | 2 +- .../Text_Filter/lib/Horde/Text/Filter/Xss.php | 2 +- framework/Text_Filter/package.xml | 6 ++ .../lib/Horde/Text/Filter/Csstidy.php | 2 +- 21 files changed, 95 insertions(+), 72 deletions(-) create mode 100644 framework/Text_Filter/lib/Horde/Text/Filter/Base.php diff --git a/framework/Text_Filter/lib/Horde/Text/Filter.php b/framework/Text_Filter/lib/Horde/Text/Filter.php index c4b176e1d..5caab0020 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter.php @@ -14,13 +14,6 @@ class Horde_Text_Filter { /** - * Filter parameters. - * - * @var array - */ - protected $_params = array(); - - /** * Attempts to return a concrete instance based on $driver. * * @param mixed $driver The type of concrete subclass to return. @@ -52,16 +45,6 @@ class Horde_Text_Filter } /** - * Constructor. - * - * @param array $params Any parameters that the filter instance needs. - */ - public function __construct($params = array()) - { - $this->_params = array_merge($this->_params, $params); - } - - /** * Applies a set of patterns to a block of text. * * @param string $text The text to filter. @@ -69,7 +52,7 @@ class Horde_Text_Filter * * @return string The transformed text. */ - public function filter($text, $filters = array(), $params = array()) + static public function filter($text, $filters = array(), $params = array()) { if (!is_array($filters)) { $filters = array($filters); @@ -111,38 +94,4 @@ class Horde_Text_Filter return $text; } - /** - * Executes any code necessaray before applying the filter patterns. - * - * @param string $text The text before the filtering. - * - * @return string The modified text. - */ - public function preProcess($text) - { - return $text; - } - - /** - * Returns a hash with replace patterns. - * - * @return array Patterns hash. - */ - public function getPatterns() - { - return array(); - } - - /** - * Executes any code necessaray after applying the filter patterns. - * - * @param string $text The text after the filtering. - * - * @return string The modified text. - */ - public function postProcess($text) - { - return $text; - } - } diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Base.php b/framework/Text_Filter/lib/Horde/Text/Filter/Base.php new file mode 100644 index 000000000..36c751461 --- /dev/null +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Base.php @@ -0,0 +1,68 @@ + + * @author Jan Schneider + * @author Michael Slusarz + * @package Horde_Text_Filter + */ +class Horde_Text_Filter_Base +{ + /** + * Filter parameters. + * + * @var array + */ + protected $_params = array(); + + /** + * Constructor. + * + * @param array $params Any parameters that the filter instance needs. + */ + public function __construct($params = array()) + { + $this->_params = array_merge($this->_params, $params); + } + + /** + * Executes any code necessaray before applying the filter patterns. + * + * @param string $text The text before the filtering. + * + * @return string The modified text. + */ + public function preProcess($text) + { + return $text; + } + + /** + * Returns a hash with replace patterns. + * + * @return array Patterns hash. + */ + public function getPatterns() + { + return array(); + } + + /** + * Executes any code necessaray after applying the filter patterns. + * + * @param string $text The text after the filtering. + * + * @return string The modified text. + */ + public function postProcess($text) + { + return $text; + } + +} diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Bbcode.php b/framework/Text_Filter/lib/Horde/Text/Filter/Bbcode.php index 27b495bfb..f3e02dcf7 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Bbcode.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Bbcode.php @@ -57,7 +57,7 @@ * @author Carlos Pedrinaci * @package Horde_Text_Filter */ -class Horde_Text_Filter_Bbcode extends Horde_Text_Filter +class Horde_Text_Filter_Bbcode extends Horde_Text_Filter_Base { /** * Filter parameters. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Cleanascii.php b/framework/Text_Filter/lib/Horde/Text/Filter/Cleanascii.php index 28189026e..a91c56d15 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Cleanascii.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Cleanascii.php @@ -16,7 +16,7 @@ * @author Jan Schneider * @package Horde_Text */ -class Horde_Text_Filter_Cleanascii extends Horde_Text_Filter +class Horde_Text_Filter_Cleanascii extends Horde_Text_Filter_Base { /** * Executes any code necessary before applying the filter patterns. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Cleanhtml.php b/framework/Text_Filter/lib/Horde/Text/Filter/Cleanhtml.php index 92c803786..e0af7629e 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Cleanhtml.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Cleanhtml.php @@ -20,7 +20,7 @@ * @author Michael Slusarz * @package Horde_Text */ -class Horde_Text_Filter_Cleanhtml extends Horde_Text_Filter +class Horde_Text_Filter_Cleanhtml extends Horde_Text_Filter_Base { /** * Filter parameters. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Dimsignature.php b/framework/Text_Filter/lib/Horde/Text/Filter/Dimsignature.php index 46da506e7..3ee2b32d7 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Dimsignature.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Dimsignature.php @@ -11,7 +11,7 @@ * @author Jan Schneider * @package Horde_Text */ -class Horde_Text_Filter_Dimsignature extends Horde_Text_Filter +class Horde_Text_Filter_Dimsignature extends Horde_Text_Filter_Base { /** * Executes any code necessary after applying the filter patterns. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Emails.php b/framework/Text_Filter/lib/Horde/Text/Filter/Emails.php index 25551bc29..4c9fb53a0 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Emails.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Emails.php @@ -24,7 +24,7 @@ * @author Jan Schneider * @package Horde_Text */ -class Horde_Text_Filter_Emails extends Horde_Text_Filter +class Horde_Text_Filter_Emails extends Horde_Text_Filter_Base { /** * Filter parameters. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Emoticons.php b/framework/Text_Filter/lib/Horde/Text/Filter/Emoticons.php index e8fd9c861..bb7a5651e 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Emoticons.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Emoticons.php @@ -16,7 +16,7 @@ * @author Marko Djukic * @package Horde_Text */ -class Horde_Text_Filter_Emoticons extends Horde_Text_Filter +class Horde_Text_Filter_Emoticons extends Horde_Text_Filter_Base { /** * Filter parameters. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Environment.php b/framework/Text_Filter/lib/Horde/Text/Filter/Environment.php index fb4127d32..58e918ccb 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Environment.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Environment.php @@ -12,7 +12,7 @@ * @author Jan Schneider * @package Horde_Text */ -class Horde_Text_Filter_Environment extends Horde_Text_Filter +class Horde_Text_Filter_Environment extends Horde_Text_Filter_Base { /** * Returns a hash with replace patterns. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Highlightquotes.php b/framework/Text_Filter/lib/Horde/Text/Filter/Highlightquotes.php index 17d34a2d1..c260ee3d9 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Highlightquotes.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Highlightquotes.php @@ -28,7 +28,7 @@ * @author Jan Schneider * @package Horde_Text */ -class Horde_Text_Filter_Highlightquotes extends Horde_Text_Filter +class Horde_Text_Filter_Highlightquotes extends Horde_Text_Filter_Base { /** * Filter parameters. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Html2text.php b/framework/Text_Filter/lib/Horde/Text/Filter/Html2text.php index f1fbe6f74..a224862b9 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Html2text.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Html2text.php @@ -21,7 +21,7 @@ * @author Michael Slusarz * @package Horde_Text */ -class Horde_Text_Filter_Html2text extends Horde_Text_Filter +class Horde_Text_Filter_Html2text extends Horde_Text_Filter_Base { /** * The list of links contained in the message. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/JavascriptMinify.php b/framework/Text_Filter/lib/Horde/Text/Filter/JavascriptMinify.php index fb7601949..c444340eb 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/JavascriptMinify.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/JavascriptMinify.php @@ -11,7 +11,7 @@ * @author Michael Slusarz * @package Horde_Text_Filter */ -class Horde_Text_Filter_JavascriptMinify extends Horde_Text_Filter +class Horde_Text_Filter_JavascriptMinify extends Horde_Text_Filter_Base { /** * Filter parameters. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Linkurls.php b/framework/Text_Filter/lib/Horde/Text/Filter/Linkurls.php index c3175028f..4fd1f23ec 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Linkurls.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Linkurls.php @@ -33,7 +33,7 @@ * @author Jan Schneider * @package Horde_Text */ -class Horde_Text_Filter_Linkurls extends Horde_Text_Filter +class Horde_Text_Filter_Linkurls extends Horde_Text_Filter_Base { /** * Filter parameters. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Simplemarkup.php b/framework/Text_Filter/lib/Horde/Text/Filter/Simplemarkup.php index 67ddd742e..af81d03fa 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Simplemarkup.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Simplemarkup.php @@ -10,7 +10,7 @@ * @author Jan Schneider * @package Horde_Text */ -class Horde_Text_Filter_Simplemarkup extends Horde_Text_Filter +class Horde_Text_Filter_Simplemarkup extends Horde_Text_Filter_Base { /** * Returns a hash with replace patterns. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Space2html.php b/framework/Text_Filter/lib/Horde/Text/Filter/Space2html.php index 1da7575c5..8cb1148b1 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Space2html.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Space2html.php @@ -18,7 +18,7 @@ * @author Mathieu Arnold * @package Horde_Text */ -class Horde_Text_Filter_Space2html extends Horde_Text_Filter +class Horde_Text_Filter_Space2html extends Horde_Text_Filter_Base { /** * Filter parameters. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Tabs2spaces.php b/framework/Text_Filter/lib/Horde/Text/Filter/Tabs2spaces.php index 7bd7dc76a..fedebbd7a 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Tabs2spaces.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Tabs2spaces.php @@ -12,7 +12,7 @@ * @author Chuck Hagenbuch * @package Horde_Text */ -class Horde_Text_Filter_Tabs2spaces extends Horde_Text_Filter +class Horde_Text_Filter_Tabs2spaces extends Horde_Text_Filter_Base { /** * Filter parameters. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Text2html.php b/framework/Text_Filter/lib/Horde/Text/Filter/Text2html.php index b2d8c5af2..37fb7606e 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Text2html.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Text2html.php @@ -36,7 +36,7 @@ * @author Jan Schneider * @package Horde_Text */ -class Horde_Text_Filter_Text2html extends Horde_Text_Filter +class Horde_Text_Filter_Text2html extends Horde_Text_Filter_Base { const PASSTHRU = 0; const SYNTAX = 1; @@ -108,7 +108,7 @@ class Horde_Text_Filter_Text2html extends Horde_Text_Filter if ($this->_params['parselevel'] < self::MICRO_LINKURL) { $filters['emails'] = array('encode' => true); } - $text = parent::filter($text, array_keys($filters), array_values($filters)); + $text = Horde_Text_Filter::filter($text, array_keys($filters), array_values($filters)); } /* For level MICRO or NOHTML, start with htmlspecialchars(). */ @@ -130,7 +130,7 @@ class Horde_Text_Filter_Text2html extends Horde_Text_Filter $text = Horde_Text_Filter_Emails::decode($text); } - $text = parent::filter($text, 'space2html'); + $text = Horde_Text_Filter::filter($text, 'space2html'); } /* Do the newline --->
substitution. Everybody gets this; if diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Words.php b/framework/Text_Filter/lib/Horde/Text/Filter/Words.php index 4bb71fc83..6e6f53603 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Words.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Words.php @@ -17,7 +17,7 @@ * @author Jan Schneider * @package Horde_Text */ -class Horde_Text_Filter_Words extends Horde_Text_Filter +class Horde_Text_Filter_Words extends Horde_Text_Filter_Base { /** * Filter parameters. diff --git a/framework/Text_Filter/lib/Horde/Text/Filter/Xss.php b/framework/Text_Filter/lib/Horde/Text/Filter/Xss.php index 7e9310864..9242ecfa1 100644 --- a/framework/Text_Filter/lib/Horde/Text/Filter/Xss.php +++ b/framework/Text_Filter/lib/Horde/Text/Filter/Xss.php @@ -31,7 +31,7 @@ * @author Jan Schneider * @package Horde_Text */ -class Horde_Text_Filter_Xss extends Horde_Text_Filter +class Horde_Text_Filter_Xss extends Horde_Text_Filter_Base { /** * Filter parameters. diff --git a/framework/Text_Filter/package.xml b/framework/Text_Filter/package.xml index b544cf8bb..06d7d7ad3 100644 --- a/framework/Text_Filter/package.xml +++ b/framework/Text_Filter/package.xml @@ -52,6 +52,7 @@ http://pear.php.net/dtd/package-2.0.xsd"> + @@ -197,6 +198,10 @@ http://pear.php.net/dtd/package-2.0.xsd"> 1.5.4 + Core + pear.horde.org + + Util pear.horde.org @@ -213,6 +218,7 @@ http://pear.php.net/dtd/package-2.0.xsd"> + diff --git a/framework/Text_Filter_Csstidy/lib/Horde/Text/Filter/Csstidy.php b/framework/Text_Filter_Csstidy/lib/Horde/Text/Filter/Csstidy.php index 086fdc35c..99cf74c5a 100644 --- a/framework/Text_Filter_Csstidy/lib/Horde/Text/Filter/Csstidy.php +++ b/framework/Text_Filter_Csstidy/lib/Horde/Text/Filter/Csstidy.php @@ -21,7 +21,7 @@ * @author Michael Slusarz * @package Horde_Text */ -class Horde_Text_Filter_Csstidy extends Horde_Text_Filter +class Horde_Text_Filter_Csstidy extends Horde_Text_Filter_Base { /** * Filter parameters. -- 2.11.0