summaryrefslogtreecommitdiff
path: root/lib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-06-05 21:52:21 +0400
committerAndrew Dolgov <[email protected]>2012-06-05 21:52:21 +0400
commit010efc9b814b433bc60353caec185d905688a32b (patch)
treeb2b4f62cbc2d10cf75386e992434be1f4013dc13 /lib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php
parent705b97b7fca9ea70820af5fcd926f88903eaa430 (diff)
Revert "remove htmlpurifier"
This reverts commit c21a462d52bd32737c32c29b060da03b38f1c2e6.
Diffstat (limited to 'lib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php')
-rw-r--r--lib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php44
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php b/lib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php
new file mode 100644
index 000000000..c05668a70
--- /dev/null
+++ b/lib/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php
@@ -0,0 +1,44 @@
+<?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