HTMLPurifier 4.4.0
/home/ezyang/Dev/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php
Go to the documentation of this file.
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