]> git.mxchange.org Git - friendica.git/blob - library/HTMLPurifier/ChildDef/Chameleon.php
Fix generated po headers
[friendica.git] / library / HTMLPurifier / ChildDef / Chameleon.php
1 <?php
2
3 /**
4  * Definition that uses different definitions depending on context.
5  *
6  * The del and ins tags are notable because they allow different types of
7  * elements depending on whether or not they're in a block or inline context.
8  * Chameleon allows this behavior to happen by using two different
9  * definitions depending on context.  While this somewhat generalized,
10  * it is specifically intended for those two tags.
11  */
12 class HTMLPurifier_ChildDef_Chameleon extends HTMLPurifier_ChildDef
13 {
14
15     /**
16      * Instance of the definition object to use when inline. Usually stricter.
17      */
18     public $inline;
19
20     /**
21      * Instance of the definition object to use when block.
22      */
23     public $block;
24
25     public $type = 'chameleon';
26
27     /**
28      * @param $inline List of elements to allow when inline.
29      * @param $block List of elements to allow when block.
30      */
31     public function __construct($inline, $block) {
32         $this->inline = new HTMLPurifier_ChildDef_Optional($inline);
33         $this->block  = new HTMLPurifier_ChildDef_Optional($block);
34         $this->elements = $this->block->elements;
35     }
36
37     public function validateChildren($tokens_of_children, $config, $context) {
38         if ($context->get('IsInline') === false) {
39             return $this->block->validateChildren(
40                 $tokens_of_children, $config, $context);
41         } else {
42             return $this->inline->validateChildren(
43                 $tokens_of_children, $config, $context);
44         }
45     }
46 }
47
48 // vim: et sw=4 sts=4