summaryrefslogtreecommitdiff
path: root/lib/htmlpurifier/library/HTMLPurifier/URIScheme.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/htmlpurifier/library/HTMLPurifier/URIScheme.php')
-rwxr-xr-xlib/htmlpurifier/library/HTMLPurifier/URIScheme.php42
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/htmlpurifier/library/HTMLPurifier/URIScheme.php b/lib/htmlpurifier/library/HTMLPurifier/URIScheme.php
new file mode 100755
index 000000000..039710fd1
--- /dev/null
+++ b/lib/htmlpurifier/library/HTMLPurifier/URIScheme.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * Validator for the components of a URI for a specific scheme
+ */
+class HTMLPurifier_URIScheme
+{
+
+ /**
+ * Scheme's default port (integer)
+ */
+ public $default_port = null;
+
+ /**
+ * Whether or not URIs of this schem are locatable by a browser
+ * http and ftp are accessible, while mailto and news are not.
+ */
+ public $browsable = false;
+
+ /**
+ * Whether or not the URI always uses <hier_part>, resolves edge cases
+ * with making relative URIs absolute
+ */
+ public $hierarchical = false;
+
+ /**
+ * Validates the components of a URI
+ * @note This implementation should be called by children if they define
+ * a default port, as it does port processing.
+ * @param $uri Instance of HTMLPurifier_URI
+ * @param $config HTMLPurifier_Config object
+ * @param $context HTMLPurifier_Context object
+ * @return Bool success or failure
+ */
+ public function validate(&$uri, $config, $context) {
+ if ($this->default_port == $uri->port) $uri->port = null;
+ return true;
+ }
+
+}
+
+// vim: et sw=4 sts=4