ILIAS  release_5-2 Revision v5.2.25-18-g3f80b82851
Scripting.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4 
5 WARNING: THIS MODULE IS EXTREMELY DANGEROUS AS IT ENABLES INLINE SCRIPTING
6 INSIDE HTML PURIFIER DOCUMENTS. USE ONLY WITH TRUSTED USER INPUT!!!
7 
8 */
9 
17 {
21  public $name = 'Scripting';
22 
26  public $elements = array('script', 'noscript');
27 
31  public $content_sets = array('Block' => 'script | noscript', 'Inline' => 'script | noscript');
32 
36  public $safe = false;
37 
41  public function setup($config)
42  {
43  // TODO: create custom child-definition for noscript that
44  // auto-wraps stray #PCDATA in a similar manner to
45  // blockquote's custom definition (we would use it but
46  // blockquote's contents are optional while noscript's contents
47  // are required)
48 
49  // TODO: convert this to new syntax, main problem is getting
50  // both content sets working
51 
52  // In theory, this could be safe, but I don't see any reason to
53  // allow it.
54  $this->info['noscript'] = new HTMLPurifier_ElementDef();
55  $this->info['noscript']->attr = array(0 => array('Common'));
56  $this->info['noscript']->content_model = 'Heading | List | Block';
57  $this->info['noscript']->content_model_type = 'required';
58 
59  $this->info['script'] = new HTMLPurifier_ElementDef();
60  $this->info['script']->attr = array(
61  'defer' => new HTMLPurifier_AttrDef_Enum(array('defer')),
62  'src' => new HTMLPurifier_AttrDef_URI(true),
63  'type' => new HTMLPurifier_AttrDef_Enum(array('text/javascript'))
64  );
65  $this->info['script']->content_model = '#PCDATA';
66  $this->info['script']->content_model_type = 'optional';
67  $this->info['script']->attr_transform_pre[] =
68  $this->info['script']->attr_transform_post[] =
70  }
71 }
72 
73 // vim: et sw=4 sts=4
Structure that stores an HTML element definition.
Definition: ElementDef.php:11
XHTML 1.1 Scripting module, defines elements that are used to contain information pertaining to execu...
Definition: Scripting.php:16
Create styles array
The data for the language used.
Represents an XHTML 1.1 module, with information on elements, tags and attributes.
Definition: HTMLModule.php:18
Validates a keyword against a list of valid values.
Definition: Enum.php:10
Implements required attribute stipulation for <script>
Validates a URI as defined by RFC 3986.
Definition: URI.php:7