1234567891011121314151617181920212223242526272829303132333435363738 |
- <?php
- // must be called POST validation
- /**
- * Adds target="blank" to all outbound links. This transform is
- * only attached if Attr.TargetBlank is TRUE. This works regardless
- * of whether or not Attr.AllowedFrameTargets
- */
- class HTMLPurifier_AttrTransform_TargetBlank extends HTMLPurifier_AttrTransform
- {
- private $parser;
- public function __construct() {
- $this->parser = new HTMLPurifier_URIParser();
- }
- public function transform($attr, $config, $context) {
- if (!isset($attr['href'])) {
- return $attr;
- }
- // XXX Kind of inefficient
- $url = $this->parser->parse($attr['href']);
- $scheme = $url->getSchemeObj($config, $context);
- if ($scheme->browsable && !$url->isBenign($config, $context)) {
- $attr['target'] = '_blank';
- }
- return $attr;
- }
- }
- // vim: et sw=4 sts=4
|