1<?php
2
3/**
4 * Post-transform that copies lang's value to xml:lang (and vice-versa)
5 * @note Theoretically speaking, this could be a pre-transform, but putting
6 *       post is more efficient.
7 */
8class HTMLPurifier_AttrTransform_Lang extends HTMLPurifier_AttrTransform
9{
10
11    /**
12     * @param array $attr
13     * @param HTMLPurifier_Config $config
14     * @param HTMLPurifier_Context $context
15     * @return array
16     */
17    public function transform($attr, $config, $context)
18    {
19        $lang = isset($attr['lang']) ? $attr['lang'] : false;
20        $xml_lang = isset($attr['xml:lang']) ? $attr['xml:lang'] : false;
21
22        if ($lang !== false && $xml_lang === false) {
23            $attr['xml:lang'] = $lang;
24        } elseif ($xml_lang !== false) {
25            $attr['lang'] = $xml_lang;
26        }
27        return $attr;
28    }
29}
30
31// vim: et sw=4 sts=4
32