Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
/**
4
 * Decorator that, depending on a token, switches between two definitions.
5
 */
6
class HTMLPurifier_AttrDef_Switch
7
{
8
 
9
    /**
10
     * @type string
11
     */
12
    protected $tag;
13
 
14
    /**
15
     * @type HTMLPurifier_AttrDef
16
     */
17
    protected $withTag;
18
 
19
    /**
20
     * @type HTMLPurifier_AttrDef
21
     */
22
    protected $withoutTag;
23
 
24
    /**
25
     * @param string $tag Tag name to switch upon
26
     * @param HTMLPurifier_AttrDef $with_tag Call if token matches tag
27
     * @param HTMLPurifier_AttrDef $without_tag Call if token doesn't match, or there is no token
28
     */
29
    public function __construct($tag, $with_tag, $without_tag)
30
    {
31
        $this->tag = $tag;
32
        $this->withTag = $with_tag;
33
        $this->withoutTag = $without_tag;
34
    }
35
 
36
    /**
37
     * @param string $string
38
     * @param HTMLPurifier_Config $config
39
     * @param HTMLPurifier_Context $context
40
     * @return bool|string
41
     */
42
    public function validate($string, $config, $context)
43
    {
44
        $token = $context->get('CurrentToken', true);
45
        if (!$token || $token->name !== $this->tag) {
46
            return $this->withoutTag->validate($string, $config, $context);
47
        } else {
48
            return $this->withTag->validate($string, $config, $context);
49
        }
50
    }
51
}
52
 
53
// vim: et sw=4 sts=4