summaryrefslogtreecommitdiff
path: root/modules/gallery/libraries/SafeString.php
diff options
context:
space:
mode:
authorAndy Staudacher <andy.st@gmail.com>2009-08-29 12:34:09 -0700
committerAndy Staudacher <andy.st@gmail.com>2009-08-29 12:34:09 -0700
commita10063ff68cf5988297dcad889384ab2080c3850 (patch)
tree91438ba34a1641297bd767b5931d56f44bfa4082 /modules/gallery/libraries/SafeString.php
parent7adb9ea2e3a42e1c5472024a1699912ae26eacb3 (diff)
Add more factory methods for convenience:
SafeString::purify() and SafeString::of_safe_html(). Removing SafeString::mark_html_safe() since it's no longer needed.
Diffstat (limited to 'modules/gallery/libraries/SafeString.php')
-rw-r--r--modules/gallery/libraries/SafeString.php27
1 files changed, 21 insertions, 6 deletions
diff --git a/modules/gallery/libraries/SafeString.php b/modules/gallery/libraries/SafeString.php
index 709ab5f6..9a269ed4 100644
--- a/modules/gallery/libraries/SafeString.php
+++ b/modules/gallery/libraries/SafeString.php
@@ -24,6 +24,7 @@
class SafeString_Core {
private $_raw_string;
protected $_is_safe_html = false;
+ protected $_is_purified_html = false;
private static $_purifier = null;
@@ -44,11 +45,25 @@ class SafeString_Core {
}
/**
- * Marks this string as safe to be used in HTML without any escaping.
+ * Factory method returning a new SafeString instance after HTML purifying
+ * the given string.
*/
- function mark_html_safe() {
- $this->_is_safe_html = true;
- return $this;
+ static function purify($string) {
+ if ($string instanceof SafeString) {
+ $string = $string->unescaped();
+ }
+ $safe_string = self::of_safe_html(self::_purify_for_html($string));
+ $safe_string->_is_purified_html = true;
+ return $safe_string;
+ }
+
+ /**
+ * Factory method returning a new SafeString instance which won't HTML escape.
+ */
+ static function of_safe_html($string) {
+ $safe_string = new SafeString($string);
+ $safe_string->_is_safe_html = true;
+ return $safe_string;
}
/**
@@ -117,10 +132,10 @@ class SafeString_Core {
* @return the string escaped for use in HTML.
*/
function purified_html() {
- if ($this->_is_safe_html) {
+ if ($this->_is_purified_html) {
return $this;
} else {
- return SafeString::of(self::_purify_for_html($this->_raw_string), true);
+ return self::purify($this);
}
}