1<?php
2
3/**
4 * Pre-transform that changes deprecated name attribute to ID if necessary
5 */
6class HTMLPurifier_AttrTransform_Name extends HTMLPurifier_AttrTransform
7{
8
9    /**
10     * @param array $attr
11     * @param HTMLPurifier_Config $config
12     * @param HTMLPurifier_Context $context
13     * @return array
14     */
15    public function transform($attr, $config, $context)
16    {
17        // Abort early if we're using relaxed definition of name
18        if ($config->get('HTML.Attr.Name.UseCDATA')) {
19            return $attr;
20        }
21        if (!isset($attr['name'])) {
22            return $attr;
23        }
24        $id = $this->confiscateAttr($attr, 'name');
25        if (isset($attr['id'])) {
26            return $attr;
27        }
28        $attr['id'] = $id;
29        return $attr;
30    }
31}
32
33// vim: et sw=4 sts=4
34