You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.0 KiB
64 lines
2.0 KiB
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
if (!defined('HTMLPURIFIER_PREFIX')) {
|
|
define('HTMLPURIFIER_PREFIX', TTS_VENDOR . 'ezyang/htmlpurifier/library');
|
|
}
|
|
|
|
class HTMLPurifier_Bootstrap {
|
|
|
|
/**
|
|
* Autoload function for HTML Purifier
|
|
* @param string $class Class to load
|
|
* @return bool
|
|
*/
|
|
public static function autoload($class) {
|
|
$file = HTMLPurifier_Bootstrap::getPath($class);
|
|
if (!$file) {
|
|
return false;
|
|
}
|
|
// Technically speaking, it should be ok and more efficient to
|
|
// just do 'require', but Antonio Parraga reports that with
|
|
// Zend extensions such as Zend debugger and APC, this invariant
|
|
// may be broken. Since we have efficient alternatives, pay
|
|
// the cost here and avoid the bug.
|
|
require_once HTMLPURIFIER_PREFIX . '/' . $file;
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Returns the path for a specific class.
|
|
* @param string $class Class path to get
|
|
* @return string
|
|
*/
|
|
public static function getPath($class) {
|
|
if (strncmp('HTMLPurifier', $class, 12) !== 0) {
|
|
return false;
|
|
}
|
|
// Custom implementations
|
|
if (strncmp('HTMLPurifier_Language_', $class, 22) === 0) {
|
|
$code = str_replace('_', '-', substr($class, 22));
|
|
$file = 'HTMLPurifier/Language/classes/' . $code . '.php';
|
|
} else {
|
|
$file = str_replace('_', '/', $class) . '.php';
|
|
}
|
|
if (!file_exists(HTMLPURIFIER_PREFIX . '/' . $file)) {
|
|
return false;
|
|
}
|
|
return $file;
|
|
}
|
|
|
|
/**
|
|
* "Pre-registers" our autoloader on the SPL stack.
|
|
*/
|
|
public static function registerAutoload() {
|
|
$autoload = array('HTMLPurifier_Bootstrap', 'autoload');
|
|
if (($funcs = spl_autoload_functions()) === false) {
|
|
spl_autoload_register($autoload);
|
|
} elseif (function_exists('spl_autoload_unregister')) {
|
|
// prepend flag exists, no need for shenanigans
|
|
spl_autoload_register($autoload, true, true);
|
|
}
|
|
}
|
|
} |