mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-11-23 09:18:41 +00:00
96d4a3ecf7
Due to historical reasons, the code is in subfolder "1". With SVN removal, we place the code back and remove the annoying "1" folder.
42 lines
1.0 KiB
PHP
42 lines
1.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Post-transform that performs validation to the name attribute; if
|
|
* it is present with an equivalent id attribute, it is passed through;
|
|
* otherwise validation is performed.
|
|
*/
|
|
class HTMLPurifier_AttrTransform_NameSync extends HTMLPurifier_AttrTransform
|
|
{
|
|
|
|
public function __construct()
|
|
{
|
|
$this->idDef = new HTMLPurifier_AttrDef_HTML_ID();
|
|
}
|
|
|
|
/**
|
|
* @param array $attr
|
|
* @param HTMLPurifier_Config $config
|
|
* @param HTMLPurifier_Context $context
|
|
* @return array
|
|
*/
|
|
public function transform($attr, $config, $context)
|
|
{
|
|
if (!isset($attr['name'])) {
|
|
return $attr;
|
|
}
|
|
$name = $attr['name'];
|
|
if (isset($attr['id']) && $attr['id'] === $name) {
|
|
return $attr;
|
|
}
|
|
$result = $this->idDef->validate($name, $config, $context);
|
|
if ($result === false) {
|
|
unset($attr['name']);
|
|
} else {
|
|
$attr['name'] = $result;
|
|
}
|
|
return $attr;
|
|
}
|
|
}
|
|
|
|
// vim: et sw=4 sts=4
|