AutorÃa | Ultima modificación | Ver Log |
<?php// must be called POST validation/*** Adds rel="nofollow" to all outbound links. This transform is* only attached if Attr.Nofollow is TRUE.*/class HTMLPurifier_AttrTransform_Nofollow extends HTMLPurifier_AttrTransform{/*** @type HTMLPurifier_URIParser*/private $parser;public function __construct(){$this->parser = new HTMLPurifier_URIParser();}/*** @param array $attr* @param HTMLPurifier_Config $config* @param HTMLPurifier_Context $context* @return array*/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->isLocal($config, $context)) {if (isset($attr['rel'])) {$rels = explode(' ', $attr['rel']);if (!in_array('nofollow', $rels)) {$rels[] = 'nofollow';}$attr['rel'] = implode(' ', $rels);} else {$attr['rel'] = 'nofollow';}}return $attr;}}// vim: et sw=4 sts=4