summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/TinyMCE/TinyMCEPlugin.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/plugins/TinyMCE/TinyMCEPlugin.php b/plugins/TinyMCE/TinyMCEPlugin.php
index 1d9d4a288..c0fd8506e 100644
--- a/plugins/TinyMCE/TinyMCEPlugin.php
+++ b/plugins/TinyMCE/TinyMCEPlugin.php
@@ -49,6 +49,8 @@ if (!defined('STATUSNET')) {
class TinyMCEPlugin extends Plugin
{
+ var $html;
+
function onEndShowScripts($action)
{
if (common_logged_in()) {
@@ -76,6 +78,39 @@ class TinyMCEPlugin extends Plugin
return true;
}
+ function onArgsInitialize(&$args)
+ {
+ if (!array_key_exists('action', $args) ||
+ $args['action'] != 'newnotice') {
+ return true;
+ }
+
+ $raw = $args['status_textarea'];
+
+ require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php';
+
+ $config = array('safe' => 1,
+ 'deny_attribute' => 'id,style,on*');
+
+ $this->html = htmLawed($raw, $config);
+
+ $text = html_entity_decode(strip_tags($this->html));
+
+ $args['status_textarea'] = $text;
+
+ return true;
+ }
+
+ function onStartNoticeSave($notice)
+ {
+ if (!empty($this->html)) {
+ // Stomp on any rendering
+ $notice->rendered = $this->html;
+ }
+
+ return true;
+ }
+
function _inlineScript()
{
$path = common_path('plugins/TinyMCE/js/tiny_mce.js');