72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| #!/usr/bin/php
 | |
| <?php
 | |
| 
 | |
| chdir(dirname(__FILE__));
 | |
| require_once 'common.php';
 | |
| assertCli();
 | |
| 
 | |
| echo "Please do not run this script. It is here for historical purposes only.";
 | |
| exit;
 | |
| 
 | |
| /**
 | |
|  * @file
 | |
|  * Extracts all definitions inside a configuration schema
 | |
|  * (HTMLPurifier_ConfigSchema) and exports them as plain text files.
 | |
|  *
 | |
|  * @todo Extract version numbers.
 | |
|  */
 | |
| 
 | |
| define('HTMLPURIFIER_SCHEMA_STRICT', true); // description data needs to be collected
 | |
| require_once dirname(__FILE__) . '/../library/HTMLPurifier.auto.php';
 | |
| 
 | |
| // We need includes to ensure all HTMLPurifier_ConfigSchema calls are
 | |
| // performed.
 | |
| require_once 'HTMLPurifier.includes.php';
 | |
| 
 | |
| // Also, these extra files will be necessary.
 | |
| require_once 'HTMLPurifier/Filter/ExtractStyleBlocks.php';
 | |
| 
 | |
| /**
 | |
|  * Takes a hash and saves its contents to library/HTMLPurifier/ConfigSchema/
 | |
|  */
 | |
| function saveHash($hash)
 | |
| {
 | |
|     if ($hash === false) return;
 | |
|     $dir = realpath(dirname(__FILE__) . '/../library/HTMLPurifier/ConfigSchema');
 | |
|     $name = $hash['ID'] . '.txt';
 | |
|     $file = $dir . '/' . $name;
 | |
|     if (file_exists($file)) {
 | |
|         trigger_error("File already exists; skipped $name");
 | |
|         return;
 | |
|     }
 | |
|     $file = new FSTools_File($file);
 | |
|     $file->open('w');
 | |
|     $multiline = false;
 | |
|     foreach ($hash as $key => $value) {
 | |
|         $multiline = $multiline || (strpos($value, "\n") !== false);
 | |
|         if ($multiline) {
 | |
|             $file->put("--$key--" . PHP_EOL);
 | |
|             $file->put(str_replace("\n", PHP_EOL, $value) . PHP_EOL);
 | |
|         } else {
 | |
|             if ($key == 'ID') {
 | |
|                 $file->put("$value" . PHP_EOL);
 | |
|             } else {
 | |
|                 $file->put("$key: $value" . PHP_EOL);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     $file->close();
 | |
| }
 | |
| 
 | |
| $schema  = HTMLPurifier_ConfigSchema::instance();
 | |
| $adapter = new HTMLPurifier_ConfigSchema_StringHashReverseAdapter($schema);
 | |
| 
 | |
| foreach ($schema->info as $ns => $ns_array) {
 | |
|     saveHash($adapter->get($ns));
 | |
|     foreach ($ns_array as $dir => $x) {
 | |
|         saveHash($adapter->get($ns, $dir));
 | |
|     }
 | |
| }
 | |
| 
 | |
| // vim: et sw=4 sts=4
 | 
