See Release Notes
Long Term Support Release
1 <?php 2 3 /** 4 * Generic pre-transform that converts an attribute with a fixed number of 5 * values (enumerated) to CSS. 6 */ 7 class HTMLPurifier_AttrTransform_EnumToCSS extends HTMLPurifier_AttrTransform 8 { 9 /** 10 * Name of attribute to transform from. 11 * @type string 12 */ 13 protected $attr; 14 15 /** 16 * Lookup array of attribute values to CSS. 17 * @type array 18 */ 19 protected $enumToCSS = array(); 20 21 /** 22 * Case sensitivity of the matching. 23 * @type bool 24 * @warning Currently can only be guaranteed to work with ASCII 25 * values. 26 */ 27 protected $caseSensitive = false; 28 29 /** 30 * @param string $attr Attribute name to transform from 31 * @param array $enum_to_css Lookup array of attribute values to CSS 32 * @param bool $case_sensitive Case sensitivity indicator, default false 33 */ 34 public function __construct($attr, $enum_to_css, $case_sensitive = false) 35 { 36 $this->attr = $attr; 37 $this->enumToCSS = $enum_to_css; 38 $this->caseSensitive = (bool)$case_sensitive; 39 } 40 41 /** 42 * @param array $attr 43 * @param HTMLPurifier_Config $config 44 * @param HTMLPurifier_Context $context 45 * @return array 46 */ 47 public function transform($attr, $config, $context) 48 { 49 if (!isset($attr[$this->attr])) { 50 return $attr; 51 } 52 53 $value = trim($attr[$this->attr]); 54 unset($attr[$this->attr]); 55 56 if (!$this->caseSensitive) { 57 $value = strtolower($value); 58 } 59 60 if (!isset($this->enumToCSS[$value])) { 61 return $attr; 62 } 63 $this->prependCSS($attr, $this->enumToCSS[$value]); 64 return $attr; 65 } 66 } 67 68 // vim: et sw=4 sts=4
title
Description
Body
title
Description
Body
title
Description
Body
title
Body