]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - include/HTMLPurifier/standalone/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php
Release 6.5.0
[Github/sugarcrm.git] / include / HTMLPurifier / standalone / HTMLPurifier / ConfigSchema / Builder / ConfigSchema.php
1 <?php
2
3 /**
4  * Converts HTMLPurifier_ConfigSchema_Interchange to our runtime
5  * representation used to perform checks on user configuration.
6  */
7 class HTMLPurifier_ConfigSchema_Builder_ConfigSchema
8 {
9
10     public function build($interchange) {
11         $schema = new HTMLPurifier_ConfigSchema();
12         foreach ($interchange->directives as $d) {
13             $schema->add(
14                 $d->id->key,
15                 $d->default,
16                 $d->type,
17                 $d->typeAllowsNull
18             );
19             if ($d->allowed !== null) {
20                 $schema->addAllowedValues(
21                     $d->id->key,
22                     $d->allowed
23                 );
24             }
25             foreach ($d->aliases as $alias) {
26                 $schema->addAlias(
27                     $alias->key,
28                     $d->id->key
29                 );
30             }
31             if ($d->valueAliases !== null) {
32                 $schema->addValueAliases(
33                     $d->id->key,
34                     $d->valueAliases
35                 );
36             }
37         }
38         $schema->postProcess();
39         return $schema;
40     }
41
42 }
43
44 // vim: et sw=4 sts=4