PluginSmartyinterface::preProcessing()   A
last analyzed

Complexity

Conditions 5
Paths 8

Size

Total Lines 33

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 33
rs 9.0808
c 0
b 0
f 0
cc 5
nc 8
nop 5
1
<?php
2
/**
3
 * Copyright (c) 2013-2017
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-2017 David Sanchez
11
 * @license   http://dwoo.org/LICENSE LGPLv3
12
 * @version   1.3.6
13
 * @date      2017-03-21
14
 * @link      http://dwoo.org/
15
 */
16
17
namespace Dwoo\Plugins\Blocks;
18
19
use Dwoo\Core;
20
use Dwoo\Compiler;
21
use Dwoo\Block\Plugin as BlockPlugin;
22
use Dwoo\ICompilable\Block as ICompilableBlock;
23
24
/**
25
 * Smarty compatibility layer for block plugins, this is used internally and you should not call it.
26
 * This software is provided 'as-is', without any express or implied warranty.
27
 * In no event will the authors be held liable for any damages arising from the use of this software.
28
 */
29
class PluginSmartyinterface extends BlockPlugin implements ICompilableBlock
30
{
31
    /**
32
     * @param       $__funcname
33
     * @param       $__functype
34
     * @param array $rest
35
     */
36
    public function init($__funcname, $__functype, array $rest = array())
0 ignored issues
show
Unused Code introduced by
The parameter $__funcname 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...
Unused Code introduced by
The parameter $__functype 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...
Unused Code introduced by
The parameter $rest 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...
37
    {
38
    }
39
40
    /**
41
     * @param Compiler $compiler
42
     * @param array    $params
43
     * @param string   $prepend
44
     * @param string   $append
45
     * @param string   $type
46
     *
47
     * @return string
48
     */
49
    public static function preProcessing(Compiler $compiler, array $params, $prepend, $append, $type)
50
    {
51
        $params     = $compiler->getCompiledParams($params);
52
        $func       = $params['__funcname'];
53
        $pluginType = $params['__functype'];
54
        $params     = $params['*'];
55
56
        if ($pluginType & Core::CUSTOM_PLUGIN) {
57
            $customPlugins = $compiler->getCore()->getCustomPlugins();
58
            $callback      = $customPlugins[$func]['callback'];
59
            if (is_array($callback)) {
60
                if (is_object($callback[0])) {
61
                    $callback = '$this->customPlugins[\'' . $func . '\'][0]->' . $callback[1] . '(';
62
                } else {
63
                    $callback = '' . $callback[0] . '::' . $callback[1] . '(';
64
                }
65
            } else {
66
                $callback = $callback . '(';
67
            }
68
        } else {
69
            $callback = 'smarty_block_' . $func . '(';
70
        }
71
72
        $paramsOut = '';
73
        foreach ($params as $i => $p) {
74
            $paramsOut .= var_export($i, true) . ' => ' . $p . ',';
75
        }
76
77
        $curBlock                      = &$compiler->getCurrentBlock();
78
        $curBlock['params']['postOut'] = Compiler::PHP_OPEN . ' $_block_content = ob_get_clean(); $_block_repeat=false; echo ' . $callback . '$_tag_stack[count($_tag_stack)-1], $_block_content, $this, $_block_repeat); } array_pop($_tag_stack);' . Compiler::PHP_CLOSE;
79
80
        return Compiler::PHP_OPEN . $prepend . ' if (!isset($_tag_stack)){ $_tag_stack = array(); } $_tag_stack[] = array(' . $paramsOut . '); $_block_repeat=true; ' . $callback . '$_tag_stack[count($_tag_stack)-1], null, $this, $_block_repeat); while ($_block_repeat) { ob_start();' . Compiler::PHP_CLOSE;
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
        return $content . $params['postOut'];
95
    }
96
}
97