Blame view

vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Edit.php 1.4 KB
abf1649b   andryeyev   Чистая установка ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  <?php
  
  /**
   * XHTML 1.1 Edit Module, defines editing-related elements. Text Extension
   * Module.
   */
  class HTMLPurifier_HTMLModule_Edit extends HTMLPurifier_HTMLModule
  {
  
      /**
       * @type string
       */
      public $name = 'Edit';
  
      /**
       * @param HTMLPurifier_Config $config
       */
      public function setup($config)
      {
          $contents = 'Chameleon: #PCDATA | Inline ! #PCDATA | Flow';
          $attr = array(
              'cite' => 'URI',
              // 'datetime' => 'Datetime', // not implemented
          );
          $this->addElement('del', 'Inline', $contents, 'Common', $attr);
          $this->addElement('ins', 'Inline', $contents, 'Common', $attr);
      }
  
      // HTML 4.01 specifies that ins/del must not contain block
      // elements when used in an inline context, chameleon is
      // a complicated workaround to acheive this effect
  
      // Inline context ! Block context (exclamation mark is
      // separator, see getChildDef for parsing)
  
      /**
       * @type bool
       */
      public $defines_child_def = true;
  
      /**
       * @param HTMLPurifier_ElementDef $def
       * @return HTMLPurifier_ChildDef_Chameleon
       */
      public function getChildDef($def)
      {
          if ($def->content_model_type != 'chameleon') {
              return false;
          }
          $value = explode('!', $def->content_model);
          return new HTMLPurifier_ChildDef_Chameleon($value[0], $value[1]);
      }
  }
  
  // vim: et sw=4 sts=4