Yaffs site version 1.1
[yaffs-website] / vendor / ezyang / htmlpurifier / maintenance / old-extract-schema.php
1 #!/usr/bin/php
2 <?php
3
4 chdir(dirname(__FILE__));
5 require_once 'common.php';
6 assertCli();
7
8 echo "Please do not run this script. It is here for historical purposes only.";
9 exit;
10
11 /**
12  * @file
13  * Extracts all definitions inside a configuration schema
14  * (HTMLPurifier_ConfigSchema) and exports them as plain text files.
15  *
16  * @todo Extract version numbers.
17  */
18
19 define('HTMLPURIFIER_SCHEMA_STRICT', true); // description data needs to be collected
20 require_once dirname(__FILE__) . '/../library/HTMLPurifier.auto.php';
21
22 // We need includes to ensure all HTMLPurifier_ConfigSchema calls are
23 // performed.
24 require_once 'HTMLPurifier.includes.php';
25
26 // Also, these extra files will be necessary.
27 require_once 'HTMLPurifier/Filter/ExtractStyleBlocks.php';
28
29 /**
30  * Takes a hash and saves its contents to library/HTMLPurifier/ConfigSchema/
31  */
32 function saveHash($hash)
33 {
34     if ($hash === false) return;
35     $dir = realpath(dirname(__FILE__) . '/../library/HTMLPurifier/ConfigSchema');
36     $name = $hash['ID'] . '.txt';
37     $file = $dir . '/' . $name;
38     if (file_exists($file)) {
39         trigger_error("File already exists; skipped $name");
40         return;
41     }
42     $file = new FSTools_File($file);
43     $file->open('w');
44     $multiline = false;
45     foreach ($hash as $key => $value) {
46         $multiline = $multiline || (strpos($value, "\n") !== false);
47         if ($multiline) {
48             $file->put("--$key--" . PHP_EOL);
49             $file->put(str_replace("\n", PHP_EOL, $value) . PHP_EOL);
50         } else {
51             if ($key == 'ID') {
52                 $file->put("$value" . PHP_EOL);
53             } else {
54                 $file->put("$key: $value" . PHP_EOL);
55             }
56         }
57     }
58     $file->close();
59 }
60
61 $schema  = HTMLPurifier_ConfigSchema::instance();
62 $adapter = new HTMLPurifier_ConfigSchema_StringHashReverseAdapter($schema);
63
64 foreach ($schema->info as $ns => $ns_array) {
65     saveHash($adapter->get($ns));
66     foreach ($ns_array as $dir => $x) {
67         saveHash($adapter->get($ns, $dir));
68     }
69 }
70
71 // vim: et sw=4 sts=4