1<?php
2/**
3 * Smarty Internal Plugin Compile Debug
4 * Compiles the {debug} tag.
5 * It opens a window the the Smarty Debugging Console.
6 *
7 * @package    Smarty
8 * @subpackage Compiler
9 * @author     Uwe Tews
10 */
11
12/**
13 * Smarty Internal Plugin Compile Debug Class
14 *
15 * @package    Smarty
16 * @subpackage Compiler
17 */
18class Smarty_Internal_Compile_Debug extends Smarty_Internal_CompileBase
19{
20    /**
21     * Compiles code for the {debug} tag
22     *
23     * @param  array  $args     array with attributes from parser
24     * @param  object $compiler compiler object
25     *
26     * @return string compiled code
27     */
28    public function compile($args, $compiler)
29    {
30        // check and get attributes
31        $_attr = $this->getAttributes($compiler, $args);
32
33        // compile always as nocache
34        $compiler->tag_nocache = true;
35
36        // display debug template
37        $_output = "<?php \$_smarty_debug = new Smarty_Internal_Debug;\n \$_smarty_debug->display_debug(\$_smarty_tpl);\n";
38        $_output .= "unset(\$_smarty_debug);\n?>";
39        return $_output;
40    }
41}
42