ILIAS  trunk Revision v11.0_alpha-1761-g6dbbfa7b760
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator 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
 

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.

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

References getPurifierConfigInstance(), and setPurifier().

47  {
48  $this->setPurifier(
49  new HTMLPurifier($this->getPurifierConfigInstance())
50  );
51  }
+ Here is the call graph for this function:

Member Function Documentation

◆ _getCacheDirectory()

static ilHtmlPurifierAbstractLibWrapper::_getCacheDirectory ( )
staticfinal

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

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

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

86  : string
87  {
88  if (!is_dir(ilFileUtils::getDataDir() . self::HTML_PURIFIER_DIRECTORY)) {
89  ilFileUtils::makeDirParents(ilFileUtils::getDataDir() . self::HTML_PURIFIER_DIRECTORY);
90  }
91 
92  return ilFileUtils::getDataDir() . self::HTML_PURIFIER_DIRECTORY;
93  }
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 81 of file class.ilHtmlPurifierAbstractLibWrapper.php.

References $purifier.

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

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

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

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

References getPurifierConfigInstance().

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  }
+ 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 100 of file class.ilHtmlPurifierAbstractLibWrapper.php.

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

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

◆ setPurifier()

ilHtmlPurifierAbstractLibWrapper::setPurifier ( HTMLPurifier  $purifier)
finalprotected

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

References $purifier.

Referenced by __construct().

75  : self
76  {
77  $this->purifier = $purifier;
78  return $this;
79  }
+ 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.

◆ 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: