aboutsummaryrefslogtreecommitdiff
path: root/lib/classes/htmlpurifier/HTMLPurifier_Injector_ClassifyLinks.php
blob: a43e27e54925c70b06ab67ab578a3df6c8d55124 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php

/**
 * Classify links as internal or external and set the class attribute
 * accordingly.
 */
class HTMLPurifier_Injector_ClassifyLinks extends HTMLPurifier_Injector
{
    public $name = 'ClassifyLinks';
    public $needed = ['a' => ['href', 'class', 'target']];

    public function handleElement(&$token)
    {
        if ($token->name === 'a' && isset($token->attr['href'])) {
            $is_link_intern = isLinkIntern($token->attr['href']);
            if ($is_link_intern) {
                $token->attr['class'] = 'link-intern';
            } elseif (strpos($token->attr['href'], 'mailto:') !== 0) {
                $token->attr['class'] = 'link-extern';
                $token->attr['target'] = '_blank';
            }
        }
    }
}