ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
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...
 

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.

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

References getPurifierConfigInstance(), and setPurifier().

33  {
34  $this->setPurifier(
35  new HTMLPurifier($this->getPurifierConfigInstance())
36  );
37  }
+ 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.

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

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

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)
+ 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.

References $purifier.

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

◆ getPurifierConfigInstance()

ilHtmlPurifierAbstractLibWrapper::getPurifierConfigInstance ( )
abstractprotected

Referenced by __construct(), and purifyArray().

+ Here is the caller graph for this function:

◆ makeElementListTinyMceCompliant()

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

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

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

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  }
+ 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.

References ILIAS\LTI\ToolProvider\$key, and getPurifierConfigInstance().

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
+ Here is the call graph for this function:

◆ removeUnsupportedElements()

ilHtmlPurifierAbstractLibWrapper::removeUnsupportedElements ( array  $elements)
finalprotected

Removes all unsupported elements.

Parameters
string[]$elements
Returns
string[]

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

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

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  }
+ Here is the caller graph for this function:

◆ setPurifier()

ilHtmlPurifierAbstractLibWrapper::setPurifier ( HTMLPurifier  $purifier)
finalprotected

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

References $purifier.

Referenced by __construct().

61  : self
62  {
63  $this->purifier = $purifier;
64  return $this;
65  }
+ 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: