Yaffs site version 1.1
[yaffs-website] / vendor / ezyang / htmlpurifier / library / HTMLPurifier / URIFilter.php
1 <?php
2
3 /**
4  * Chainable filters for custom URI processing.
5  *
6  * These filters can perform custom actions on a URI filter object,
7  * including transformation or blacklisting.  A filter named Foo
8  * must have a corresponding configuration directive %URI.Foo,
9  * unless always_load is specified to be true.
10  *
11  * The following contexts may be available while URIFilters are being
12  * processed:
13  *
14  *      - EmbeddedURI: true if URI is an embedded resource that will
15  *        be loaded automatically on page load
16  *      - CurrentToken: a reference to the token that is currently
17  *        being processed
18  *      - CurrentAttr: the name of the attribute that is currently being
19  *        processed
20  *      - CurrentCSSProperty: the name of the CSS property that is
21  *        currently being processed (if applicable)
22  *
23  * @warning This filter is called before scheme object validation occurs.
24  *          Make sure, if you require a specific scheme object, you
25  *          you check that it exists. This allows filters to convert
26  *          proprietary URI schemes into regular ones.
27  */
28 abstract class HTMLPurifier_URIFilter
29 {
30
31     /**
32      * Unique identifier of filter.
33      * @type string
34      */
35     public $name;
36
37     /**
38      * True if this filter should be run after scheme validation.
39      * @type bool
40      */
41     public $post = false;
42
43     /**
44      * True if this filter should always be loaded.
45      * This permits a filter to be named Foo without the corresponding
46      * %URI.Foo directive existing.
47      * @type bool
48      */
49     public $always_load = false;
50
51     /**
52      * Performs initialization for the filter.  If the filter returns
53      * false, this means that it shouldn't be considered active.
54      * @param HTMLPurifier_Config $config
55      * @return bool
56      */
57     public function prepare($config)
58     {
59         return true;
60     }
61
62     /**
63      * Filter a URI object
64      * @param HTMLPurifier_URI $uri Reference to URI object variable
65      * @param HTMLPurifier_Config $config
66      * @param HTMLPurifier_Context $context
67      * @return bool Whether or not to continue processing: false indicates
68      *         URL is no good, true indicates continue processing. Note that
69      *         all changes are committed directly on the URI object
70      */
71     abstract public function filter(&$uri, $config, $context);
72 }
73
74 // vim: et sw=4 sts=4