Move filter interface into Horde_Text_Filter_Base class.
authorMichael M Slusarz <slusarz@curecanti.org>
Wed, 10 Feb 2010 20:20:32 +0000 (13:20 -0700)
committerMichael M Slusarz <slusarz@curecanti.org>
Thu, 11 Feb 2010 08:24:54 +0000 (01:24 -0700)
21 files changed:
framework/Text_Filter/lib/Horde/Text/Filter.php
framework/Text_Filter/lib/Horde/Text/Filter/Base.php [new file with mode: 0644]
framework/Text_Filter/lib/Horde/Text/Filter/Bbcode.php
framework/Text_Filter/lib/Horde/Text/Filter/Cleanascii.php
framework/Text_Filter/lib/Horde/Text/Filter/Cleanhtml.php
framework/Text_Filter/lib/Horde/Text/Filter/Dimsignature.php
framework/Text_Filter/lib/Horde/Text/Filter/Emails.php
framework/Text_Filter/lib/Horde/Text/Filter/Emoticons.php
framework/Text_Filter/lib/Horde/Text/Filter/Environment.php
framework/Text_Filter/lib/Horde/Text/Filter/Highlightquotes.php
framework/Text_Filter/lib/Horde/Text/Filter/Html2text.php
framework/Text_Filter/lib/Horde/Text/Filter/JavascriptMinify.php
framework/Text_Filter/lib/Horde/Text/Filter/Linkurls.php
framework/Text_Filter/lib/Horde/Text/Filter/Simplemarkup.php
framework/Text_Filter/lib/Horde/Text/Filter/Space2html.php
framework/Text_Filter/lib/Horde/Text/Filter/Tabs2spaces.php
framework/Text_Filter/lib/Horde/Text/Filter/Text2html.php
framework/Text_Filter/lib/Horde/Text/Filter/Words.php
framework/Text_Filter/lib/Horde/Text/Filter/Xss.php
framework/Text_Filter/package.xml
framework/Text_Filter_Csstidy/lib/Horde/Text/Filter/Csstidy.php

index c4b176e..5caab00 100644 (file)
 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 (file)
index 0000000..36c7514
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Horde_Text_Filter_Base:: is the parent class for defining a text filter.
+ *
+ * Copyright 1999-2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @author  Chuck Hagenbuch <chuck@horde.org>
+ * @author  Jan Schneider <jan@horde.org>
+ * @author  Michael Slusarz <slusarz@horde.org>
+ * @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;
+    }
+
+}
index 27b495b..f3e02dc 100644 (file)
@@ -57,7 +57,7 @@
  * @author  Carlos Pedrinaci <cpedrinaci@yahoo.es>
  * @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.
index 2818902..a91c56d 100644 (file)
@@ -16,7 +16,7 @@
  * @author  Jan Schneider <jan@horde.org>
  * @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.
index 92c8037..e0af762 100644 (file)
@@ -20,7 +20,7 @@
  * @author  Michael Slusarz <jan@horde.org>
  * @package Horde_Text
  */
-class Horde_Text_Filter_Cleanhtml extends Horde_Text_Filter
+class Horde_Text_Filter_Cleanhtml extends Horde_Text_Filter_Base
 {
     /**
      * Filter parameters.
index 46da506..3ee2b32 100644 (file)
@@ -11,7 +11,7 @@
  * @author  Jan Schneider <jan@horde.org>
  * @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.
index 25551bc..4c9fb53 100644 (file)
@@ -24,7 +24,7 @@
  * @author Jan Schneider <jan@horde.org>
  * @package Horde_Text
  */
-class Horde_Text_Filter_Emails extends Horde_Text_Filter
+class Horde_Text_Filter_Emails extends Horde_Text_Filter_Base
 {
     /**
      * Filter parameters.
index e8fd9c8..bb7a565 100644 (file)
@@ -16,7 +16,7 @@
  * @author  Marko Djukic <marko@oblo.com>
  * @package Horde_Text
  */
-class Horde_Text_Filter_Emoticons extends Horde_Text_Filter
+class Horde_Text_Filter_Emoticons extends Horde_Text_Filter_Base
 {
     /**
      * Filter parameters.
index fb4127d..58e918c 100644 (file)
@@ -12,7 +12,7 @@
  * @author  Jan Schneider <jan@horde.org>
  * @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.
index 17d34a2..c260ee3 100644 (file)
@@ -28,7 +28,7 @@
  * @author  Jan Schneider <jan@horde.org>
  * @package Horde_Text
  */
-class Horde_Text_Filter_Highlightquotes extends Horde_Text_Filter
+class Horde_Text_Filter_Highlightquotes extends Horde_Text_Filter_Base
 {
     /**
      * Filter parameters.
index f1fbe6f..a224862 100644 (file)
@@ -21,7 +21,7 @@
  * @author  Michael Slusarz <slusarz@horde.org>
  * @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.
index fb76019..c444340 100644 (file)
@@ -11,7 +11,7 @@
  * @author  Michael Slusarz <slusarz@horde.org>
  * @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.
index c317502..4fd1f23 100644 (file)
@@ -33,7 +33,7 @@
  * @author  Jan Schneider <jan@horde.org>
  * @package Horde_Text
  */
-class Horde_Text_Filter_Linkurls extends Horde_Text_Filter
+class Horde_Text_Filter_Linkurls extends Horde_Text_Filter_Base
 {
     /**
      * Filter parameters.
index 67ddd74..af81d03 100644 (file)
@@ -10,7 +10,7 @@
  * @author  Jan Schneider <jan@horde.org>
  * @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.
index 1da7575..8cb1148 100644 (file)
@@ -18,7 +18,7 @@
  * @author  Mathieu Arnold <mat@mat.cc>
  * @package Horde_Text
  */
-class Horde_Text_Filter_Space2html extends Horde_Text_Filter
+class Horde_Text_Filter_Space2html extends Horde_Text_Filter_Base
 {
     /**
      * Filter parameters.
index 7bd7dc7..fedebbd 100644 (file)
@@ -12,7 +12,7 @@
  * @author  Chuck Hagenbuch <chuck@horde.org>
  * @package Horde_Text
  */
-class Horde_Text_Filter_Tabs2spaces extends Horde_Text_Filter
+class Horde_Text_Filter_Tabs2spaces extends Horde_Text_Filter_Base
 {
     /**
      * Filter parameters.
index b2d8c5a..37fb760 100644 (file)
@@ -36,7 +36,7 @@
  * @author  Jan Schneider <jan@horde.org>
  * @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 ---> <br /> substitution. Everybody gets this; if
index 4bb71fc..6e6f536 100644 (file)
@@ -17,7 +17,7 @@
  * @author  Jan Schneider <jan@horde.org>
  * @package Horde_Text
  */
-class Horde_Text_Filter_Words extends Horde_Text_Filter
+class Horde_Text_Filter_Words extends Horde_Text_Filter_Base
 {
     /**
      * Filter parameters.
index 7e93108..9242ecf 100644 (file)
@@ -31,7 +31,7 @@
  * @author  Jan Schneider <jan@horde.org>
  * @package Horde_Text
  */
-class Horde_Text_Filter_Xss extends Horde_Text_Filter
+class Horde_Text_Filter_Xss extends Horde_Text_Filter_Base
 {
     /**
      * Filter parameters.
index b544cf8..06d7d7a 100644 (file)
@@ -52,6 +52,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
     <dir name="Horde">
      <dir name="Text">
       <dir name="Filter">
+       <file name="Base.php" role="php" />
        <file name="Bbcode.php" role="php" />
        <file name="Cleanascii.php" role="php" />
        <file name="Cleanhtml.php" role="php" />
@@ -197,6 +198,10 @@ http://pear.php.net/dtd/package-2.0.xsd">
     <min>1.5.4</min>
    </pearinstaller>
    <package>
+    <name>Core</name>
+    <channel>pear.horde.org</channel>
+   </package>
+   <package>
     <name>Util</name>
     <channel>pear.horde.org</channel>
    </package>
@@ -213,6 +218,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
  </dependencies>
  <phprelease>
   <filelist>
+   <install name="lib/Horde/Text/Filter/Base.php" as="Horde/Text/Filter/Base.php" />
    <install name="lib/Horde/Text/Filter/Bbcode.php" as="Horde/Text/Filter/Bbcode.php" />
    <install name="lib/Horde/Text/Filter/Cleanascii.php" as="Horde/Text/Filter/Cleanascii.php" />
    <install name="lib/Horde/Text/Filter/Cleanhtml.php" as="Horde/Text/Filter/Cleanhtml.php" />
index 086fdc3..99cf74c 100644 (file)
@@ -21,7 +21,7 @@
  * @author  Michael Slusarz <slusarz@horde.org>
  * @package Horde_Text
  */
-class Horde_Text_Filter_Csstidy extends Horde_Text_Filter
+class Horde_Text_Filter_Csstidy extends Horde_Text_Filter_Base
 {
     /**
      * Filter parameters.