16 public static function instance($prototype = null) {
17 static $instance = null;
18 if ($prototype !== null) {
19 $instance = $prototype;
20 } elseif ($instance === null || $prototype ==
true) {
37 public function getScheme($scheme, $config, $context) {
41 $allowed_schemes = $config->get(
'URI.AllowedSchemes');
42 if (!$config->get(
'URI.OverrideAllowedSchemes') &&
43 !isset($allowed_schemes[$scheme])
48 if (isset($this->schemes[$scheme]))
return $this->schemes[$scheme];
49 if (!isset($allowed_schemes[$scheme]))
return;
51 $class =
'HTMLPurifier_URIScheme_' . $scheme;
52 if (!class_exists($class))
return;
53 $this->schemes[$scheme] =
new $class();
54 return $this->schemes[$scheme];
62 public function register($scheme, $scheme_obj) {
63 $this->schemes[$scheme] = $scheme_obj;