use new html purifier for profile descriptions

This commit is contained in:
following
2013-07-20 13:08:21 +02:00
parent 2083c3d7f8
commit e59f6f4398
4 changed files with 46 additions and 45 deletions
+42
View File
@@ -24,4 +24,46 @@ class OcHTMLPurifier extends HTMLPurifier
parent::__construct($config);
}
}
// Old code from useroptions.class.php, was formerly used to purify profile
// description text and may be useful somewhere ...?
/*
function tidy_html_description($text)
{
$options = array("input-encoding" => "utf8", "output-encoding" => "utf8", "output-xhtml" => true, "doctype" => "omit", "show-body-only" => true, "char-encoding" => "utf8", "quote-ampersand" => true, "quote-nbsp" => true, "wrap" => 0);
$config = HTMLPurifier_Config::createDefault();
$cssDefinition = $config->getCSSDefinition();
$cssDefinition->info['position'] = new
HTMLPurifier_AttrDef_Enum(array('absolute', 'fixed', 'relative', 'static', 'inherit'), false);
$cssDefinition->info['left'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage()
));
$cssDefinition->info['right'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage()
));
$cssDefinition->info['top'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage()
));
$cssDefinition->info['bottom'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage()
));
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($text);
return $clean_html;
}
}
*/
?>
+2 -39
View File
@@ -9,10 +9,6 @@
***************************************************************************/
global $opt;
// check for lib2
if (!defined('PURIFIERLIB2'))
require_once($opt['rootpath'] . '../lib/htmlpurifier-4.2.0/library/HTMLPurifier.auto.php');
require_once($opt['rootpath'] . 'lib2/logic/const.inc.php');
class useroptions
@@ -129,43 +125,10 @@ class useroptions
{
sqll("INSERT INTO `user_options` (`user_id`, `option_id`, `option_visible`, `option_value`)
VALUES ('&1', '&2', '&3', '&4') ON DUPLICATE KEY UPDATE `option_visible`='&3', `option_value`='&4'",
$this->nUserId, $record['id'], $record['option_visible'], $this->tidy_html_description($record['option_value']));
$this->nUserId, $record['id'], $record['option_visible'], $record['option_value']);
}
return true;
}
function tidy_html_description($text)
{
$options = array("input-encoding" => "utf8", "output-encoding" => "utf8", "output-xhtml" => true, "doctype" => "omit", "show-body-only" => true, "char-encoding" => "utf8", "quote-ampersand" => true, "quote-nbsp" => true, "wrap" => 0);
$config = HTMLPurifier_Config::createDefault();
$cssDefinition = $config->getCSSDefinition();
$cssDefinition->info['position'] = new
HTMLPurifier_AttrDef_Enum(array('absolute', 'fixed', 'relative', 'static', 'inherit'), false);
$cssDefinition->info['left'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage()
));
$cssDefinition->info['right'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage()
));
$cssDefinition->info['top'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage()
));
$cssDefinition->info['bottom'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
new HTMLPurifier_AttrDef_CSS_Length(),
new HTMLPurifier_AttrDef_CSS_Percentage()
));
$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($text);
return $clean_html;
}
}
?>
-3
View File
@@ -9,9 +9,6 @@
if ((isset($_POST['submit']) || isset($_POST['submitform'])) && !isset($_POST['version3']))
die('Your client may be outdated!');
// use purifier in lib2
define('PURIFIERLIB2', true);
// include librarys
require('./lib2/web.inc.php');
require_once('./lib2/logic/cache.class.php');
+2 -3
View File
@@ -8,8 +8,7 @@
require_once('lib2/web.inc.php');
require_once('lib2/logic/user.class.php');
require_once('lib2/logic/useroptions.class.php');
require_once('lang/de/ocstyle/smilies.inc.php');
require_once('../lib/htmlpurifier-4.2.0/library/HTMLPurifier.auto.php');
require_once('lib2/OcHTMLPurifier.class.php');
$tpl->name = 'mydetails';
$tpl->menuitem = MNU_MYPROFILE_DETAILS;
@@ -101,7 +100,7 @@ function changetext()
if (isset($_REQUEST['save']))
{
$purifier = new HTMLPurifier();
$purifier = new OcHTMLPurifier();
$desctext = isset($_REQUEST['desctext']) ? $purifier->purify($_REQUEST['desctext']) : "";
sql("UPDATE `user` SET `description`='&2' WHERE `user_id`='&1'", $login->userid, $desctext);
$tpl->redirect('mydetails.php');