diff options
Diffstat (limited to 'modules/gallery/libraries/HTMLPurifier/HTMLPurifier.php')
| -rw-r--r-- | modules/gallery/libraries/HTMLPurifier/HTMLPurifier.php | 237 | 
1 files changed, 0 insertions, 237 deletions
| diff --git a/modules/gallery/libraries/HTMLPurifier/HTMLPurifier.php b/modules/gallery/libraries/HTMLPurifier/HTMLPurifier.php deleted file mode 100644 index 27d0e726..00000000 --- a/modules/gallery/libraries/HTMLPurifier/HTMLPurifier.php +++ /dev/null @@ -1,237 +0,0 @@ -<?php - -/*! @mainpage - * - * HTML Purifier is an HTML filter that will take an arbitrary snippet of - * HTML and rigorously test, validate and filter it into a version that - * is safe for output onto webpages. It achieves this by: - * - *  -# Lexing (parsing into tokens) the document, - *  -# Executing various strategies on the tokens: - *      -# Removing all elements not in the whitelist, - *      -# Making the tokens well-formed, - *      -# Fixing the nesting of the nodes, and - *      -# Validating attributes of the nodes; and - *  -# Generating HTML from the purified tokens. - * - * However, most users will only need to interface with the HTMLPurifier - * and HTMLPurifier_Config. - */ - -/* -    HTML Purifier 3.3.0 - Standards Compliant HTML Filtering -    Copyright (C) 2006-2008 Edward Z. Yang - -    This library is free software; you can redistribute it and/or -    modify it under the terms of the GNU Lesser General Public -    License as published by the Free Software Foundation; either -    version 2.1 of the License, or (at your option) any later version. - -    This library is distributed in the hope that it will be useful, -    but WITHOUT ANY WARRANTY; without even the implied warranty of -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -    Lesser General Public License for more details. - -    You should have received a copy of the GNU Lesser General Public -    License along with this library; if not, write to the Free Software -    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - */ - -/** - * Facade that coordinates HTML Purifier's subsystems in order to purify HTML. - * - * @note There are several points in which configuration can be specified - *       for HTML Purifier.  The precedence of these (from lowest to - *       highest) is as follows: - *          -# Instance: new HTMLPurifier($config) - *          -# Invocation: purify($html, $config) - *       These configurations are entirely independent of each other and - *       are *not* merged (this behavior may change in the future). - * - * @todo We need an easier way to inject strategies using the configuration - *       object. - */ -class HTMLPurifier -{ - -    /** Version of HTML Purifier */ -    public $version = '3.3.0'; - -    /** Constant with version of HTML Purifier */ -    const VERSION = '3.3.0'; - -    /** Global configuration object */ -    public $config; - -    /** Array of extra HTMLPurifier_Filter objects to run on HTML, for backwards compatibility */ -    private $filters = array(); - -    /** Single instance of HTML Purifier */ -    private static $instance; - -    protected $strategy, $generator; - -    /** -     * Resultant HTMLPurifier_Context of last run purification. Is an array -     * of contexts if the last called method was purifyArray(). -     */ -    public $context; - -    /** -     * Initializes the purifier. -     * @param $config Optional HTMLPurifier_Config object for all instances of -     *                the purifier, if omitted, a default configuration is -     *                supplied (which can be overridden on a per-use basis). -     *                The parameter can also be any type that -     *                HTMLPurifier_Config::create() supports. -     */ -    public function __construct($config = null) { - -        $this->config = HTMLPurifier_Config::create($config); - -        $this->strategy     = new HTMLPurifier_Strategy_Core(); - -    } - -    /** -     * Adds a filter to process the output. First come first serve -     * @param $filter HTMLPurifier_Filter object -     */ -    public function addFilter($filter) { -        trigger_error('HTMLPurifier->addFilter() is deprecated, use configuration directives in the Filter namespace or Filter.Custom', E_USER_WARNING); -        $this->filters[] = $filter; -    } - -    /** -     * Filters an HTML snippet/document to be XSS-free and standards-compliant. -     * -     * @param $html String of HTML to purify -     * @param $config HTMLPurifier_Config object for this operation, if omitted, -     *                defaults to the config object specified during this -     *                object's construction. The parameter can also be any type -     *                that HTMLPurifier_Config::create() supports. -     * @return Purified HTML -     */ -    public function purify($html, $config = null) { - -        // :TODO: make the config merge in, instead of replace -        $config = $config ? HTMLPurifier_Config::create($config) : $this->config; - -        // implementation is partially environment dependant, partially -        // configuration dependant -        $lexer = HTMLPurifier_Lexer::create($config); - -        $context = new HTMLPurifier_Context(); - -        // setup HTML generator -        $this->generator = new HTMLPurifier_Generator($config, $context); -        $context->register('Generator', $this->generator); - -        // set up global context variables -        if ($config->get('Core.CollectErrors')) { -            // may get moved out if other facilities use it -            $language_factory = HTMLPurifier_LanguageFactory::instance(); -            $language = $language_factory->create($config, $context); -            $context->register('Locale', $language); - -            $error_collector = new HTMLPurifier_ErrorCollector($context); -            $context->register('ErrorCollector', $error_collector); -        } - -        // setup id_accumulator context, necessary due to the fact that -        // AttrValidator can be called from many places -        $id_accumulator = HTMLPurifier_IDAccumulator::build($config, $context); -        $context->register('IDAccumulator', $id_accumulator); - -        $html = HTMLPurifier_Encoder::convertToUTF8($html, $config, $context); - -        // setup filters -        $filter_flags = $config->getBatch('Filter'); -        $custom_filters = $filter_flags['Custom']; -        unset($filter_flags['Custom']); -        $filters = array(); -        foreach ($filter_flags as $filter => $flag) { -            if (!$flag) continue; -            if (strpos($filter, '.') !== false) continue; -            $class = "HTMLPurifier_Filter_$filter"; -            $filters[] = new $class; -        } -        foreach ($custom_filters as $filter) { -            // maybe "HTMLPurifier_Filter_$filter", but be consistent with AutoFormat -            $filters[] = $filter; -        } -        $filters = array_merge($filters, $this->filters); -        // maybe prepare(), but later - -        for ($i = 0, $filter_size = count($filters); $i < $filter_size; $i++) { -            $html = $filters[$i]->preFilter($html, $config, $context); -        } - -        // purified HTML -        $html = -            $this->generator->generateFromTokens( -                // list of tokens -                $this->strategy->execute( -                    // list of un-purified tokens -                    $lexer->tokenizeHTML( -                        // un-purified HTML -                        $html, $config, $context -                    ), -                    $config, $context -                ) -            ); - -        for ($i = $filter_size - 1; $i >= 0; $i--) { -            $html = $filters[$i]->postFilter($html, $config, $context); -        } - -        $html = HTMLPurifier_Encoder::convertFromUTF8($html, $config, $context); -        $this->context =& $context; -        return $html; -    } - -    /** -     * Filters an array of HTML snippets -     * @param $config Optional HTMLPurifier_Config object for this operation. -     *                See HTMLPurifier::purify() for more details. -     * @return Array of purified HTML -     */ -    public function purifyArray($array_of_html, $config = null) { -        $context_array = array(); -        foreach ($array_of_html as $key => $html) { -            $array_of_html[$key] = $this->purify($html, $config); -            $context_array[$key] = $this->context; -        } -        $this->context = $context_array; -        return $array_of_html; -    } - -    /** -     * Singleton for enforcing just one HTML Purifier in your system -     * @param $prototype Optional prototype HTMLPurifier instance to -     *                   overload singleton with, or HTMLPurifier_Config -     *                   instance to configure the generated version with. -     */ -    public static function instance($prototype = null) { -        if (!self::$instance || $prototype) { -            if ($prototype instanceof HTMLPurifier) { -                self::$instance = $prototype; -            } elseif ($prototype) { -                self::$instance = new HTMLPurifier($prototype); -            } else { -                self::$instance = new HTMLPurifier(); -            } -        } -        return self::$instance; -    } - -    /** -     * @note Backwards compatibility, see instance() -     */ -    public static function getInstance($prototype = null) { -        return HTMLPurifier::instance($prototype); -    } - -} - -// vim: et sw=4 sts=4 | 
