[icinga-checkins] icinga.org: icingaweb2/feature/ render-links-in-acknowledgements-comments-and-downtimes-10654: Implement escapeComment helper

git at icinga.org git at icinga.org
Mon Feb 15 16:34:27 CET 2016


Module: icingaweb2
Branch: feature/render-links-in-acknowledgements-comments-and-downtimes-10654
Commit: b0932d2413e7b5cc7127fc89c8fa389b908669f1
URL:    https://git.icinga.org/?p=icingaweb2.git;a=commit;h=b0932d2413e7b5cc7127fc89c8fa389b908669f1

Author: Alexander A. Klimov <alexander.klimov at netways.de>
Date:   Mon Feb 15 16:26:52 2016 +0100

Implement escapeComment helper

refs #10654

---

 .../application/views/helpers/EscapeComment.php    |   38 ++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/modules/monitoring/application/views/helpers/EscapeComment.php b/modules/monitoring/application/views/helpers/EscapeComment.php
new file mode 100644
index 0000000..be85a22
--- /dev/null
+++ b/modules/monitoring/application/views/helpers/EscapeComment.php
@@ -0,0 +1,38 @@
+<?php
+/* Icinga Web 2 | (c) 2016 Icinga Development Team | GPLv2+ */
+
+/**
+ * Helper for escaping comments, but preserving links
+ */
+class Zend_View_Helper_EscapeComment extends Zend_View_Helper_Abstract
+{
+    /**
+     * The purifier to use for escaping
+     *
+     * @var HTMLPurifier
+     */
+    protected static $purifier;
+
+    /**
+     * Escape any comment for being placed inside HTML, but preserve simple links (<a href="...">).
+     *
+     * @param   string  $comment
+     *
+     * @return  string
+     */
+    public function escapeComment($comment)
+    {
+        if (self::$purifier === null) {
+            require_once 'HTMLPurifier/Bootstrap.php';
+            require_once 'HTMLPurifier.php';
+            require_once 'HTMLPurifier.autoload.php';
+
+            $config = HTMLPurifier_Config::createDefault();
+            $config->set('Core.EscapeNonASCIICharacters', true);
+            $config->set('HTML.Allowed', 'a[href]');
+            $config->set('Cache.DefinitionImpl', null);
+            self::$purifier = new HTMLPurifier($config);
+        }
+        return self::$purifier->purify($comment);
+    }
+}



More information about the icinga-checkins mailing list