Differences Between: [Versions 310 and 401] [Versions 310 and 402] [Versions 310 and 403]
1 <?php 2 3 /** 4 * Post-transform that performs validation to the name attribute; if 5 * it is present with an equivalent id attribute, it is passed through; 6 * otherwise validation is performed. 7 */ 8 class HTMLPurifier_AttrTransform_NameSync extends HTMLPurifier_AttrTransform 9 { 10 11 public function __construct() 12 { 13 $this->idDef = new HTMLPurifier_AttrDef_HTML_ID(); 14 } 15 16 /** 17 * @param array $attr 18 * @param HTMLPurifier_Config $config 19 * @param HTMLPurifier_Context $context 20 * @return array 21 */ 22 public function transform($attr, $config, $context) 23 { 24 if (!isset($attr['name'])) { 25 return $attr; 26 } 27 $name = $attr['name']; 28 if (isset($attr['id']) && $attr['id'] === $name) { 29 return $attr; 30 } 31 $result = $this->idDef->validate($name, $config, $context); 32 if ($result === false) { 33 unset($attr['name']); 34 } else { 35 $attr['name'] = $result; 36 } 37 return $attr; 38 } 39 } 40 41 // vim: et sw=4 sts=4
title
Description
Body
title
Description
Body
title
Description
Body
title
Body