| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | #!/usr/bin/php<?phpchdir(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 collectedrequire_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
 |