You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.2 KiB
48 lines
1.2 KiB
<?php |
|
|
|
/** |
|
* Converts HTMLPurifier_ConfigSchema_Interchange to our runtime |
|
* representation used to perform checks on user configuration. |
|
*/ |
|
class HTMLPurifier_ConfigSchema_Builder_ConfigSchema |
|
{ |
|
|
|
/** |
|
* @param HTMLPurifier_ConfigSchema_Interchange $interchange |
|
* @return HTMLPurifier_ConfigSchema |
|
*/ |
|
public function build($interchange) |
|
{ |
|
$schema = new HTMLPurifier_ConfigSchema(); |
|
foreach ($interchange->directives as $d) { |
|
$schema->add( |
|
$d->id->key, |
|
$d->default, |
|
$d->type, |
|
$d->typeAllowsNull |
|
); |
|
if ($d->allowed !== null) { |
|
$schema->addAllowedValues( |
|
$d->id->key, |
|
$d->allowed |
|
); |
|
} |
|
foreach ($d->aliases as $alias) { |
|
$schema->addAlias( |
|
$alias->key, |
|
$d->id->key |
|
); |
|
} |
|
if ($d->valueAliases !== null) { |
|
$schema->addValueAliases( |
|
$d->id->key, |
|
$d->valueAliases |
|
); |
|
} |
|
} |
|
$schema->postProcess(); |
|
return $schema; |
|
} |
|
} |
|
|
|
// vim: et sw=4 sts=4
|
|
|