diff options
Diffstat (limited to 'inc/3rdparty/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php')
-rw-r--r-- | inc/3rdparty/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/inc/3rdparty/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php b/inc/3rdparty/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php deleted file mode 100644 index 38bf9533..00000000 --- a/inc/3rdparty/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php +++ /dev/null | |||
@@ -1,110 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Takes the contents of blockquote when in strict and reformats for validation. | ||
5 | */ | ||
6 | class HTMLPurifier_ChildDef_StrictBlockquote extends HTMLPurifier_ChildDef_Required | ||
7 | { | ||
8 | /** | ||
9 | * @type array | ||
10 | */ | ||
11 | protected $real_elements; | ||
12 | |||
13 | /** | ||
14 | * @type array | ||
15 | */ | ||
16 | protected $fake_elements; | ||
17 | |||
18 | /** | ||
19 | * @type bool | ||
20 | */ | ||
21 | public $allow_empty = true; | ||
22 | |||
23 | /** | ||
24 | * @type string | ||
25 | */ | ||
26 | public $type = 'strictblockquote'; | ||
27 | |||
28 | /** | ||
29 | * @type bool | ||
30 | */ | ||
31 | protected $init = false; | ||
32 | |||
33 | /** | ||
34 | * @param HTMLPurifier_Config $config | ||
35 | * @return array | ||
36 | * @note We don't want MakeWellFormed to auto-close inline elements since | ||
37 | * they might be allowed. | ||
38 | */ | ||
39 | public function getAllowedElements($config) | ||
40 | { | ||
41 | $this->init($config); | ||
42 | return $this->fake_elements; | ||
43 | } | ||
44 | |||
45 | /** | ||
46 | * @param array $children | ||
47 | * @param HTMLPurifier_Config $config | ||
48 | * @param HTMLPurifier_Context $context | ||
49 | * @return array | ||
50 | */ | ||
51 | public function validateChildren($children, $config, $context) | ||
52 | { | ||
53 | $this->init($config); | ||
54 | |||
55 | // trick the parent class into thinking it allows more | ||
56 | $this->elements = $this->fake_elements; | ||
57 | $result = parent::validateChildren($children, $config, $context); | ||
58 | $this->elements = $this->real_elements; | ||
59 | |||
60 | if ($result === false) { | ||
61 | return array(); | ||
62 | } | ||
63 | if ($result === true) { | ||
64 | $result = $children; | ||
65 | } | ||
66 | |||
67 | $def = $config->getHTMLDefinition(); | ||
68 | $block_wrap_name = $def->info_block_wrapper; | ||
69 | $block_wrap = false; | ||
70 | $ret = array(); | ||
71 | |||
72 | foreach ($result as $node) { | ||
73 | if ($block_wrap === false) { | ||
74 | if (($node instanceof HTMLPurifier_Node_Text && !$node->is_whitespace) || | ||
75 | ($node instanceof HTMLPurifier_Node_Element && !isset($this->elements[$node->name]))) { | ||
76 | $block_wrap = new HTMLPurifier_Node_Element($def->info_block_wrapper); | ||
77 | $ret[] = $block_wrap; | ||
78 | } | ||
79 | } else { | ||
80 | if ($node instanceof HTMLPurifier_Node_Element && isset($this->elements[$node->name])) { | ||
81 | $block_wrap = false; | ||
82 | |||
83 | } | ||
84 | } | ||
85 | if ($block_wrap) { | ||
86 | $block_wrap->children[] = $node; | ||
87 | } else { | ||
88 | $ret[] = $node; | ||
89 | } | ||
90 | } | ||
91 | return $ret; | ||
92 | } | ||
93 | |||
94 | /** | ||
95 | * @param HTMLPurifier_Config $config | ||
96 | */ | ||
97 | private function init($config) | ||
98 | { | ||
99 | if (!$this->init) { | ||
100 | $def = $config->getHTMLDefinition(); | ||
101 | // allow all inline elements | ||
102 | $this->real_elements = $this->elements; | ||
103 | $this->fake_elements = $def->info_content_sets['Flow']; | ||
104 | $this->fake_elements['#PCDATA'] = true; | ||
105 | $this->init = true; | ||
106 | } | ||
107 | } | ||
108 | } | ||
109 | |||
110 | // vim: et sw=4 sts=4 | ||