diff options
Diffstat (limited to 'inc/3rdparty/htmlpurifier/HTMLPurifier/AttrTransform.php')
-rw-r--r-- | inc/3rdparty/htmlpurifier/HTMLPurifier/AttrTransform.php | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/inc/3rdparty/htmlpurifier/HTMLPurifier/AttrTransform.php b/inc/3rdparty/htmlpurifier/HTMLPurifier/AttrTransform.php new file mode 100644 index 00000000..d9baaf39 --- /dev/null +++ b/inc/3rdparty/htmlpurifier/HTMLPurifier/AttrTransform.php | |||
@@ -0,0 +1,60 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Processes an entire attribute array for corrections needing multiple values. | ||
5 | * | ||
6 | * Occasionally, a certain attribute will need to be removed and popped onto | ||
7 | * another value. Instead of creating a complex return syntax for | ||
8 | * HTMLPurifier_AttrDef, we just pass the whole attribute array to a | ||
9 | * specialized object and have that do the special work. That is the | ||
10 | * family of HTMLPurifier_AttrTransform. | ||
11 | * | ||
12 | * An attribute transformation can be assigned to run before or after | ||
13 | * HTMLPurifier_AttrDef validation. See HTMLPurifier_HTMLDefinition for | ||
14 | * more details. | ||
15 | */ | ||
16 | |||
17 | abstract class HTMLPurifier_AttrTransform | ||
18 | { | ||
19 | |||
20 | /** | ||
21 | * Abstract: makes changes to the attributes dependent on multiple values. | ||
22 | * | ||
23 | * @param array $attr Assoc array of attributes, usually from | ||
24 | * HTMLPurifier_Token_Tag::$attr | ||
25 | * @param HTMLPurifier_Config $config Mandatory HTMLPurifier_Config object. | ||
26 | * @param HTMLPurifier_Context $context Mandatory HTMLPurifier_Context object | ||
27 | * @return array Processed attribute array. | ||
28 | */ | ||
29 | abstract public function transform($attr, $config, $context); | ||
30 | |||
31 | /** | ||
32 | * Prepends CSS properties to the style attribute, creating the | ||
33 | * attribute if it doesn't exist. | ||
34 | * @param array &$attr Attribute array to process (passed by reference) | ||
35 | * @param string $css CSS to prepend | ||
36 | */ | ||
37 | public function prependCSS(&$attr, $css) | ||
38 | { | ||
39 | $attr['style'] = isset($attr['style']) ? $attr['style'] : ''; | ||
40 | $attr['style'] = $css . $attr['style']; | ||
41 | } | ||
42 | |||
43 | /** | ||
44 | * Retrieves and removes an attribute | ||
45 | * @param array &$attr Attribute array to process (passed by reference) | ||
46 | * @param mixed $key Key of attribute to confiscate | ||
47 | * @return mixed | ||
48 | */ | ||
49 | public function confiscateAttr(&$attr, $key) | ||
50 | { | ||
51 | if (!isset($attr[$key])) { | ||
52 | return null; | ||
53 | } | ||
54 | $value = $attr[$key]; | ||
55 | unset($attr[$key]); | ||
56 | return $value; | ||
57 | } | ||
58 | } | ||
59 | |||
60 | // vim: et sw=4 sts=4 | ||