1 <?php 2 3 // must be called POST validation 4 5 /** 6 * Adds target="blank" to all outbound links. This transform is 7 * only attached if Attr.TargetBlank is TRUE. This works regardless 8 * of whether or not Attr.AllowedFrameTargets 9 */ 10 class HTMLPurifier_AttrTransform_TargetBlank extends HTMLPurifier_AttrTransform 11 { 12 /** 13 * @type HTMLPurifier_URIParser 14 */ 15 private $parser; 16 17 public function __construct() 18 { 19 $this->parser = new HTMLPurifier_URIParser(); 20 } 21 22 /** 23 * @param array $attr 24 * @param HTMLPurifier_Config $config 25 * @param HTMLPurifier_Context $context 26 * @return array 27 */ 28 public function transform($attr, $config, $context) 29 { 30 if (!isset($attr['href'])) { 31 return $attr; 32 } 33 34 // XXX Kind of inefficient 35 $url = $this->parser->parse($attr['href']); 36 $scheme = $url->getSchemeObj($config, $context); 37 38 if ($scheme->browsable && !$url->isBenign($config, $context)) { 39 $attr['target'] = '_blank'; 40 } 41 return $attr; 42 } 43 } 44 45 // vim: et sw=4 sts=4
title
Description
Body
title
Description
Body
title
Description
Body
title
Body