PluginAutoEscape::init()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
/**
3
 * Copyright (c) 2013-2016
4
 *
5
 * @category  Library
6
 * @package   Dwoo\Plugins\Blocks
7
 * @author    Jordi Boggiano <[email protected]>
8
 * @author    David Sanchez <[email protected]>
9
 * @copyright 2008-2013 Jordi Boggiano
10
 * @copyright 2013-2016 David Sanchez
11
 * @license   http://dwoo.org/LICENSE Modified BSD License
12
 * @version   1.3.0
13
 * @date      2016-09-19
14
 * @link      http://dwoo.org/
15
 */
16
17
namespace Dwoo\Plugins\Blocks;
18
19
use Dwoo\Compiler;
20
use Dwoo\Block\Plugin as BlockPlugin;
21
use Dwoo\ICompilable\Block as ICompilableBlock;
22
use Dwoo\Compilation\Exception as CompilationException;
23
24
/**
25
 * Overrides the compiler auto-escape setting within the block
26
 * <pre>
27
 *  * enabled : if set to "on", "enable", true or 1 then the compiler autoescaping is enabled inside this block. set to
28
 *  "off", "disable", false or 0 to disable it
29
 * </pre>
30
 * This software is provided 'as-is', without any express or implied warranty.
31
 * In no event will the authors be held liable for any damages arising from the use of this software.
32
 */
33
class PluginAutoEscape extends BlockPlugin implements ICompilableBlock
34
{
35
    protected static $stack = array();
36
37
    /**
38
     * @param $enabled
39
     */
40
    public function init($enabled)
0 ignored issues
show
Unused Code introduced by
The parameter $enabled is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
41
    {
42
    }
43
44
    /**
45
     * @param Compiler $compiler
46
     * @param array    $params
47
     * @param string   $prepend
48
     * @param string   $append
49
     * @param string   $type
50
     *
51
     * @return string
52
     * @throws CompilationException
53
     */
54
    public static function preProcessing(Compiler $compiler, array $params, $prepend, $append, $type)
55
    {
56
        $params = $compiler->getCompiledParams($params);
57
        switch (strtolower(trim((string)$params['enabled'], '"\''))) {
58
59
            case 'on':
60
            case 'true':
61
            case 'enabled':
62
            case 'enable':
63
            case '1':
64
                $enable = true;
65
                break;
66
            case 'off':
67
            case 'false':
68
            case 'disabled':
69
            case 'disable':
70
            case '0':
71
                $enable = false;
72
                break;
73
            default:
74
                throw new CompilationException($compiler, 'Auto_Escape : Invalid parameter (' . $params['enabled'] . '), valid parameters are "enable"/true or "disable"/false');
75
        }
76
77
        self::$stack[] = $compiler->getAutoEscape();
78
        $compiler->setAutoEscape($enable);
79
80
        return '';
81
    }
82
83
    /**
84
     * @param Compiler $compiler
85
     * @param array    $params
86
     * @param string   $prepend
87
     * @param string   $append
88
     * @param string   $content
89
     *
90
     * @return string
91
     */
92
    public static function postProcessing(Compiler $compiler, array $params, $prepend, $append, $content)
93
    {
94
        $compiler->setAutoEscape(array_pop(self::$stack));
95
96
        return $content;
97
    }
98
}
99