Skip to content
Snippets Groups Projects
HTMLPurifier_Injector_ClassifyLinks.php 752 B
Newer Older
Moritz Strohm's avatar
Moritz Strohm committed
 * 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']);
Moritz Strohm's avatar
Moritz Strohm committed
            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';
            }
        }
    }
}