1: <?php
2:
3: /**
4: * Pre-transform that changes converts a boolean attribute to fixed CSS
5: */
6: class HTMLPurifier_AttrTransform_BoolToCSS extends HTMLPurifier_AttrTransform
7: {
8: /**
9: * Name of boolean attribute that is trigger.
10: * @type string
11: */
12: protected $attr;
13:
14: /**
15: * CSS declarations to add to style, needs trailing semicolon.
16: * @type string
17: */
18: protected $css;
19:
20: /**
21: * @param string $attr attribute name to convert from
22: * @param string $css CSS declarations to add to style (needs semicolon)
23: */
24: public function __construct($attr, $css)
25: {
26: $this->attr = $attr;
27: $this->css = $css;
28: }
29:
30: /**
31: * @param array $attr
32: * @param HTMLPurifier_Config $config
33: * @param HTMLPurifier_Context $context
34: * @return array
35: */
36: public function transform($attr, $config, $context)
37: {
38: if (!isset($attr[$this->attr])) {
39: return $attr;
40: }
41: unset($attr[$this->attr]);
42: $this->prependCSS($attr, $this->css);
43: return $attr;
44: }
45: }
46:
47: // vim: et sw=4 sts=4
48: