forked from GNUsocial/gnu-social
HTMLPurifier defangs arbitrary submitted HTML. We're using it in the OStatus plugin, but it may be valuable for other parts of the codebase (I think OEmbed might benefit, for example).
45 lines
1.1 KiB
PHP
45 lines
1.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Converts HTMLPurifier_ConfigSchema_Interchange to our runtime
|
|
* representation used to perform checks on user configuration.
|
|
*/
|
|
class HTMLPurifier_ConfigSchema_Builder_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
|