1 <?php 2 3 /** 4 * Decorator that, depending on a token, switches between two definitions. 5 */ 6 class HTMLPurifier_AttrDef_Switch 7 { 8 9 /** 10 * @type string 11 */ 12 protected $tag; 13 14 /** 15 * @type HTMLPurifier_AttrDef 16 */ 17 protected $withTag; 18 19 /** 20 * @type HTMLPurifier_AttrDef 21 */ 22 protected $withoutTag; 23 24 /** 25 * @param string $tag Tag name to switch upon 26 * @param HTMLPurifier_AttrDef $with_tag Call if token matches tag 27 * @param HTMLPurifier_AttrDef $without_tag Call if token doesn't match, or there is no token 28 */ 29 public function __construct($tag, $with_tag, $without_tag) 30 { 31 $this->tag = $tag; 32 $this->withTag = $with_tag; 33 $this->withoutTag = $without_tag; 34 } 35 36 /** 37 * @param string $string 38 * @param HTMLPurifier_Config $config 39 * @param HTMLPurifier_Context $context 40 * @return bool|string 41 */ 42 public function validate($string, $config, $context) 43 { 44 $token = $context->get('CurrentToken', true); 45 if (!$token || $token->name !== $this->tag) { 46 return $this->withoutTag->validate($string, $config, $context); 47 } else { 48 return $this->withTag->validate($string, $config, $context); 49 } 50 } 51 } 52 53 // vim: et sw=4 sts=4
title
Description
Body
title
Description
Body
title
Description
Body
title
Body