summaryrefslogtreecommitdiff
path: root/inc/functions.php
diff options
context:
space:
mode:
authorFredrick Brennan <admin@8chan.co>2015-03-29 09:18:14 +0800
committerczaks <marcin@6irc.net>2016-05-06 16:03:55 +0200
commit95b1e103cb9f349d7d82dca071636d5cde855ead (patch)
tree34e863a732d57a38adfe295a767423377f3c6b79 /inc/functions.php
parent7911c374e86ef8fa69c4545867b9d9d3de12d5c6 (diff)
Edit static pages commit
Diffstat (limited to 'inc/functions.php')
-rwxr-xr-xinc/functions.php43
1 files changed, 43 insertions, 0 deletions
diff --git a/inc/functions.php b/inc/functions.php
index 378e40b3..7970d05a 100755
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -20,6 +20,7 @@ require_once 'inc/events.php';
require_once 'inc/api.php';
require_once 'inc/mod/auth.php';
require_once 'inc/polyfill.php';
+//require_once 'inc/lib/parsedown/Parsedown.php'; // we don't need that right now, do we?
if (!extension_loaded('gettext')) {
require_once 'inc/lib/gettext/gettext.inc';
@@ -2739,3 +2740,45 @@ function link_for($post, $page50 = false, $foreignlink = false, $thread = false)
return sprintf($tpl, $id, $slug);
}
+
+function prettify_textarea($s){
+ return str_replace("\t", '&#09;', str_replace("\n", '&#13;&#10;', htmlentities($s)));
+}
+
+class HTMLPurifier_URIFilter_NoExternalImages extends HTMLPurifier_URIFilter {
+ public $name = 'NoExternalImages';
+ public function filter(&$uri, $c, $context) {
+ global $config;
+ $ct = $context->get('CurrentToken');
+
+ if (!$ct || $ct->name !== 'img') return true;
+
+ if (!isset($uri->host) && !isset($uri->scheme)) return true;
+
+ if (!in_array($uri->scheme . '://' . $uri->host . '/', $config['allowed_offsite_urls'])) {
+ error('No off-site links in board announcement images.');
+ }
+
+ return true;
+ }
+}
+
+function purify_html($s) {
+ global $config;
+
+ $c = HTMLPurifier_Config::createDefault();
+ $c->set('HTML.Allowed', $config['allowed_html']);
+ $uri = $c->getDefinition('URI');
+ $uri->addFilter(new HTMLPurifier_URIFilter_NoExternalImages(), $c);
+ $purifier = new HTMLPurifier($c);
+ $clean_html = $purifier->purify($s);
+ return $clean_html;
+}
+
+function markdown($s) {
+ $pd = new Parsedown();
+ $pd->setMarkupEscaped(true);
+ $pd->setimagesEnabled(false);
+
+ return $pd->text($s);
+}