]> git.mxchange.org Git - friendica.git/blob - library/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php
Merge pull request #2441 from rabuzarus/0704_doxygen_forum
[friendica.git] / library / ezyang / htmlpurifier / library / HTMLPurifier / AttrTransform / ImgSpace.php
1 <?php
2
3 /**
4  * Pre-transform that changes deprecated hspace and vspace attributes to CSS
5  */
6 class HTMLPurifier_AttrTransform_ImgSpace extends HTMLPurifier_AttrTransform
7 {
8     /**
9      * @type string
10      */
11     protected $attr;
12
13     /**
14      * @type array
15      */
16     protected $css = array(
17         'hspace' => array('left', 'right'),
18         'vspace' => array('top', 'bottom')
19     );
20
21     /**
22      * @param string $attr
23      */
24     public function __construct($attr)
25     {
26         $this->attr = $attr;
27         if (!isset($this->css[$attr])) {
28             trigger_error(htmlspecialchars($attr) . ' is not valid space attribute');
29         }
30     }
31
32     /**
33      * @param array $attr
34      * @param HTMLPurifier_Config $config
35      * @param HTMLPurifier_Context $context
36      * @return array
37      */
38     public function transform($attr, $config, $context)
39     {
40         if (!isset($attr[$this->attr])) {
41             return $attr;
42         }
43
44         $width = $this->confiscateAttr($attr, $this->attr);
45         // some validation could happen here
46
47         if (!isset($this->css[$this->attr])) {
48             return $attr;
49         }
50
51         $style = '';
52         foreach ($this->css[$this->attr] as $suffix) {
53             $property = "margin-$suffix";
54             $style .= "$property:{$width}px;";
55         }
56         $this->prependCSS($attr, $style);
57         return $attr;
58     }
59 }
60
61 // vim: et sw=4 sts=4