ILIAS  release_8 Revision v8.24
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
 

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 32 of file class.ilHtmlPurifierAbstractLibWrapper.php.

33 {
34 $this->setPurifier(
35 new HTMLPurifier($this->getPurifierConfigInstance())
36 );
37 }

References getPurifierConfigInstance(), and setPurifier().

+ Here is the call graph for this function:

Member Function Documentation

◆ _getCacheDirectory()

static ilHtmlPurifierAbstractLibWrapper::_getCacheDirectory ( )
staticfinal

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

72 : string
73 {
74 if (!is_dir(ilFileUtils::getDataDir() . '/HTMLPurifier')) {
76 }
77
78 return ilFileUtils::getDataDir() . '/HTMLPurifier';
79 }
static makeDirParents(string $a_dir)
Create a new directory and all parent directories.
static getDataDir()
get data directory (outside webspace)

References ilFileUtils\getDataDir(), and ilFileUtils\makeDirParents().

Referenced by ilAccessibilityDocumentHtmlPurifier\__construct(), ilTermsOfServiceDocumentHtmlPurifier\__construct(), ilWebDAVMountInstructionsDocumentPurifier\__construct(), ilExcInstructionPurifier\getPurifierConfigInstance(), ilHtmlForumPostPurifier\getPurifierConfigInstance(), ilSvyStandardPurifier\getPurifierConfigInstance(), and ilAssHtmlPurifier\getPurifierConfigInstance().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getPurifier()

ilHtmlPurifierAbstractLibWrapper::getPurifier ( )
finalprotected

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

67 : HTMLPurifier
68 {
69 return $this->purifier;
70 }

References $purifier.

◆ getPurifierConfigInstance()

ilHtmlPurifierAbstractLibWrapper::getPurifierConfigInstance ( )
abstractprotected

◆ makeElementListTinyMceCompliant()

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

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

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

Referenced by ilAssHtmlPurifier\getAllowedElements(), ilExcInstructionPurifier\getPurifierConfigInstance(), ilHtmlForumPostPurifier\getPurifierConfigInstance(), ilSvyStandardPurifier\getPurifierConfigInstance(), ilAccessibilityDocumentHtmlPurifier\getPurifierConfigInstance(), ilTermsOfServiceDocumentHtmlPurifier\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.

Parameters
string$html
Returns
string

Implements ilHtmlPurifierInterface.

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

39 : string
40 {
41 return $this->purifier->purify($html);
42 }

◆ 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 44 of file class.ilHtmlPurifierAbstractLibWrapper.php.

44 : array
45 {
46 foreach ($htmlCollection as $key => $html) {
47 if (!is_string($html)) {
48 throw new InvalidArgumentException(sprintf(
49 'The element on index %s is not of type string: %s',
50 $key,
51 print_r($html, true)
52 ));
53 }
54 }
55
56 return $this->purifier->purifyArray($htmlCollection);
57 }
string $key
Consumer key/client ID value.
Definition: System.php:193

References ILIAS\LTI\ToolProvider\$key.

◆ removeUnsupportedElements()

ilHtmlPurifierAbstractLibWrapper::removeUnsupportedElements ( array  $elements)
finalprotected

Removes all unsupported elements.

Parameters
string[]$elements
Returns
string[]

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

86 : array
87 {
88 $supportedElements = [];
89
90 $notSupportedTags = [
91 'rp',
92 'rt',
93 'rb',
94 'rtc',
95 'rbc',
96 'ruby',
97 'u',
98 'strike',
99 'param',
100 'object'
101 ];
102
103 foreach ($elements as $element) {
104 if (!in_array($element, $notSupportedTags)) {
105 $supportedElements[] = $element;
106 }
107 }
108
109 return $supportedElements;
110 }

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

+ Here is the caller graph for this function:

◆ setPurifier()

ilHtmlPurifierAbstractLibWrapper::setPurifier ( HTMLPurifier  $purifier)
finalprotected

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

61 : self
62 {
63 $this->purifier = $purifier;
64 return $this;
65 }

References $purifier.

Referenced by __construct().

+ Here is the caller graph for this function:

Field Documentation

◆ $purifier

HTMLPurifier ilHtmlPurifierAbstractLibWrapper::$purifier
protected

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

Referenced by getPurifier(), and setPurifier().


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