summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-03-18 22:26:36 +0400
committerAndrew Dolgov <[email protected]>2013-03-18 22:26:36 +0400
commit2130fe7a18d7e1863575feda9ec39654541eee77 (patch)
treed451bfd97f26ba0128547e8a62793418e0d3278f /include
parent5b18c93622e97b9a251f3b85bdb088022fd5c0f3 (diff)
add experimental HOOK_SANITIZE
Diffstat (limited to 'include')
-rw-r--r--include/functions.php23
1 files changed, 18 insertions, 5 deletions
diff --git a/include/functions.php b/include/functions.php
index 2120a96b9..ae9561337 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -2597,12 +2597,25 @@
//$node = $doc->getElementsByTagName('body')->item(0);
- $doc->removeChild($doc->firstChild); //remove doctype
- $res = $doc->saveHTML();
- $config = array('safe' => 1, 'deny_attribute' => 'style, width, height, class, id', 'comment' => 1, 'cdata' => 1, 'balance' => 0);
- $spec = 'img=width,height';
- $res = htmLawed($res, $config, $spec);
+ $beforehooks = $res;
+
+ global $pluginhost;
+ if ($pluginhost) {
+ foreach ($pluginhost->get_hooks($pluginhost::HOOK_SANITIZE) as $p) {
+ $res = $p->hook_sanitize($res);
+ }
+ }
+
+ // nothing changed, use standard filters
+ if ($beforehooks == $res) {
+ $doc->removeChild($doc->firstChild); //remove doctype
+ $res = $doc->saveHTML();
+
+ $config = array('safe' => 1, 'deny_attribute' => 'style, width, height, class, id', 'comment' => 1, 'cdata' => 1, 'balance' => 0);
+ $spec = 'img=width,height';
+ $res = htmLawed($res, $config, $spec);
+ }
return $res;
}