1<?php
2
3/**
4 * Class for handling width/height length attribute transformations to CSS
5 */
6class HTMLPurifier_AttrTransform_Length extends HTMLPurifier_AttrTransform
7{
8
9    /**
10     * @type string
11     */
12    protected $name;
13
14    /**
15     * @type string
16     */
17    protected $cssName;
18
19    public function __construct($name, $css_name = null)
20    {
21        $this->name = $name;
22        $this->cssName = $css_name ? $css_name : $name;
23    }
24
25    /**
26     * @param array $attr
27     * @param HTMLPurifier_Config $config
28     * @param HTMLPurifier_Context $context
29     * @return array
30     */
31    public function transform($attr, $config, $context)
32    {
33        if (!isset($attr[$this->name])) {
34            return $attr;
35        }
36        $length = $this->confiscateAttr($attr, $this->name);
37        if (ctype_digit($length)) {
38            $length .= 'px';
39        }
40        $this->prependCSS($attr, $this->cssName . ":$length;");
41        return $attr;
42    }
43}
44
45// vim: et sw=4 sts=4
46