FIX backport fix for lack of HTMLPurifier breakage

If HTMLPurifier is missing, a fatal error is giving for a missing class.
This results in comments essentially not working. The fix is simple and
has already been done in 2.0 - as the package is optional we can simply
check if the classname exists before trying to use it, or do nothing.
This commit is contained in:
Dylan Wagstaff 2018-03-12 10:26:25 +13:00
parent 8e79a1368e
commit dc6ea3934d

View File

@ -649,8 +649,10 @@ class Comment extends DataObject
*/ */
public function purifyHtml($dirtyHtml) public function purifyHtml($dirtyHtml)
{ {
$purifier = $this->getHtmlPurifierService(); if ($service = $this->getHtmlPurifierService()) {
return $purifier->purify($dirtyHtml); return $service->purify($dirtyHtml);
}
return $dirtyHtml;
} }
/** /**
@ -658,6 +660,10 @@ class Comment extends DataObject
*/ */
public function getHtmlPurifierService() public function getHtmlPurifierService()
{ {
if (!class_exists('HTMLPurifier_Config')) {
return null;
}
$config = HTMLPurifier_Config::createDefault(); $config = HTMLPurifier_Config::createDefault();
$allowedElements = $this->getOption('html_allowed_elements'); $allowedElements = $this->getOption('html_allowed_elements');
$config->set('HTML.AllowedElements', $allowedElements); $config->set('HTML.AllowedElements', $allowedElements);