HTMLPurifier 4.4.0
|
00001 <?php 00002 00003 // must be called POST validation 00004 00010 class HTMLPurifier_AttrTransform_TargetBlank extends HTMLPurifier_AttrTransform 00011 { 00012 private $parser; 00013 00014 public function __construct() { 00015 $this->parser = new HTMLPurifier_URIParser(); 00016 } 00017 00018 public function transform($attr, $config, $context) { 00019 00020 if (!isset($attr['href'])) { 00021 return $attr; 00022 } 00023 00024 // XXX Kind of inefficient 00025 $url = $this->parser->parse($attr['href']); 00026 $scheme = $url->getSchemeObj($config, $context); 00027 00028 if ($scheme->browsable && !$url->isBenign($config, $context)) { 00029 $attr['target'] = 'blank'; 00030 } 00031 00032 return $attr; 00033 00034 } 00035 00036 } 00037 00038 // vim: et sw=4 sts=4