ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilHtmlPurifierAbstractLibWrapper Class Reference

Abstract class wrapping the HTMLPurifier instance. More...

+ Inheritance diagram for ilHtmlPurifierAbstractLibWrapper:
+ Collaboration diagram for ilHtmlPurifierAbstractLibWrapper:

Public Member Functions

 __construct ()
 ilHtmlPurifierAbstractLibWrapper constructor. More...
 
 purify (string $html)
 Filters an HTML snippet/document to be XSS-free and standards-compliant. More...
 
 purifyArray (array $htmlCollection)
 Filters an array of HTML snippets/documents to be XSS-free and standards-compliant. More...
 
 purify (string $html)
 Filters an HTML snippet/document to be XSS-free and standards-compliant. More...
 
 purifyArray (array $htmlCollection)
 Filters an array of HTML snippets/documents to be XSS-free and standards-compliant. More...
 

Static Public Member Functions

static _getCacheDirectory ()
 

Protected Member Functions

 getPurifierConfigInstance ()
 
 setPurifier (HTMLPurifier $purifier)
 
 getPurifier ()
 
 removeUnsupportedElements (array $elements)
 Removes all unsupported elements. More...
 
 makeElementListTinyMceCompliant (array $elements)
 

Protected Attributes

HTMLPurifier $purifier
 

Private Attributes

const HTML_PURIFIER_DIRECTORY = '/HTMLPurifier'
 
const NOT_SUPPORTED_TAGS
 

Detailed Description

Abstract class wrapping the HTMLPurifier instance.

Author
Michael Jansen mjans.nosp@m.en@d.nosp@m.ataba.nosp@m.y.de

Definition at line 25 of file class.ilHtmlPurifierAbstractLibWrapper.php.

Constructor & Destructor Documentation

◆ __construct()

ilHtmlPurifierAbstractLibWrapper::__construct ( )

ilHtmlPurifierAbstractLibWrapper constructor.

Reimplemented in ilExcInstructionPurifier, and ilSvyStandardPurifier.

Definition at line 46 of file class.ilHtmlPurifierAbstractLibWrapper.php.

47 {
48 $this->setPurifier(
49 new HTMLPurifier($this->getPurifierConfigInstance())
50 );
51 }

References getPurifierConfigInstance(), and setPurifier().

+ Here is the call graph for this function:

Member Function Documentation

◆ _getCacheDirectory()

static ilHtmlPurifierAbstractLibWrapper::_getCacheDirectory ( )
staticfinal

◆ getPurifier()

ilHtmlPurifierAbstractLibWrapper::getPurifier ( )
finalprotected

Definition at line 81 of file class.ilHtmlPurifierAbstractLibWrapper.php.

81 : HTMLPurifier
82 {
83 return $this->purifier;
84 }

References $purifier.

◆ getPurifierConfigInstance()

ilHtmlPurifierAbstractLibWrapper::getPurifierConfigInstance ( )
abstractprotected

◆ makeElementListTinyMceCompliant()

ilHtmlPurifierAbstractLibWrapper::makeElementListTinyMceCompliant ( array  $elements)
finalprotected
Parameters
string[]$elements
Returns
string[]

Definition at line 117 of file class.ilHtmlPurifierAbstractLibWrapper.php.

117 : array
118 {
119 // Bugfix #5945: Necessary because TinyMCE does not use the "u"
120 // html element but <span style="text-decoration: underline">E</span>
121
122 if (in_array('u', $elements) && !in_array('span', $elements)) {
123 $elements[] = 'span';
124 }
125
126 return $elements;
127 }

Referenced by ilAssHtmlPurifier\getAllowedElements(), ilAccessibilityDocumentHtmlPurifier\getPurifierConfigInstance(), ilExcInstructionPurifier\getPurifierConfigInstance(), ilHtmlForumPostPurifier\getPurifierConfigInstance(), ILIAS\LegalDocuments\HTMLPurifier\getPurifierConfigInstance(), ilSvyStandardPurifier\getPurifierConfigInstance(), and ilWebDAVMountInstructionsDocumentPurifier\getPurifierConfigInstance().

+ Here is the caller graph for this function:

◆ purify()

ilHtmlPurifierAbstractLibWrapper::purify ( string  $html)
final

Filters an HTML snippet/document to be XSS-free and standards-compliant.

Implements ilHtmlPurifierInterface.

Definition at line 53 of file class.ilHtmlPurifierAbstractLibWrapper.php.

53 : string
54 {
55 return $this->purifier->purify($html);
56 }

◆ purifyArray()

ilHtmlPurifierAbstractLibWrapper::purifyArray ( array  $htmlCollection)
final

Filters an array of HTML snippets/documents to be XSS-free and standards-compliant.

Parameters
string[]$htmlCollection
Returns
string[]
Exceptions
InvalidArgumentExceptionIf one of the arrays element is not of tpye string

Implements ilHtmlPurifierInterface.

Definition at line 58 of file class.ilHtmlPurifierAbstractLibWrapper.php.

58 : array
59 {
60 foreach ($htmlCollection as $key => $html) {
61 if (!is_string($html)) {
62 throw new InvalidArgumentException(sprintf(
63 'The element on index %s is not of type string: %s',
64 $key,
65 print_r($html, true)
66 ));
67 }
68 }
69
70 return $this->purifier->purifyArray($htmlCollection);
71 }

◆ removeUnsupportedElements()

ilHtmlPurifierAbstractLibWrapper::removeUnsupportedElements ( array  $elements)
finalprotected

Removes all unsupported elements.

Parameters
string[]$elements
Returns
string[]

Definition at line 100 of file class.ilHtmlPurifierAbstractLibWrapper.php.

100 : array
101 {
102 $supportedElements = [];
103
104 foreach ($elements as $element) {
105 if (!in_array($element, self::NOT_SUPPORTED_TAGS)) {
106 $supportedElements[] = $element;
107 }
108 }
109
110 return $supportedElements;
111 }

Referenced by ilAssHtmlPurifier\getAllowedElements(), ilAccessibilityDocumentHtmlPurifier\getPurifierConfigInstance(), ilExcInstructionPurifier\getPurifierConfigInstance(), ilHtmlForumPostPurifier\getPurifierConfigInstance(), ILIAS\LegalDocuments\HTMLPurifier\getPurifierConfigInstance(), ilSvyStandardPurifier\getPurifierConfigInstance(), and ilWebDAVMountInstructionsDocumentPurifier\getPurifierConfigInstance().

+ Here is the caller graph for this function:

◆ setPurifier()

ilHtmlPurifierAbstractLibWrapper::setPurifier ( HTMLPurifier  $purifier)
finalprotected

Definition at line 75 of file class.ilHtmlPurifierAbstractLibWrapper.php.

75 : self
76 {
77 $this->purifier = $purifier;
78 return $this;
79 }

References $purifier.

Referenced by __construct().

+ Here is the caller graph for this function:

Field Documentation

◆ $purifier

HTMLPurifier ilHtmlPurifierAbstractLibWrapper::$purifier
protected

Definition at line 41 of file class.ilHtmlPurifierAbstractLibWrapper.php.

Referenced by getPurifier(), and setPurifier().

◆ HTML_PURIFIER_DIRECTORY

const ilHtmlPurifierAbstractLibWrapper::HTML_PURIFIER_DIRECTORY = '/HTMLPurifier'
private

Definition at line 27 of file class.ilHtmlPurifierAbstractLibWrapper.php.

Referenced by _getCacheDirectory().

◆ NOT_SUPPORTED_TAGS

const ilHtmlPurifierAbstractLibWrapper::NOT_SUPPORTED_TAGS
private
Initial value:
= [
'rp',
'rt',
'rb',
'rtc',
'rbc',
'ruby',
'u',
'strike',
'param',
'object'
]

Definition at line 28 of file class.ilHtmlPurifierAbstractLibWrapper.php.


The documentation for this class was generated from the following file: