aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/textformatter/s9e/utils.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/phpbb/textformatter/s9e/utils.php')
-rw-r--r--phpBB/phpbb/textformatter/s9e/utils.php67
1 files changed, 67 insertions, 0 deletions
diff --git a/phpBB/phpbb/textformatter/s9e/utils.php b/phpBB/phpbb/textformatter/s9e/utils.php
new file mode 100644
index 0000000000..19cd3a11c8
--- /dev/null
+++ b/phpBB/phpbb/textformatter/s9e/utils.php
@@ -0,0 +1,67 @@
+<?php
+/**
+*
+* This file is part of the phpBB Forum Software package.
+*
+* @copyright (c) phpBB Limited <https://www.phpbb.com>
+* @license GNU General Public License, version 2 (GPL-2.0)
+*
+* For full copyright and license information, please see
+* the docs/CREDITS.txt file.
+*
+*/
+
+namespace phpbb\textformatter\s9e;
+
+/**
+* Text manipulation utilities
+* @package phpBB3
+*/
+class utils extends \phpbb\textformatter\utils
+{
+ /**
+ * {@inheritdoc}
+ */
+ public function clean_formatting($text)
+ {
+ // Insert a space before <s> and <e> then remove formatting
+ $text = preg_replace('#<[es]>#', ' $0', $text);
+
+ return \s9e\TextFormatter\Unparser::removeFormatting($text);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function remove_bbcode($text, $bbcode_name, $depth = 0)
+ {
+ $dom = new \DOMDocument;
+ $dom->loadXML($text);
+
+ $xpath = new \DOMXPath($dom);
+ $nodes = $xpath->query(str_repeat('//' . strtoupper($bbcode_name), 1 + $depth));
+
+ foreach ($nodes as $node)
+ {
+ $node->parentNode->removeChild($node);
+ }
+
+ return $dom->saveXML($dom->documentElement);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function remove_formatting($text)
+ {
+ return \s9e\TextFormatter\Unparser::removeFormatting($text);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function unparse($text)
+ {
+ return \s9e\TextFormatter\Unparser::unparse($text);
+ }
+}