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: */
8: class 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: