1 <?php 2 3 /** 4 * Processes an entire attribute array for corrections needing multiple values. 5 * 6 * Occasionally, a certain attribute will need to be removed and popped onto 7 * another value. Instead of creating a complex return syntax for 8 * HTMLPurifier_AttrDef, we just pass the whole attribute array to a 9 * specialized object and have that do the special work. That is the 10 * family of HTMLPurifier_AttrTransform. 11 * 12 * An attribute transformation can be assigned to run before or after 13 * HTMLPurifier_AttrDef validation. See HTMLPurifier_HTMLDefinition for 14 * more details. 15 */ 16 17 abstract class HTMLPurifier_AttrTransform 18 { 19 20 /** 21 * Abstract: makes changes to the attributes dependent on multiple values. 22 * 23 * @param array $attr Assoc array of attributes, usually from 24 * HTMLPurifier_Token_Tag::$attr 25 * @param HTMLPurifier_Config $config Mandatory HTMLPurifier_Config object. 26 * @param HTMLPurifier_Context $context Mandatory HTMLPurifier_Context object 27 * @return array Processed attribute array. 28 */ 29 abstract public function transform($attr, $config, $context); 30 31 /** 32 * Prepends CSS properties to the style attribute, creating the 33 * attribute if it doesn't exist. 34 * @param array &$attr Attribute array to process (passed by reference) 35 * @param string $css CSS to prepend 36 */ 37 public function prependCSS(&$attr, $css) 38 { 39 $attr['style'] = isset($attr['style']) ? $attr['style'] : ''; 40 $attr['style'] = $css . $attr['style']; 41 } 42 43 /** 44 * Retrieves and removes an attribute 45 * @param array &$attr Attribute array to process (passed by reference) 46 * @param mixed $key Key of attribute to confiscate 47 * @return mixed 48 */ 49 public function confiscateAttr(&$attr, $key) 50 { 51 if (!isset($attr[$key])) { 52 return null; 53 } 54 $value = $attr[$key]; 55 unset($attr[$key]); 56 return $value; 57 } 58 } 59 60 // vim: et sw=4 sts=4
title
Description
Body
title
Description
Body
title
Description
Body
title
Body