1<?php
2
3/**
4 * Pre-transform that changes converts a boolean attribute to fixed CSS
5 */
6class 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