[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 // must be called POST validation 4 5 /** 6 * Adds rel="nofollow" to all outbound links. This transform is 7 * only attached if Attr.Nofollow is TRUE. 8 */ 9 class HTMLPurifier_AttrTransform_Nofollow extends HTMLPurifier_AttrTransform 10 { 11 /** 12 * @type HTMLPurifier_URIParser 13 */ 14 private $parser; 15 16 public function __construct() 17 { 18 $this->parser = new HTMLPurifier_URIParser(); 19 } 20 21 /** 22 * @param array $attr 23 * @param HTMLPurifier_Config $config 24 * @param HTMLPurifier_Context $context 25 * @return array 26 */ 27 public function transform($attr, $config, $context) 28 { 29 if (!isset($attr['href'])) { 30 return $attr; 31 } 32 33 // XXX Kind of inefficient 34 $url = $this->parser->parse($attr['href']); 35 $scheme = $url->getSchemeObj($config, $context); 36 37 if ($scheme->browsable && !$url->isLocal($config, $context)) { 38 if (isset($attr['rel'])) { 39 $rels = explode(' ', $attr['rel']); 40 if (!in_array('nofollow', $rels)) { 41 $rels[] = 'nofollow'; 42 } 43 $attr['rel'] = implode(' ', $rels); 44 } else { 45 $attr['rel'] = 'nofollow'; 46 } 47 } 48 return $attr; 49 } 50 } 51 52 // vim: et sw=4 sts=4
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |