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