Completed
Push — master ( bf2930...494091 )
by David
07:08 queued 03:26
created
lib/Dwoo/Plugins/Blocks/PluginAutoEscape.php 1 patch
Indentation   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -32,67 +32,67 @@
 block discarded – undo
32 32
  */
33 33
 class PluginAutoEscape extends BlockPlugin implements ICompilableBlock
34 34
 {
35
-    protected static $stack = array();
35
+	protected static $stack = array();
36 36
 
37
-    /**
38
-     * @param $enabled
39
-     */
40
-    public function init($enabled)
41
-    {
42
-    }
37
+	/**
38
+	 * @param $enabled
39
+	 */
40
+	public function init($enabled)
41
+	{
42
+	}
43 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'], '"\''))) {
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 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
-        }
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 76
 
77
-        self::$stack[] = $compiler->getAutoEscape();
78
-        $compiler->setAutoEscape($enable);
77
+		self::$stack[] = $compiler->getAutoEscape();
78
+		$compiler->setAutoEscape($enable);
79 79
 
80
-        return '';
81
-    }
80
+		return '';
81
+	}
82 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));
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 95
 
96
-        return $content;
97
-    }
96
+		return $content;
97
+	}
98 98
 }
Please login to merge, or discard this patch.
lib/Dwoo/Plugins/Blocks/PluginElse.php 1 patch
Indentation   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -38,59 +38,59 @@
 block discarded – undo
38 38
  */
39 39
 class PluginElse extends BlockPlugin implements ICompilableBlock
40 40
 {
41
-    public function init()
42
-    {
43
-    }
41
+	public function init()
42
+	{
43
+	}
44 44
 
45
-    /**
46
-     * @param Compiler $compiler
47
-     * @param array    $params
48
-     * @param string   $prepend
49
-     * @param string   $append
50
-     * @param string   $type
51
-     *
52
-     * @return string
53
-     * @throws CompilationException
54
-     */
55
-    public static function preProcessing(Compiler $compiler, array $params, $prepend, $append, $type)
56
-    {
57
-        $preContent = '';
58
-        while (true) {
59
-            $preContent .= $compiler->removeTopBlock();
60
-            $block = &$compiler->getCurrentBlock();
61
-            if (!$block) {
62
-                throw new CompilationException($compiler, 'An else block was found but it was not preceded by an if or other else-able construct');
63
-            }
64
-            $interfaces = class_implements($block['class']);
65
-            if (in_array('Dwoo\IElseable', $interfaces) !== false) {
66
-                break;
67
-            }
68
-        }
45
+	/**
46
+	 * @param Compiler $compiler
47
+	 * @param array    $params
48
+	 * @param string   $prepend
49
+	 * @param string   $append
50
+	 * @param string   $type
51
+	 *
52
+	 * @return string
53
+	 * @throws CompilationException
54
+	 */
55
+	public static function preProcessing(Compiler $compiler, array $params, $prepend, $append, $type)
56
+	{
57
+		$preContent = '';
58
+		while (true) {
59
+			$preContent .= $compiler->removeTopBlock();
60
+			$block = &$compiler->getCurrentBlock();
61
+			if (!$block) {
62
+				throw new CompilationException($compiler, 'An else block was found but it was not preceded by an if or other else-able construct');
63
+			}
64
+			$interfaces = class_implements($block['class']);
65
+			if (in_array('Dwoo\IElseable', $interfaces) !== false) {
66
+				break;
67
+			}
68
+		}
69 69
 
70
-        $params['initialized'] = true;
71
-        $compiler->injectBlock($type, $params);
70
+		$params['initialized'] = true;
71
+		$compiler->injectBlock($type, $params);
72 72
 
73
-        return $preContent;
74
-    }
73
+		return $preContent;
74
+	}
75 75
 
76
-    /**
77
-     * @param Compiler $compiler
78
-     * @param array    $params
79
-     * @param string   $prepend
80
-     * @param string   $append
81
-     * @param string   $content
82
-     *
83
-     * @return string
84
-     */
85
-    public static function postProcessing(Compiler $compiler, array $params, $prepend, $append, $content)
86
-    {
87
-        if (!isset($params['initialized'])) {
88
-            return '';
89
-        }
76
+	/**
77
+	 * @param Compiler $compiler
78
+	 * @param array    $params
79
+	 * @param string   $prepend
80
+	 * @param string   $append
81
+	 * @param string   $content
82
+	 *
83
+	 * @return string
84
+	 */
85
+	public static function postProcessing(Compiler $compiler, array $params, $prepend, $append, $content)
86
+	{
87
+		if (!isset($params['initialized'])) {
88
+			return '';
89
+		}
90 90
 
91
-        $block                      = &$compiler->getCurrentBlock();
92
-        $block['params']['hasElse'] = Compiler::PHP_OPEN . "else {\n" . Compiler::PHP_CLOSE . $content . Compiler::PHP_OPEN . "\n}" . Compiler::PHP_CLOSE;
91
+		$block                      = &$compiler->getCurrentBlock();
92
+		$block['params']['hasElse'] = Compiler::PHP_OPEN . "else {\n" . Compiler::PHP_CLOSE . $content . Compiler::PHP_OPEN . "\n}" . Compiler::PHP_CLOSE;
93 93
 
94
-        return '';
95
-    }
94
+		return '';
95
+	}
96 96
 }
Please login to merge, or discard this patch.
lib/Dwoo/Plugins/Blocks/PluginSection.php 1 patch
Indentation   +117 added lines, -117 removed lines patch added patch discarded remove patch
@@ -28,98 +28,98 @@  discard block
 block discarded – undo
28 28
  */
29 29
 class PluginSection extends BlockPlugin implements ICompilableBlock, IElseable
30 30
 {
31
-    public static $cnt = 0;
32
-
33
-    /**
34
-     * @param      $name
35
-     * @param      $loop
36
-     * @param null $start
37
-     * @param null $step
38
-     * @param null $max
39
-     * @param bool $show
40
-     */
41
-    public function init($name, $loop, $start = null, $step = null, $max = null, $show = true)
42
-    {
43
-    }
44
-
45
-    /**
46
-     * @param Compiler $compiler
47
-     * @param array    $params
48
-     * @param string   $prepend
49
-     * @param string   $append
50
-     * @param string   $type
51
-     *
52
-     * @return string
53
-     */
54
-    public static function preProcessing(Compiler $compiler, array $params, $prepend, $append, $type)
55
-    {
56
-        return '';
57
-    }
58
-
59
-    /**
60
-     * @param Compiler $compiler
61
-     * @param array    $params
62
-     * @param string   $prepend
63
-     * @param string   $append
64
-     * @param string   $content
65
-     *
66
-     * @return string
67
-     */
68
-    public static function postProcessing(Compiler $compiler, array $params, $prepend, $append, $content)
69
-    {
70
-        $output = Compiler::PHP_OPEN;
71
-        $params = $compiler->getCompiledParams($params);
72
-
73
-        // assigns params
74
-        $loop  = $params['loop'];
75
-        $start = $params['start'];
76
-        $max   = $params['max'];
77
-        $name  = $params['name'];
78
-        $step  = $params['step'];
79
-        $show  = $params['show'];
80
-
81
-        // gets unique id
82
-        $cnt = self::$cnt ++;
83
-
84
-        $output .= '$this->globals[\'section\'][' . $name . '] = array();' . "\n" . '$_section' . $cnt . ' =& $this->globals[\'section\'][' . $name . '];' . "\n";
85
-
86
-        if ($loop !== 'null') {
87
-            $output .= '$_section' . $cnt . '[\'loop\'] = is_array($tmp = ' . $loop . ') ? count($tmp) : max(0, (int) $tmp);' . "\n";
88
-        } else {
89
-            $output .= '$_section' . $cnt . '[\'loop\'] = 1;' . "\n";
90
-        }
91
-
92
-        if ($show !== 'null') {
93
-            $output .= '$_section' . $cnt . '[\'show\'] = ' . $show . ";\n";
94
-        } else {
95
-            $output .= '$_section' . $cnt . '[\'show\'] = true;' . "\n";
96
-        }
97
-
98
-        if ($name !== 'null') {
99
-            $output .= '$_section' . $cnt . '[\'name\'] = ' . $name . ";\n";
100
-        } else {
101
-            $output .= '$_section' . $cnt . '[\'name\'] = true;' . "\n";
102
-        }
103
-
104
-        if ($max !== 'null') {
105
-            $output .= '$_section' . $cnt . '[\'max\'] = (int)' . $max . ";\n" . 'if($_section' . $cnt . '[\'max\'] < 0) { $_section' . $cnt . '[\'max\'] = $_section' . $cnt . '[\'loop\']; }' . "\n";
106
-        } else {
107
-            $output .= '$_section' . $cnt . '[\'max\'] = $_section' . $cnt . '[\'loop\'];' . "\n";
108
-        }
109
-
110
-        if ($step !== 'null') {
111
-            $output .= '$_section' . $cnt . '[\'step\'] = (int)' . $step . ' == 0 ? 1 : (int) ' . $step . ";\n";
112
-        } else {
113
-            $output .= '$_section' . $cnt . '[\'step\'] = 1;' . "\n";
114
-        }
115
-
116
-        if ($start !== 'null') {
117
-            $output .= '$_section' . $cnt . '[\'start\'] = (int)' . $start . ";\n";
118
-        } else {
119
-            $output .= '$_section' . $cnt . '[\'start\'] = $_section' . $cnt . '[\'step\'] > 0 ? 0 : $_section' . $cnt . '[\'loop\'] - 1;' . "\n" . 'if ($_section' . $cnt . '[\'start\'] < 0) { $_section' . $cnt . '[\'start\'] = max($_section' . $cnt . '[\'step\'] > 0 ? 0 : -1, $_section' . $cnt . '[\'loop\'] + $_section' . $cnt . '[\'start\']); } ' . "\n" . 'else { $_section' . $cnt . '[\'start\'] = min($_section' . $cnt . '[\'start\'], $_section' . $cnt . '[\'step\'] > 0 ? $_section' . $cnt . '[\'loop\'] : $_section' . $cnt . '[\'loop\'] -1); }' . "\n";
120
-        }
121
-
122
-        /*		if ($usesAny) {
31
+	public static $cnt = 0;
32
+
33
+	/**
34
+	 * @param      $name
35
+	 * @param      $loop
36
+	 * @param null $start
37
+	 * @param null $step
38
+	 * @param null $max
39
+	 * @param bool $show
40
+	 */
41
+	public function init($name, $loop, $start = null, $step = null, $max = null, $show = true)
42
+	{
43
+	}
44
+
45
+	/**
46
+	 * @param Compiler $compiler
47
+	 * @param array    $params
48
+	 * @param string   $prepend
49
+	 * @param string   $append
50
+	 * @param string   $type
51
+	 *
52
+	 * @return string
53
+	 */
54
+	public static function preProcessing(Compiler $compiler, array $params, $prepend, $append, $type)
55
+	{
56
+		return '';
57
+	}
58
+
59
+	/**
60
+	 * @param Compiler $compiler
61
+	 * @param array    $params
62
+	 * @param string   $prepend
63
+	 * @param string   $append
64
+	 * @param string   $content
65
+	 *
66
+	 * @return string
67
+	 */
68
+	public static function postProcessing(Compiler $compiler, array $params, $prepend, $append, $content)
69
+	{
70
+		$output = Compiler::PHP_OPEN;
71
+		$params = $compiler->getCompiledParams($params);
72
+
73
+		// assigns params
74
+		$loop  = $params['loop'];
75
+		$start = $params['start'];
76
+		$max   = $params['max'];
77
+		$name  = $params['name'];
78
+		$step  = $params['step'];
79
+		$show  = $params['show'];
80
+
81
+		// gets unique id
82
+		$cnt = self::$cnt ++;
83
+
84
+		$output .= '$this->globals[\'section\'][' . $name . '] = array();' . "\n" . '$_section' . $cnt . ' =& $this->globals[\'section\'][' . $name . '];' . "\n";
85
+
86
+		if ($loop !== 'null') {
87
+			$output .= '$_section' . $cnt . '[\'loop\'] = is_array($tmp = ' . $loop . ') ? count($tmp) : max(0, (int) $tmp);' . "\n";
88
+		} else {
89
+			$output .= '$_section' . $cnt . '[\'loop\'] = 1;' . "\n";
90
+		}
91
+
92
+		if ($show !== 'null') {
93
+			$output .= '$_section' . $cnt . '[\'show\'] = ' . $show . ";\n";
94
+		} else {
95
+			$output .= '$_section' . $cnt . '[\'show\'] = true;' . "\n";
96
+		}
97
+
98
+		if ($name !== 'null') {
99
+			$output .= '$_section' . $cnt . '[\'name\'] = ' . $name . ";\n";
100
+		} else {
101
+			$output .= '$_section' . $cnt . '[\'name\'] = true;' . "\n";
102
+		}
103
+
104
+		if ($max !== 'null') {
105
+			$output .= '$_section' . $cnt . '[\'max\'] = (int)' . $max . ";\n" . 'if($_section' . $cnt . '[\'max\'] < 0) { $_section' . $cnt . '[\'max\'] = $_section' . $cnt . '[\'loop\']; }' . "\n";
106
+		} else {
107
+			$output .= '$_section' . $cnt . '[\'max\'] = $_section' . $cnt . '[\'loop\'];' . "\n";
108
+		}
109
+
110
+		if ($step !== 'null') {
111
+			$output .= '$_section' . $cnt . '[\'step\'] = (int)' . $step . ' == 0 ? 1 : (int) ' . $step . ";\n";
112
+		} else {
113
+			$output .= '$_section' . $cnt . '[\'step\'] = 1;' . "\n";
114
+		}
115
+
116
+		if ($start !== 'null') {
117
+			$output .= '$_section' . $cnt . '[\'start\'] = (int)' . $start . ";\n";
118
+		} else {
119
+			$output .= '$_section' . $cnt . '[\'start\'] = $_section' . $cnt . '[\'step\'] > 0 ? 0 : $_section' . $cnt . '[\'loop\'] - 1;' . "\n" . 'if ($_section' . $cnt . '[\'start\'] < 0) { $_section' . $cnt . '[\'start\'] = max($_section' . $cnt . '[\'step\'] > 0 ? 0 : -1, $_section' . $cnt . '[\'loop\'] + $_section' . $cnt . '[\'start\']); } ' . "\n" . 'else { $_section' . $cnt . '[\'start\'] = min($_section' . $cnt . '[\'start\'], $_section' . $cnt . '[\'step\'] > 0 ? $_section' . $cnt . '[\'loop\'] : $_section' . $cnt . '[\'loop\'] -1); }' . "\n";
120
+		}
121
+
122
+		/*		if ($usesAny) {
123 123
                     $output .= "\n".'$this->globals["section"]['.$name.'] = array'."\n(";
124 124
                     if ($usesIndex) $output .="\n\t".'"index"		=> 0,';
125 125
                     if ($usesIteration) $output .="\n\t".'"iteration"		=> 1,';
@@ -131,29 +131,29 @@  discard block
 block discarded – undo
131 131
                 }
132 132
         */
133 133
 
134
-        $output .= 'if ($_section' . $cnt . '[\'show\']) {' . "\n";
135
-        if ($start === 'null' && $step === 'null' && $max === 'null') {
136
-            $output .= '	$_section' . $cnt . '[\'total\'] = $_section' . $cnt . '[\'loop\'];' . "\n";
137
-        } else {
138
-            $output .= '	$_section' . $cnt . '[\'total\'] = min(ceil(($_section' . $cnt . '[\'step\'] > 0 ? $_section' . $cnt . '[\'loop\'] - $_section' . $cnt . '[\'start\'] : $_section' . $cnt . '[\'start\'] + 1) / abs($_section' . $cnt . '[\'step\'])), $_section' . $cnt . '[\'max\']);' . "\n";
139
-        }
140
-        $output .= '	if ($_section' . $cnt . '[\'total\'] == 0) {' . "\n" . '		$_section' . $cnt . '[\'show\'] = false;' . "\n" . '	}' . "\n" . '} else {' . "\n" . '	$_section' . $cnt . '[\'total\'] = 0;' . "\n}\n";
141
-        $output .= 'if ($_section' . $cnt . '[\'show\']) {' . "\n";
142
-        $output .= "\t" . 'for ($this->scope[' . $name . '] = $_section' . $cnt . '[\'start\'], $_section' . $cnt . '[\'iteration\'] = 1; ' . '$_section' . $cnt . '[\'iteration\'] <= $_section' . $cnt . '[\'total\']; ' . '$this->scope[' . $name . '] += $_section' . $cnt . '[\'step\'], $_section' . $cnt . '[\'iteration\']++) {' . "\n";
143
-        $output .= "\t\t" . '$_section' . $cnt . '[\'rownum\'] = $_section' . $cnt . '[\'iteration\'];' . "\n";
144
-        $output .= "\t\t" . '$_section' . $cnt . '[\'index_prev\'] = $this->scope[' . $name . '] - $_section' . $cnt . '[\'step\'];' . "\n";
145
-        $output .= "\t\t" . '$_section' . $cnt . '[\'index_next\'] = $this->scope[' . $name . '] + $_section' . $cnt . '[\'step\'];' . "\n";
146
-        $output .= "\t\t" . '$_section' . $cnt . '[\'first\']      = ($_section' . $cnt . '[\'iteration\'] == 1);' . "\n";
147
-        $output .= "\t\t" . '$_section' . $cnt . '[\'last\']       = ($_section' . $cnt . '[\'iteration\'] == $_section' . $cnt . '[\'total\']);' . "\n";
148
-
149
-        $output .= Compiler::PHP_CLOSE . $content . Compiler::PHP_OPEN;
150
-
151
-        $output .= "\n\t}\n} " . Compiler::PHP_CLOSE;
152
-
153
-        if (isset($params['hasElse'])) {
154
-            $output .= $params['hasElse'];
155
-        }
156
-
157
-        return $output;
158
-    }
134
+		$output .= 'if ($_section' . $cnt . '[\'show\']) {' . "\n";
135
+		if ($start === 'null' && $step === 'null' && $max === 'null') {
136
+			$output .= '	$_section' . $cnt . '[\'total\'] = $_section' . $cnt . '[\'loop\'];' . "\n";
137
+		} else {
138
+			$output .= '	$_section' . $cnt . '[\'total\'] = min(ceil(($_section' . $cnt . '[\'step\'] > 0 ? $_section' . $cnt . '[\'loop\'] - $_section' . $cnt . '[\'start\'] : $_section' . $cnt . '[\'start\'] + 1) / abs($_section' . $cnt . '[\'step\'])), $_section' . $cnt . '[\'max\']);' . "\n";
139
+		}
140
+		$output .= '	if ($_section' . $cnt . '[\'total\'] == 0) {' . "\n" . '		$_section' . $cnt . '[\'show\'] = false;' . "\n" . '	}' . "\n" . '} else {' . "\n" . '	$_section' . $cnt . '[\'total\'] = 0;' . "\n}\n";
141
+		$output .= 'if ($_section' . $cnt . '[\'show\']) {' . "\n";
142
+		$output .= "\t" . 'for ($this->scope[' . $name . '] = $_section' . $cnt . '[\'start\'], $_section' . $cnt . '[\'iteration\'] = 1; ' . '$_section' . $cnt . '[\'iteration\'] <= $_section' . $cnt . '[\'total\']; ' . '$this->scope[' . $name . '] += $_section' . $cnt . '[\'step\'], $_section' . $cnt . '[\'iteration\']++) {' . "\n";
143
+		$output .= "\t\t" . '$_section' . $cnt . '[\'rownum\'] = $_section' . $cnt . '[\'iteration\'];' . "\n";
144
+		$output .= "\t\t" . '$_section' . $cnt . '[\'index_prev\'] = $this->scope[' . $name . '] - $_section' . $cnt . '[\'step\'];' . "\n";
145
+		$output .= "\t\t" . '$_section' . $cnt . '[\'index_next\'] = $this->scope[' . $name . '] + $_section' . $cnt . '[\'step\'];' . "\n";
146
+		$output .= "\t\t" . '$_section' . $cnt . '[\'first\']      = ($_section' . $cnt . '[\'iteration\'] == 1);' . "\n";
147
+		$output .= "\t\t" . '$_section' . $cnt . '[\'last\']       = ($_section' . $cnt . '[\'iteration\'] == $_section' . $cnt . '[\'total\']);' . "\n";
148
+
149
+		$output .= Compiler::PHP_CLOSE . $content . Compiler::PHP_OPEN;
150
+
151
+		$output .= "\n\t}\n} " . Compiler::PHP_CLOSE;
152
+
153
+		if (isset($params['hasElse'])) {
154
+			$output .= $params['hasElse'];
155
+		}
156
+
157
+		return $output;
158
+	}
159 159
 }
Please login to merge, or discard this patch.
lib/Dwoo/Plugins/Blocks/PluginFor.php 1 patch
Indentation   +146 added lines, -146 removed lines patch added patch discarded remove patch
@@ -35,158 +35,158 @@
 block discarded – undo
35 35
  */
36 36
 class PluginFor extends BlockPlugin implements ICompilableBlock, IElseable
37 37
 {
38
-    public static $cnt = 0;
39
-
40
-    /**
41
-     * @param      $name
42
-     * @param      $from
43
-     * @param null $to
44
-     * @param int  $step
45
-     * @param int  $skip
46
-     */
47
-    public function init($name, $from, $to = null, $step = 1, $skip = 0)
48
-    {
49
-    }
50
-
51
-    /**
52
-     * @param Compiler $compiler
53
-     * @param array    $params
54
-     * @param string   $prepend
55
-     * @param string   $append
56
-     * @param string   $type
57
-     *
58
-     * @return string
59
-     */
60
-    public static function preProcessing(Compiler $compiler, array $params, $prepend, $append, $type)
61
-    {
62
-        // get block params and save the current template pointer to use it in the postProcessing method
63
-        $currentBlock                         = &$compiler->getCurrentBlock();
64
-        $currentBlock['params']['tplPointer'] = $compiler->getPointer();
65
-
66
-        return '';
67
-    }
68
-
69
-    /**
70
-     * @param Compiler $compiler
71
-     * @param array    $params
72
-     * @param string   $prepend
73
-     * @param string   $append
74
-     * @param string   $content
75
-     *
76
-     * @return string
77
-     */
78
-    public static function postProcessing(Compiler $compiler, array $params, $prepend, $append, $content)
79
-    {
80
-        $params = $compiler->getCompiledParams($params);
81
-        $tpl    = $compiler->getTemplateSource($params['tplPointer']);
82
-
83
-        // assigns params
84
-        $from = $params['from'];
85
-        $name = $params['name'];
86
-        $step = $params['step'];
87
-        $to   = $params['to'];
88
-
89
-        // evaluates which global variables have to be computed
90
-        $varName       = '$dwoo.for.' . trim($name, '"\'') . '.';
91
-        $shortVarName  = '$.for.' . trim($name, '"\'') . '.';
92
-        $usesAny       = strpos($tpl, $varName) !== false || strpos($tpl, $shortVarName) !== false;
93
-        $usesFirst     = strpos($tpl, $varName . 'first') !== false || strpos($tpl, $shortVarName . 'first') !== false;
94
-        $usesLast      = strpos($tpl, $varName . 'last') !== false || strpos($tpl, $shortVarName . 'last') !== false;
95
-        $usesIndex     = strpos($tpl, $varName . 'index') !== false || strpos($tpl, $shortVarName . 'index') !== false;
96
-        $usesIteration = $usesFirst || $usesLast || strpos($tpl, $varName . 'iteration') !== false || strpos($tpl, $shortVarName . 'iteration') !== false;
97
-        $usesShow      = strpos($tpl, $varName . 'show') !== false || strpos($tpl, $shortVarName . 'show') !== false;
98
-        $usesTotal     = $usesLast || strpos($tpl, $varName . 'total') !== false || strpos($tpl, $shortVarName . 'total') !== false;
99
-
100
-        if (strpos($name, '$this->scope[') !== false) {
101
-            $usesAny = $usesFirst = $usesLast = $usesIndex = $usesIteration = $usesShow = $usesTotal = true;
102
-        }
103
-
104
-        // gets foreach id
105
-        $cnt = self::$cnt ++;
106
-
107
-        // builds pre processing output for
108
-        $out = Compiler::PHP_OPEN . "\n" . '$_for' . $cnt . '_from = ' . $from . ';' . "\n" . '$_for' . $cnt . '_to = ' . $to . ';' . "\n" . '$_for' . $cnt . '_step = abs(' . $step . ');' . "\n" . 'if (is_numeric($_for' . $cnt . '_from) && !is_numeric($_for' . $cnt . '_to)) { $this->triggerError(\'For requires the <em>to</em> parameter when using a numerical <em>from</em>\'); }' . "\n" . '$tmp_shows = $this->isArray($_for' . $cnt . '_from, true) || (is_numeric($_for' . $cnt . '_from) && (abs(($_for' . $cnt . '_from - $_for' . $cnt . '_to)/$_for' . $cnt . '_step) !== 0 || $_for' . $cnt . '_from == $_for' . $cnt . '_to));';
109
-        // adds for properties
110
-        if ($usesAny) {
111
-            $out .= "\n" . '$this->globals["for"][' . $name . '] = array' . "\n(";
112
-            if ($usesIndex) {
113
-                $out .= "\n\t" . '"index"		=> 0,';
114
-            }
115
-            if ($usesIteration) {
116
-                $out .= "\n\t" . '"iteration"		=> 1,';
117
-            }
118
-            if ($usesFirst) {
119
-                $out .= "\n\t" . '"first"		=> null,';
120
-            }
121
-            if ($usesLast) {
122
-                $out .= "\n\t" . '"last"		=> null,';
123
-            }
124
-            if ($usesShow) {
125
-                $out .= "\n\t" . '"show"		=> $tmp_shows,';
126
-            }
127
-            if ($usesTotal) {
128
-                $out .= "\n\t" . '"total"		=> $this->isArray($_for' . $cnt . '_from) ? floor($this->count($_for' . $cnt . '_from) / $_for' . $cnt . '_step) : (is_numeric($_for' . $cnt . '_from) ? abs(($_for' . $cnt . '_to + 1 - $_for' . $cnt . '_from)/$_for' . $cnt . '_step) : 0),';
129
-            }
130
-            $out .= "\n);\n" . '$_for' . $cnt . '_glob =& $this->globals["for"][' . $name . '];';
131
-        }
132
-        // checks if for must be looped
133
-        $out .= "\n" . 'if ($tmp_shows)' . "\n{";
134
-        // set from/to to correct values if an array was given
135
-        $out .= "\n\t" . 'if ($this->isArray($_for' . $cnt . '_from' . (isset($params['hasElse']) ? ', true' : '') . ') == true) {
38
+	public static $cnt = 0;
39
+
40
+	/**
41
+	 * @param      $name
42
+	 * @param      $from
43
+	 * @param null $to
44
+	 * @param int  $step
45
+	 * @param int  $skip
46
+	 */
47
+	public function init($name, $from, $to = null, $step = 1, $skip = 0)
48
+	{
49
+	}
50
+
51
+	/**
52
+	 * @param Compiler $compiler
53
+	 * @param array    $params
54
+	 * @param string   $prepend
55
+	 * @param string   $append
56
+	 * @param string   $type
57
+	 *
58
+	 * @return string
59
+	 */
60
+	public static function preProcessing(Compiler $compiler, array $params, $prepend, $append, $type)
61
+	{
62
+		// get block params and save the current template pointer to use it in the postProcessing method
63
+		$currentBlock                         = &$compiler->getCurrentBlock();
64
+		$currentBlock['params']['tplPointer'] = $compiler->getPointer();
65
+
66
+		return '';
67
+	}
68
+
69
+	/**
70
+	 * @param Compiler $compiler
71
+	 * @param array    $params
72
+	 * @param string   $prepend
73
+	 * @param string   $append
74
+	 * @param string   $content
75
+	 *
76
+	 * @return string
77
+	 */
78
+	public static function postProcessing(Compiler $compiler, array $params, $prepend, $append, $content)
79
+	{
80
+		$params = $compiler->getCompiledParams($params);
81
+		$tpl    = $compiler->getTemplateSource($params['tplPointer']);
82
+
83
+		// assigns params
84
+		$from = $params['from'];
85
+		$name = $params['name'];
86
+		$step = $params['step'];
87
+		$to   = $params['to'];
88
+
89
+		// evaluates which global variables have to be computed
90
+		$varName       = '$dwoo.for.' . trim($name, '"\'') . '.';
91
+		$shortVarName  = '$.for.' . trim($name, '"\'') . '.';
92
+		$usesAny       = strpos($tpl, $varName) !== false || strpos($tpl, $shortVarName) !== false;
93
+		$usesFirst     = strpos($tpl, $varName . 'first') !== false || strpos($tpl, $shortVarName . 'first') !== false;
94
+		$usesLast      = strpos($tpl, $varName . 'last') !== false || strpos($tpl, $shortVarName . 'last') !== false;
95
+		$usesIndex     = strpos($tpl, $varName . 'index') !== false || strpos($tpl, $shortVarName . 'index') !== false;
96
+		$usesIteration = $usesFirst || $usesLast || strpos($tpl, $varName . 'iteration') !== false || strpos($tpl, $shortVarName . 'iteration') !== false;
97
+		$usesShow      = strpos($tpl, $varName . 'show') !== false || strpos($tpl, $shortVarName . 'show') !== false;
98
+		$usesTotal     = $usesLast || strpos($tpl, $varName . 'total') !== false || strpos($tpl, $shortVarName . 'total') !== false;
99
+
100
+		if (strpos($name, '$this->scope[') !== false) {
101
+			$usesAny = $usesFirst = $usesLast = $usesIndex = $usesIteration = $usesShow = $usesTotal = true;
102
+		}
103
+
104
+		// gets foreach id
105
+		$cnt = self::$cnt ++;
106
+
107
+		// builds pre processing output for
108
+		$out = Compiler::PHP_OPEN . "\n" . '$_for' . $cnt . '_from = ' . $from . ';' . "\n" . '$_for' . $cnt . '_to = ' . $to . ';' . "\n" . '$_for' . $cnt . '_step = abs(' . $step . ');' . "\n" . 'if (is_numeric($_for' . $cnt . '_from) && !is_numeric($_for' . $cnt . '_to)) { $this->triggerError(\'For requires the <em>to</em> parameter when using a numerical <em>from</em>\'); }' . "\n" . '$tmp_shows = $this->isArray($_for' . $cnt . '_from, true) || (is_numeric($_for' . $cnt . '_from) && (abs(($_for' . $cnt . '_from - $_for' . $cnt . '_to)/$_for' . $cnt . '_step) !== 0 || $_for' . $cnt . '_from == $_for' . $cnt . '_to));';
109
+		// adds for properties
110
+		if ($usesAny) {
111
+			$out .= "\n" . '$this->globals["for"][' . $name . '] = array' . "\n(";
112
+			if ($usesIndex) {
113
+				$out .= "\n\t" . '"index"		=> 0,';
114
+			}
115
+			if ($usesIteration) {
116
+				$out .= "\n\t" . '"iteration"		=> 1,';
117
+			}
118
+			if ($usesFirst) {
119
+				$out .= "\n\t" . '"first"		=> null,';
120
+			}
121
+			if ($usesLast) {
122
+				$out .= "\n\t" . '"last"		=> null,';
123
+			}
124
+			if ($usesShow) {
125
+				$out .= "\n\t" . '"show"		=> $tmp_shows,';
126
+			}
127
+			if ($usesTotal) {
128
+				$out .= "\n\t" . '"total"		=> $this->isArray($_for' . $cnt . '_from) ? floor($this->count($_for' . $cnt . '_from) / $_for' . $cnt . '_step) : (is_numeric($_for' . $cnt . '_from) ? abs(($_for' . $cnt . '_to + 1 - $_for' . $cnt . '_from)/$_for' . $cnt . '_step) : 0),';
129
+			}
130
+			$out .= "\n);\n" . '$_for' . $cnt . '_glob =& $this->globals["for"][' . $name . '];';
131
+		}
132
+		// checks if for must be looped
133
+		$out .= "\n" . 'if ($tmp_shows)' . "\n{";
134
+		// set from/to to correct values if an array was given
135
+		$out .= "\n\t" . 'if ($this->isArray($_for' . $cnt . '_from' . (isset($params['hasElse']) ? ', true' : '') . ') == true) {
136 136
 		$_for' . $cnt . '_to = is_numeric($_for' . $cnt . '_to) ? $_for' . $cnt . '_to - $_for' . $cnt . '_step : $this->count($_for' . $cnt . '_from) - 1;
137 137
 		$_for' . $cnt . '_from = 0;
138 138
 	}';
139 139
 
140
-        // if input are pure numbers it shouldn't reorder them, if it's variables it gets too messy though so in that case a counter should be used
141
-        $reverse     = false;
142
-        $condition   = '<=';
143
-        $incrementer = '+';
144
-
145
-        if (preg_match('{^(["\']?)([0-9]+)\1$}', $from, $mN1) && preg_match('{^(["\']?)([0-9]+)\1$}', $to, $mN2)) {
146
-            $from = (int)$mN1[2];
147
-            $to   = (int)$mN2[2];
148
-            if ($from > $to) {
149
-                $reverse     = true;
150
-                $condition   = '>=';
151
-                $incrementer = '-';
152
-            }
153
-        }
154
-
155
-        // reverse from and to if needed
156
-        if (!$reverse) {
157
-            $out .= "\n\t" . 'if ($_for' . $cnt . '_from > $_for' . $cnt . '_to) {
140
+		// if input are pure numbers it shouldn't reorder them, if it's variables it gets too messy though so in that case a counter should be used
141
+		$reverse     = false;
142
+		$condition   = '<=';
143
+		$incrementer = '+';
144
+
145
+		if (preg_match('{^(["\']?)([0-9]+)\1$}', $from, $mN1) && preg_match('{^(["\']?)([0-9]+)\1$}', $to, $mN2)) {
146
+			$from = (int)$mN1[2];
147
+			$to   = (int)$mN2[2];
148
+			if ($from > $to) {
149
+				$reverse     = true;
150
+				$condition   = '>=';
151
+				$incrementer = '-';
152
+			}
153
+		}
154
+
155
+		// reverse from and to if needed
156
+		if (!$reverse) {
157
+			$out .= "\n\t" . 'if ($_for' . $cnt . '_from > $_for' . $cnt . '_to) {
158 158
 				$tmp = $_for' . $cnt . '_from;
159 159
 				$_for' . $cnt . '_from = $_for' . $cnt . '_to;
160 160
 				$_for' . $cnt . '_to = $tmp;
161 161
 			}';
162
-        }
163
-
164
-        $out .= "\n\t" . 'for ($this->scope[' . $name . '] = $_for' . $cnt . '_from; $this->scope[' . $name . '] ' . $condition . ' $_for' . $cnt . '_to; $this->scope[' . $name . '] ' . $incrementer . '= $_for' . $cnt . '_step)' . "\n\t{";
165
-        // updates properties
166
-        if ($usesIndex) {
167
-            $out .= "\n\t\t" . '$_for' . $cnt . '_glob["index"] = $this->scope[' . $name . '];';
168
-        }
169
-        if ($usesFirst) {
170
-            $out .= "\n\t\t" . '$_for' . $cnt . '_glob["first"] = (string) ($_for' . $cnt . '_glob["iteration"] === 1);';
171
-        }
172
-        if ($usesLast) {
173
-            $out .= "\n\t\t" . '$_for' . $cnt . '_glob["last"] = (string) ($_for' . $cnt . '_glob["iteration"] === $_for' . $cnt . '_glob["total"]);';
174
-        }
175
-        $out .= "\n/* -- for start output */\n" . Compiler::PHP_CLOSE;
176
-
177
-        // build post processing output and cache it
178
-        $postOut = Compiler::PHP_OPEN . '/* -- for end output */';
179
-        // update properties
180
-        if ($usesIteration) {
181
-            $postOut .= "\n\t\t" . '$_for' . $cnt . '_glob["iteration"]+=1;';
182
-        }
183
-        // end loop
184
-        $postOut .= "\n\t}\n}\n" . Compiler::PHP_CLOSE;
185
-
186
-        if (isset($params['hasElse'])) {
187
-            $postOut .= $params['hasElse'];
188
-        }
189
-
190
-        return $out . $content . $postOut;
191
-    }
162
+		}
163
+
164
+		$out .= "\n\t" . 'for ($this->scope[' . $name . '] = $_for' . $cnt . '_from; $this->scope[' . $name . '] ' . $condition . ' $_for' . $cnt . '_to; $this->scope[' . $name . '] ' . $incrementer . '= $_for' . $cnt . '_step)' . "\n\t{";
165
+		// updates properties
166
+		if ($usesIndex) {
167
+			$out .= "\n\t\t" . '$_for' . $cnt . '_glob["index"] = $this->scope[' . $name . '];';
168
+		}
169
+		if ($usesFirst) {
170
+			$out .= "\n\t\t" . '$_for' . $cnt . '_glob["first"] = (string) ($_for' . $cnt . '_glob["iteration"] === 1);';
171
+		}
172
+		if ($usesLast) {
173
+			$out .= "\n\t\t" . '$_for' . $cnt . '_glob["last"] = (string) ($_for' . $cnt . '_glob["iteration"] === $_for' . $cnt . '_glob["total"]);';
174
+		}
175
+		$out .= "\n/* -- for start output */\n" . Compiler::PHP_CLOSE;
176
+
177
+		// build post processing output and cache it
178
+		$postOut = Compiler::PHP_OPEN . '/* -- for end output */';
179
+		// update properties
180
+		if ($usesIteration) {
181
+			$postOut .= "\n\t\t" . '$_for' . $cnt . '_glob["iteration"]+=1;';
182
+		}
183
+		// end loop
184
+		$postOut .= "\n\t}\n}\n" . Compiler::PHP_CLOSE;
185
+
186
+		if (isset($params['hasElse'])) {
187
+			$postOut .= $params['hasElse'];
188
+		}
189
+
190
+		return $out . $content . $postOut;
191
+	}
192 192
 }
Please login to merge, or discard this patch.
lib/Dwoo/Plugins/Blocks/PluginTopLevelBlock.php 1 patch
Indentation   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -26,35 +26,35 @@
 block discarded – undo
26 26
  */
27 27
 final class PluginTopLevelBlock extends BlockPlugin implements ICompilableBlock
28 28
 {
29
-    public function init()
30
-    {
31
-    }
29
+	public function init()
30
+	{
31
+	}
32 32
 
33
-    /**
34
-     * @param Compiler $compiler
35
-     * @param array    $params
36
-     * @param string   $prepend
37
-     * @param string   $append
38
-     * @param string   $type
39
-     *
40
-     * @return string
41
-     */
42
-    public static function preProcessing(Compiler $compiler, array $params, $prepend, $append, $type)
43
-    {
44
-        return '/* end template head */ ob_start(); /* template body */ ' . Compiler::PHP_CLOSE;
45
-    }
33
+	/**
34
+	 * @param Compiler $compiler
35
+	 * @param array    $params
36
+	 * @param string   $prepend
37
+	 * @param string   $append
38
+	 * @param string   $type
39
+	 *
40
+	 * @return string
41
+	 */
42
+	public static function preProcessing(Compiler $compiler, array $params, $prepend, $append, $type)
43
+	{
44
+		return '/* end template head */ ob_start(); /* template body */ ' . Compiler::PHP_CLOSE;
45
+	}
46 46
 
47
-    /**
48
-     * @param Compiler $compiler
49
-     * @param array    $params
50
-     * @param string   $prepend
51
-     * @param string   $append
52
-     * @param string   $content
53
-     *
54
-     * @return string
55
-     */
56
-    public static function postProcessing(Compiler $compiler, array $params, $prepend, $append, $content)
57
-    {
58
-        return $content . Compiler::PHP_OPEN . ' /* end template body */' . "\n" . 'return $this->buffer . ob_get_clean();';
59
-    }
47
+	/**
48
+	 * @param Compiler $compiler
49
+	 * @param array    $params
50
+	 * @param string   $prepend
51
+	 * @param string   $append
52
+	 * @param string   $content
53
+	 *
54
+	 * @return string
55
+	 */
56
+	public static function postProcessing(Compiler $compiler, array $params, $prepend, $append, $content)
57
+	{
58
+		return $content . Compiler::PHP_OPEN . ' /* end template body */' . "\n" . 'return $this->buffer . ob_get_clean();';
59
+	}
60 60
 }
Please login to merge, or discard this patch.
lib/Dwoo/Plugins/Filters/PluginHtmlFormat.php 1 patch
Indentation   +157 added lines, -157 removed lines patch added patch discarded remove patch
@@ -30,161 +30,161 @@
 block discarded – undo
30 30
  */
31 31
 class PluginHtmlFormat extends Filter
32 32
 {
33
-    /**
34
-     * tab count to auto-indent the source.
35
-     *
36
-     * @var int
37
-     */
38
-    protected static $tabCount = - 1;
39
-
40
-    /**
41
-     * stores the additional data (following a tag) of the last call to open/close/singleTag.
42
-     *
43
-     * @var string
44
-     */
45
-    protected static $lastCallAdd = '';
46
-
47
-    /**
48
-     * formats the input using the singleTag/closeTag/openTag functions.
49
-     * It is auto indenting the whole code, excluding <textarea>, <code> and <pre> tags that must be kept intact.
50
-     * Those tags must however contain only htmlentities-escaped text for everything to work properly.
51
-     * Inline tags are presented on a single line with their content
52
-     *
53
-     * @param string $input the xhtml to format
54
-     *
55
-     * @return string formatted xhtml
56
-     */
57
-    public function process($input)
58
-    {
59
-        self::$tabCount = - 1;
60
-
61
-        // auto indent all but textareas & pre (or we have weird tabs inside)
62
-        $input = preg_replace_callback("#(<[^>]+>)(\s*)([^<]*)#", array(
63
-            'self',
64
-            'tagDispatcher'
65
-        ), $input);
66
-
67
-        return $input;
68
-    }
69
-
70
-    /**
71
-     * helper function for format()'s preg_replace call.
72
-     *
73
-     * @param array $input array of matches (1=>tag, 2=>whitespace(optional), 3=>additional non-html content)
74
-     *
75
-     * @return string the indented tag
76
-     */
77
-    protected static function tagDispatcher($input)
78
-    {
79
-        // textarea, pre, code tags and comments are to be left alone to avoid any non-wanted whitespace inside them so it just outputs them as they were
80
-        if (substr($input[1], 0, 9) == '<textarea' || substr($input[1], 0, 4) == '<pre' || substr($input[1], 0, 5) == '<code' || substr($input[1], 0, 4) == '<!--' || substr($input[1], 0, 9) == '<![CDATA[') {
81
-            return $input[1] . $input[3];
82
-        }
83
-        // closing textarea, code and pre tags and self-closed tags (i.e. <br />) are printed as singleTags because we didn't use openTag for the formers and the latter is a single tag
84
-        if (substr($input[1], 0, 10) == '</textarea' || substr($input[1], 0, 5) == '</pre' || substr($input[1], 0, 6) == '</code' || substr($input[1], - 2) == '/>') {
85
-            return self::singleTag($input[1], $input[3], $input[2]);
86
-        }
87
-        // it's the closing tag
88
-        if ($input[0][1] == '/') {
89
-            return self::closeTag($input[1], $input[3], $input[2]);
90
-        }
91
-
92
-        // opening tag
93
-        return self::openTag($input[1], $input[3], $input[2]);
94
-    }
95
-
96
-    /**
97
-     * returns an open tag and adds a tab into the auto indenting.
98
-     *
99
-     * @param string $tag        content of the tag
100
-     * @param string $add        additional data (anything before the following tag)
101
-     * @param string $whitespace white space between the tag and the additional data
102
-     *
103
-     * @return string
104
-     */
105
-    protected static function openTag($tag, $add, $whitespace)
106
-    {
107
-        $tabs = str_pad('', self::$tabCount ++, "\t");
108
-
109
-        if (preg_match('#^<(a|label|option|textarea|h1|h2|h3|h4|h5|h6|strong|b|em|i|abbr|acronym|cite|span|sub|sup|u|s|title)(?: [^>]*|)>#', $tag)) {
110
-            // if it's one of those tag it's inline so it does not require a leading line break
111
-            $result = $tag . $whitespace . str_replace("\n", "\n" . $tabs, $add);
112
-        } elseif (substr($tag, 0, 9) == '<!DOCTYPE') {
113
-            // it's the doctype declaration so no line break here either
114
-            $result = $tabs . $tag;
115
-        } else {
116
-            // normal block tag
117
-            $result = "\n" . $tabs . $tag;
118
-
119
-            if (!empty($add)) {
120
-                $result .= "\n" . $tabs . "\t" . str_replace("\n", "\n\t" . $tabs, $add);
121
-            }
122
-        }
123
-
124
-        self::$lastCallAdd = $add;
125
-
126
-        return $result;
127
-    }
128
-
129
-    /**
130
-     * returns a closing tag and removes a tab from the auto indenting.
131
-     *
132
-     * @param string $tag        content of the tag
133
-     * @param string $add        additional data (anything before the following tag)
134
-     * @param string $whitespace white space between the tag and the additional data
135
-     *
136
-     * @return string
137
-     */
138
-    protected static function closeTag($tag, $add, $whitespace)
139
-    {
140
-        $tabs = str_pad('', -- self::$tabCount, "\t");
141
-
142
-        // if it's one of those tag it's inline so it does not require a leading line break
143
-        if (preg_match('#^</(a|label|option|textarea|h1|h2|h3|h4|h5|h6|strong|b|em|i|abbr|acronym|cite|span|sub|sup|u|s|title)>#', $tag)) {
144
-            $result = $tag . $whitespace . str_replace("\n", "\n" . $tabs, $add);
145
-        } else {
146
-            $result = "\n" . $tabs . $tag;
147
-
148
-            if (!empty($add)) {
149
-                $result .= "\n" . $tabs . "\t" . str_replace("\n", "\n\t" . $tabs, $add);
150
-            }
151
-        }
152
-
153
-        self::$lastCallAdd = $add;
154
-
155
-        return $result;
156
-    }
157
-
158
-    /**
159
-     * returns a single tag with auto indenting.
160
-     *
161
-     * @param string $tag content of the tag
162
-     * @param string $add additional data (anything before the following tag)
163
-     *
164
-     * @return string
165
-     */
166
-    protected static function singleTag($tag, $add, $whitespace)
167
-    {
168
-        $tabs = str_pad('', self::$tabCount, "\t");
169
-
170
-        // if it's img, br it's inline so it does not require a leading line break
171
-        // if it's a closing textarea, code or pre tag, it does not require a leading line break either or it creates whitespace at the end of those blocks
172
-        if (preg_match('#^<(img|br|/textarea|/pre|/code)(?: [^>]*|)>#', $tag)) {
173
-            $result = $tag . $whitespace;
174
-
175
-            if (!empty($add)) {
176
-                $result .= str_replace("\n", "\n" . $tabs, $add);
177
-            }
178
-        } else {
179
-            $result = "\n" . $tabs . $tag;
180
-
181
-            if (!empty($add)) {
182
-                $result .= "\n" . $tabs . str_replace("\n", "\n" . $tabs, $add);
183
-            }
184
-        }
185
-
186
-        self::$lastCallAdd = $add;
187
-
188
-        return $result;
189
-    }
33
+	/**
34
+	 * tab count to auto-indent the source.
35
+	 *
36
+	 * @var int
37
+	 */
38
+	protected static $tabCount = - 1;
39
+
40
+	/**
41
+	 * stores the additional data (following a tag) of the last call to open/close/singleTag.
42
+	 *
43
+	 * @var string
44
+	 */
45
+	protected static $lastCallAdd = '';
46
+
47
+	/**
48
+	 * formats the input using the singleTag/closeTag/openTag functions.
49
+	 * It is auto indenting the whole code, excluding <textarea>, <code> and <pre> tags that must be kept intact.
50
+	 * Those tags must however contain only htmlentities-escaped text for everything to work properly.
51
+	 * Inline tags are presented on a single line with their content
52
+	 *
53
+	 * @param string $input the xhtml to format
54
+	 *
55
+	 * @return string formatted xhtml
56
+	 */
57
+	public function process($input)
58
+	{
59
+		self::$tabCount = - 1;
60
+
61
+		// auto indent all but textareas & pre (or we have weird tabs inside)
62
+		$input = preg_replace_callback("#(<[^>]+>)(\s*)([^<]*)#", array(
63
+			'self',
64
+			'tagDispatcher'
65
+		), $input);
66
+
67
+		return $input;
68
+	}
69
+
70
+	/**
71
+	 * helper function for format()'s preg_replace call.
72
+	 *
73
+	 * @param array $input array of matches (1=>tag, 2=>whitespace(optional), 3=>additional non-html content)
74
+	 *
75
+	 * @return string the indented tag
76
+	 */
77
+	protected static function tagDispatcher($input)
78
+	{
79
+		// textarea, pre, code tags and comments are to be left alone to avoid any non-wanted whitespace inside them so it just outputs them as they were
80
+		if (substr($input[1], 0, 9) == '<textarea' || substr($input[1], 0, 4) == '<pre' || substr($input[1], 0, 5) == '<code' || substr($input[1], 0, 4) == '<!--' || substr($input[1], 0, 9) == '<![CDATA[') {
81
+			return $input[1] . $input[3];
82
+		}
83
+		// closing textarea, code and pre tags and self-closed tags (i.e. <br />) are printed as singleTags because we didn't use openTag for the formers and the latter is a single tag
84
+		if (substr($input[1], 0, 10) == '</textarea' || substr($input[1], 0, 5) == '</pre' || substr($input[1], 0, 6) == '</code' || substr($input[1], - 2) == '/>') {
85
+			return self::singleTag($input[1], $input[3], $input[2]);
86
+		}
87
+		// it's the closing tag
88
+		if ($input[0][1] == '/') {
89
+			return self::closeTag($input[1], $input[3], $input[2]);
90
+		}
91
+
92
+		// opening tag
93
+		return self::openTag($input[1], $input[3], $input[2]);
94
+	}
95
+
96
+	/**
97
+	 * returns an open tag and adds a tab into the auto indenting.
98
+	 *
99
+	 * @param string $tag        content of the tag
100
+	 * @param string $add        additional data (anything before the following tag)
101
+	 * @param string $whitespace white space between the tag and the additional data
102
+	 *
103
+	 * @return string
104
+	 */
105
+	protected static function openTag($tag, $add, $whitespace)
106
+	{
107
+		$tabs = str_pad('', self::$tabCount ++, "\t");
108
+
109
+		if (preg_match('#^<(a|label|option|textarea|h1|h2|h3|h4|h5|h6|strong|b|em|i|abbr|acronym|cite|span|sub|sup|u|s|title)(?: [^>]*|)>#', $tag)) {
110
+			// if it's one of those tag it's inline so it does not require a leading line break
111
+			$result = $tag . $whitespace . str_replace("\n", "\n" . $tabs, $add);
112
+		} elseif (substr($tag, 0, 9) == '<!DOCTYPE') {
113
+			// it's the doctype declaration so no line break here either
114
+			$result = $tabs . $tag;
115
+		} else {
116
+			// normal block tag
117
+			$result = "\n" . $tabs . $tag;
118
+
119
+			if (!empty($add)) {
120
+				$result .= "\n" . $tabs . "\t" . str_replace("\n", "\n\t" . $tabs, $add);
121
+			}
122
+		}
123
+
124
+		self::$lastCallAdd = $add;
125
+
126
+		return $result;
127
+	}
128
+
129
+	/**
130
+	 * returns a closing tag and removes a tab from the auto indenting.
131
+	 *
132
+	 * @param string $tag        content of the tag
133
+	 * @param string $add        additional data (anything before the following tag)
134
+	 * @param string $whitespace white space between the tag and the additional data
135
+	 *
136
+	 * @return string
137
+	 */
138
+	protected static function closeTag($tag, $add, $whitespace)
139
+	{
140
+		$tabs = str_pad('', -- self::$tabCount, "\t");
141
+
142
+		// if it's one of those tag it's inline so it does not require a leading line break
143
+		if (preg_match('#^</(a|label|option|textarea|h1|h2|h3|h4|h5|h6|strong|b|em|i|abbr|acronym|cite|span|sub|sup|u|s|title)>#', $tag)) {
144
+			$result = $tag . $whitespace . str_replace("\n", "\n" . $tabs, $add);
145
+		} else {
146
+			$result = "\n" . $tabs . $tag;
147
+
148
+			if (!empty($add)) {
149
+				$result .= "\n" . $tabs . "\t" . str_replace("\n", "\n\t" . $tabs, $add);
150
+			}
151
+		}
152
+
153
+		self::$lastCallAdd = $add;
154
+
155
+		return $result;
156
+	}
157
+
158
+	/**
159
+	 * returns a single tag with auto indenting.
160
+	 *
161
+	 * @param string $tag content of the tag
162
+	 * @param string $add additional data (anything before the following tag)
163
+	 *
164
+	 * @return string
165
+	 */
166
+	protected static function singleTag($tag, $add, $whitespace)
167
+	{
168
+		$tabs = str_pad('', self::$tabCount, "\t");
169
+
170
+		// if it's img, br it's inline so it does not require a leading line break
171
+		// if it's a closing textarea, code or pre tag, it does not require a leading line break either or it creates whitespace at the end of those blocks
172
+		if (preg_match('#^<(img|br|/textarea|/pre|/code)(?: [^>]*|)>#', $tag)) {
173
+			$result = $tag . $whitespace;
174
+
175
+			if (!empty($add)) {
176
+				$result .= str_replace("\n", "\n" . $tabs, $add);
177
+			}
178
+		} else {
179
+			$result = "\n" . $tabs . $tag;
180
+
181
+			if (!empty($add)) {
182
+				$result .= "\n" . $tabs . str_replace("\n", "\n" . $tabs, $add);
183
+			}
184
+		}
185
+
186
+		self::$lastCallAdd = $add;
187
+
188
+		return $result;
189
+	}
190 190
 }
Please login to merge, or discard this patch.
lib/Dwoo/Loader.php 1 patch
Indentation   +162 added lines, -162 removed lines patch added patch discarded remove patch
@@ -23,176 +23,176 @@
 block discarded – undo
23 23
  */
24 24
 class Loader implements ILoader
25 25
 {
26
-    /**
27
-     * Stores the plugin directories.
28
-     *
29
-     * @see addDirectory
30
-     * @var array
31
-     */
32
-    protected $paths = array();
26
+	/**
27
+	 * Stores the plugin directories.
28
+	 *
29
+	 * @see addDirectory
30
+	 * @var array
31
+	 */
32
+	protected $paths = array();
33 33
 
34
-    /**
35
-     * Stores the plugins names/paths relationships
36
-     * don't edit this on your own, use addDirectory.
37
-     *
38
-     * @see addDirectory
39
-     * @var array
40
-     */
41
-    protected $classPath = array();
34
+	/**
35
+	 * Stores the plugins names/paths relationships
36
+	 * don't edit this on your own, use addDirectory.
37
+	 *
38
+	 * @see addDirectory
39
+	 * @var array
40
+	 */
41
+	protected $classPath = array();
42 42
 
43
-    /**
44
-     * Path where class paths cache files are written.
45
-     *
46
-     * @var string
47
-     */
48
-    protected $cacheDir;
43
+	/**
44
+	 * Path where class paths cache files are written.
45
+	 *
46
+	 * @var string
47
+	 */
48
+	protected $cacheDir;
49 49
 
50
-    /**
51
-     * Path where builtin plugins are stored.
52
-     *
53
-     * @var string
54
-     */
55
-    protected $corePluginDir;
50
+	/**
51
+	 * Path where builtin plugins are stored.
52
+	 *
53
+	 * @var string
54
+	 */
55
+	protected $corePluginDir;
56 56
 
57
-    /**
58
-     * Loader constructor.
59
-     *
60
-     * @param $cacheDir
61
-     */
62
-    public function __construct($cacheDir)
63
-    {
64
-        $this->corePluginDir = __DIR__ . DIRECTORY_SEPARATOR . 'Plugins';
65
-        $this->cacheDir      = rtrim($cacheDir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
57
+	/**
58
+	 * Loader constructor.
59
+	 *
60
+	 * @param $cacheDir
61
+	 */
62
+	public function __construct($cacheDir)
63
+	{
64
+		$this->corePluginDir = __DIR__ . DIRECTORY_SEPARATOR . 'Plugins';
65
+		$this->cacheDir      = rtrim($cacheDir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
66 66
 
67
-        // include class paths or rebuild paths if the cache file isn't there
68
-        $cacheFile = $this->cacheDir . 'classpath.cache.d' . Core::RELEASE_TAG . '.php';
69
-        if (file_exists($cacheFile)) {
70
-            $classpath       = file_get_contents($cacheFile);
71
-            $this->classPath = unserialize($classpath) + $this->classPath;
72
-        } else {
73
-            $this->rebuildClassPathCache($this->corePluginDir, $cacheFile);
74
-        }
75
-    }
67
+		// include class paths or rebuild paths if the cache file isn't there
68
+		$cacheFile = $this->cacheDir . 'classpath.cache.d' . Core::RELEASE_TAG . '.php';
69
+		if (file_exists($cacheFile)) {
70
+			$classpath       = file_get_contents($cacheFile);
71
+			$this->classPath = unserialize($classpath) + $this->classPath;
72
+		} else {
73
+			$this->rebuildClassPathCache($this->corePluginDir, $cacheFile);
74
+		}
75
+	}
76 76
 
77
-    /**
78
-     * Rebuilds class paths, scans the given directory recursively and saves all paths in the given file.
79
-     *
80
-     * @param string $path      the plugin path to scan
81
-     * @param string $cacheFile the file where to store the plugin paths cache, it will be overwritten
82
-     *
83
-     * @throws Exception
84
-     */
85
-    protected function rebuildClassPathCache($path, $cacheFile)
86
-    {
87
-        if ($cacheFile !== false) {
88
-            $tmp             = $this->classPath;
89
-            $this->classPath = array();
90
-        }
77
+	/**
78
+	 * Rebuilds class paths, scans the given directory recursively and saves all paths in the given file.
79
+	 *
80
+	 * @param string $path      the plugin path to scan
81
+	 * @param string $cacheFile the file where to store the plugin paths cache, it will be overwritten
82
+	 *
83
+	 * @throws Exception
84
+	 */
85
+	protected function rebuildClassPathCache($path, $cacheFile)
86
+	{
87
+		if ($cacheFile !== false) {
88
+			$tmp             = $this->classPath;
89
+			$this->classPath = array();
90
+		}
91 91
 
92
-        // iterates over all files/folders
93
-        $list = glob(rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . '*');
94
-        if (is_array($list)) {
95
-            foreach ($list as $f) {
96
-                if (is_dir($f)) {
97
-                    $this->rebuildClassPathCache($f, false);
98
-                } else {
99
-                    // TODO: is it still valid now?
100
-                    $this->classPath[str_replace(array(
101
-                        'function.',
102
-                        'block.',
103
-                        'modifier.',
104
-                        'outputfilter.',
105
-                        'filter.',
106
-                        'prefilter.',
107
-                        'postfilter.',
108
-                        'pre.',
109
-                        'post.',
110
-                        'output.',
111
-                        'shared.',
112
-                        'helper.'
113
-                    ), '', basename($f, '.php'))] = $f;
114
-                }
115
-            }
116
-        }
92
+		// iterates over all files/folders
93
+		$list = glob(rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . '*');
94
+		if (is_array($list)) {
95
+			foreach ($list as $f) {
96
+				if (is_dir($f)) {
97
+					$this->rebuildClassPathCache($f, false);
98
+				} else {
99
+					// TODO: is it still valid now?
100
+					$this->classPath[str_replace(array(
101
+						'function.',
102
+						'block.',
103
+						'modifier.',
104
+						'outputfilter.',
105
+						'filter.',
106
+						'prefilter.',
107
+						'postfilter.',
108
+						'pre.',
109
+						'post.',
110
+						'output.',
111
+						'shared.',
112
+						'helper.'
113
+					), '', basename($f, '.php'))] = $f;
114
+				}
115
+			}
116
+		}
117 117
 
118
-        // save in file if it's the first call (not recursed)
119
-        if ($cacheFile !== false) {
120
-            if (!file_put_contents($cacheFile, serialize($this->classPath))) {
121
-                throw new Exception('Could not write into ' . $cacheFile .
122
-                    ', either because the folder is not there (create it) or because of the chmod configuration (please ensure this directory is writable by php), alternatively you can change the directory used with $dwoo->setCompileDir() or provide a custom loader object with $dwoo->setLoader()');
123
-            }
124
-            $this->classPath += $tmp;
125
-        }
126
-    }
118
+		// save in file if it's the first call (not recursed)
119
+		if ($cacheFile !== false) {
120
+			if (!file_put_contents($cacheFile, serialize($this->classPath))) {
121
+				throw new Exception('Could not write into ' . $cacheFile .
122
+					', either because the folder is not there (create it) or because of the chmod configuration (please ensure this directory is writable by php), alternatively you can change the directory used with $dwoo->setCompileDir() or provide a custom loader object with $dwoo->setLoader()');
123
+			}
124
+			$this->classPath += $tmp;
125
+		}
126
+	}
127 127
 
128
-    /**
129
-     * Loads a plugin file.
130
-     *
131
-     * @param string $class       the plugin name, without the `Plugin` prefix
132
-     * @param bool   $forceRehash if true, the class path caches will be rebuilt if the plugin is not found, in case it
133
-     *                            has just been added, defaults to true
134
-     *
135
-     * @throws Exception
136
-     */
137
-    public function loadPlugin($class, $forceRehash = true)
138
-    {
139
-        /**
140
-         * An unknown class was requested (maybe newly added) or the
141
-         * include failed so we rebuild the cache. include() will fail
142
-         * with an uncatchable error if the file doesn't exist, which
143
-         * usually means that the cache is stale and must be rebuilt,
144
-         * so we check for that before trying to include() the plugin.
145
-         */
146
-        if ((!isset($this->classPath[$class]) || !is_readable($this->classPath[$class])) || (!isset
147
-                ($this->classPath[$class . 'Compile']) || !is_readable($this->classPath[$class . 'Compile']))) {
148
-            if ($forceRehash) {
149
-                $this->rebuildClassPathCache($this->corePluginDir, $this->cacheDir . 'classpath.cache.d' .
150
-                    Core::RELEASE_TAG . '.php');
151
-                foreach ($this->paths as $path => $file) {
152
-                    $this->rebuildClassPathCache($path, $file);
153
-                }
154
-                if (isset($this->classPath[$class])) {
155
-                    include_once $this->classPath[$class];
156
-                } elseif (isset($this->classPath[$class . 'Compile'])) {
157
-                    include_once $this->classPath[$class . 'Compile'];
158
-                } else {
159
-                    throw new Exception('Plugin "' . $class .
160
-                        '" can not be found, maybe you forgot to bind it if it\'s a custom plugin ?', E_USER_NOTICE);
161
-                }
162
-            } else {
163
-                throw new Exception('Plugin "' . $class .
164
-                    '" can not be found, maybe you forgot to bind it if it\'s a custom plugin ?', E_USER_NOTICE);
165
-            }
166
-        }
167
-    }
128
+	/**
129
+	 * Loads a plugin file.
130
+	 *
131
+	 * @param string $class       the plugin name, without the `Plugin` prefix
132
+	 * @param bool   $forceRehash if true, the class path caches will be rebuilt if the plugin is not found, in case it
133
+	 *                            has just been added, defaults to true
134
+	 *
135
+	 * @throws Exception
136
+	 */
137
+	public function loadPlugin($class, $forceRehash = true)
138
+	{
139
+		/**
140
+		 * An unknown class was requested (maybe newly added) or the
141
+		 * include failed so we rebuild the cache. include() will fail
142
+		 * with an uncatchable error if the file doesn't exist, which
143
+		 * usually means that the cache is stale and must be rebuilt,
144
+		 * so we check for that before trying to include() the plugin.
145
+		 */
146
+		if ((!isset($this->classPath[$class]) || !is_readable($this->classPath[$class])) || (!isset
147
+				($this->classPath[$class . 'Compile']) || !is_readable($this->classPath[$class . 'Compile']))) {
148
+			if ($forceRehash) {
149
+				$this->rebuildClassPathCache($this->corePluginDir, $this->cacheDir . 'classpath.cache.d' .
150
+					Core::RELEASE_TAG . '.php');
151
+				foreach ($this->paths as $path => $file) {
152
+					$this->rebuildClassPathCache($path, $file);
153
+				}
154
+				if (isset($this->classPath[$class])) {
155
+					include_once $this->classPath[$class];
156
+				} elseif (isset($this->classPath[$class . 'Compile'])) {
157
+					include_once $this->classPath[$class . 'Compile'];
158
+				} else {
159
+					throw new Exception('Plugin "' . $class .
160
+						'" can not be found, maybe you forgot to bind it if it\'s a custom plugin ?', E_USER_NOTICE);
161
+				}
162
+			} else {
163
+				throw new Exception('Plugin "' . $class .
164
+					'" can not be found, maybe you forgot to bind it if it\'s a custom plugin ?', E_USER_NOTICE);
165
+			}
166
+		}
167
+	}
168 168
 
169
-    /**
170
-     * Adds a plugin directory, the plugins found in the new plugin directory
171
-     * will take precedence over the other directories (including the default
172
-     * dwoo plugin directory), you can use this for example to override plugins
173
-     * in a specific directory for a specific application while keeping all your
174
-     * usual plugins in the same place for all applications.
175
-     * TOCOM don't forget that php functions overrides are not rehashed so you
176
-     * need to clear the classpath caches by hand when adding those.
177
-     *
178
-     * @param string $pluginDirectory the plugin path to scan
179
-     *
180
-     * @throws Exception
181
-     */
182
-    public function addDirectory($pluginDirectory)
183
-    {
184
-        $pluginDir = realpath($pluginDirectory);
185
-        if (!$pluginDir) {
186
-            throw new Exception('Plugin directory does not exist or can not be read : ' . $pluginDirectory);
187
-        }
188
-        $cacheFile = $this->cacheDir . 'classpath-' . substr(strtr($pluginDir, '/\\:' . PATH_SEPARATOR, '----'),
189
-                strlen($pluginDir) > 80 ? - 80 : 0) . '.d' . Core::RELEASE_TAG . '.php';
190
-        $this->paths[$pluginDir] = $cacheFile;
191
-        if (file_exists($cacheFile)) {
192
-            $classpath       = file_get_contents($cacheFile);
193
-            $this->classPath = unserialize($classpath) + $this->classPath;
194
-        } else {
195
-            $this->rebuildClassPathCache($pluginDir, $cacheFile);
196
-        }
197
-    }
169
+	/**
170
+	 * Adds a plugin directory, the plugins found in the new plugin directory
171
+	 * will take precedence over the other directories (including the default
172
+	 * dwoo plugin directory), you can use this for example to override plugins
173
+	 * in a specific directory for a specific application while keeping all your
174
+	 * usual plugins in the same place for all applications.
175
+	 * TOCOM don't forget that php functions overrides are not rehashed so you
176
+	 * need to clear the classpath caches by hand when adding those.
177
+	 *
178
+	 * @param string $pluginDirectory the plugin path to scan
179
+	 *
180
+	 * @throws Exception
181
+	 */
182
+	public function addDirectory($pluginDirectory)
183
+	{
184
+		$pluginDir = realpath($pluginDirectory);
185
+		if (!$pluginDir) {
186
+			throw new Exception('Plugin directory does not exist or can not be read : ' . $pluginDirectory);
187
+		}
188
+		$cacheFile = $this->cacheDir . 'classpath-' . substr(strtr($pluginDir, '/\\:' . PATH_SEPARATOR, '----'),
189
+				strlen($pluginDir) > 80 ? - 80 : 0) . '.d' . Core::RELEASE_TAG . '.php';
190
+		$this->paths[$pluginDir] = $cacheFile;
191
+		if (file_exists($cacheFile)) {
192
+			$classpath       = file_get_contents($cacheFile);
193
+			$this->classPath = unserialize($classpath) + $this->classPath;
194
+		} else {
195
+			$this->rebuildClassPathCache($pluginDir, $cacheFile);
196
+		}
197
+	}
198 198
 }
Please login to merge, or discard this patch.
lib/Dwoo/Security/Policy.php 1 patch
Indentation   +271 added lines, -271 removed lines patch added patch discarded remove patch
@@ -25,298 +25,298 @@
 block discarded – undo
25 25
  */
26 26
 class Policy
27 27
 {
28
-    /**
29
-     * Php handling constants, defaults to PHP_REMOVE
30
-     * PHP_ENCODE : run htmlentities over them
31
-     * PHP_REMOVE : remove all <?php ?> (+ short tags if your short tags option is on) from the input template
32
-     * PHP_ALLOW : leave them as they are
33
-     *
34
-     * @var int
35
-     */
36
-    const PHP_ENCODE = 1;
37
-    const PHP_REMOVE = 2;
38
-    const PHP_ALLOW  = 3;
28
+	/**
29
+	 * Php handling constants, defaults to PHP_REMOVE
30
+	 * PHP_ENCODE : run htmlentities over them
31
+	 * PHP_REMOVE : remove all <?php ?> (+ short tags if your short tags option is on) from the input template
32
+	 * PHP_ALLOW : leave them as they are
33
+	 *
34
+	 * @var int
35
+	 */
36
+	const PHP_ENCODE = 1;
37
+	const PHP_REMOVE = 2;
38
+	const PHP_ALLOW  = 3;
39 39
 
40
-    /**
41
-     * Constant handling constants, defaults to CONST_DISALLOW
42
-     * CONST_DISALLOW : throw an error if {$dwoo.const.*} is used in the template
43
-     * CONST_ALLOW : allow {$dwoo.const.*} calls
44
-     */
45
-    const CONST_DISALLOW = false;
46
-    const CONST_ALLOW    = true;
40
+	/**
41
+	 * Constant handling constants, defaults to CONST_DISALLOW
42
+	 * CONST_DISALLOW : throw an error if {$dwoo.const.*} is used in the template
43
+	 * CONST_ALLOW : allow {$dwoo.const.*} calls
44
+	 */
45
+	const CONST_DISALLOW = false;
46
+	const CONST_ALLOW    = true;
47 47
 
48
-    /**
49
-     * Php functions that are allowed to be used within the template.
50
-     *
51
-     * @var array
52
-     */
53
-    protected $allowedPhpFunctions = array(
54
-        'str_repeat'       => true,
55
-        'number_format'    => true,
56
-        'htmlentities'     => true,
57
-        'htmlspecialchars' => true,
58
-        'long2ip'          => true,
59
-        'strlen'           => true,
60
-        'list'             => true,
61
-        'empty'            => true,
62
-        'count'            => true,
63
-        'sizeof'           => true,
64
-        'in_array'         => true,
65
-        'is_array'         => true,
66
-    );
48
+	/**
49
+	 * Php functions that are allowed to be used within the template.
50
+	 *
51
+	 * @var array
52
+	 */
53
+	protected $allowedPhpFunctions = array(
54
+		'str_repeat'       => true,
55
+		'number_format'    => true,
56
+		'htmlentities'     => true,
57
+		'htmlspecialchars' => true,
58
+		'long2ip'          => true,
59
+		'strlen'           => true,
60
+		'list'             => true,
61
+		'empty'            => true,
62
+		'count'            => true,
63
+		'sizeof'           => true,
64
+		'in_array'         => true,
65
+		'is_array'         => true,
66
+	);
67 67
 
68
-    /**
69
-     * Methods that are allowed to be used within the template.
70
-     *
71
-     * @var array
72
-     */
73
-    protected $allowedMethods = array();
68
+	/**
69
+	 * Methods that are allowed to be used within the template.
70
+	 *
71
+	 * @var array
72
+	 */
73
+	protected $allowedMethods = array();
74 74
 
75
-    /**
76
-     * Paths that are safe to use with include or other file-access plugins.
77
-     *
78
-     * @var array
79
-     */
80
-    protected $allowedDirectories = array();
75
+	/**
76
+	 * Paths that are safe to use with include or other file-access plugins.
77
+	 *
78
+	 * @var array
79
+	 */
80
+	protected $allowedDirectories = array();
81 81
 
82
-    /**
83
-     * Stores the php handling level.
84
-     * defaults to self::PHP_REMOVE
85
-     *
86
-     * @var int
87
-     */
88
-    protected $phpHandling = self::PHP_REMOVE;
82
+	/**
83
+	 * Stores the php handling level.
84
+	 * defaults to self::PHP_REMOVE
85
+	 *
86
+	 * @var int
87
+	 */
88
+	protected $phpHandling = self::PHP_REMOVE;
89 89
 
90
-    /**
91
-     * Stores the constant handling level.
92
-     * defaults to self::CONST_DISALLOW
93
-     *
94
-     * @var bool
95
-     */
96
-    protected $constHandling = self::CONST_DISALLOW;
90
+	/**
91
+	 * Stores the constant handling level.
92
+	 * defaults to self::CONST_DISALLOW
93
+	 *
94
+	 * @var bool
95
+	 */
96
+	protected $constHandling = self::CONST_DISALLOW;
97 97
 
98
-    /**
99
-     * Adds a php function to the allowed list.
100
-     *
101
-     * @param mixed $func function name or array of function names
102
-     */
103
-    public function allowPhpFunction($func)
104
-    {
105
-        if (is_array($func)) {
106
-            foreach ($func as $fname) {
107
-                $this->allowedPhpFunctions[strtolower($fname)] = true;
108
-            }
109
-        } else {
110
-            $this->allowedPhpFunctions[strtolower($func)] = true;
111
-        }
112
-    }
98
+	/**
99
+	 * Adds a php function to the allowed list.
100
+	 *
101
+	 * @param mixed $func function name or array of function names
102
+	 */
103
+	public function allowPhpFunction($func)
104
+	{
105
+		if (is_array($func)) {
106
+			foreach ($func as $fname) {
107
+				$this->allowedPhpFunctions[strtolower($fname)] = true;
108
+			}
109
+		} else {
110
+			$this->allowedPhpFunctions[strtolower($func)] = true;
111
+		}
112
+	}
113 113
 
114
-    /**
115
-     * Removes a php function from the allowed list.
116
-     *
117
-     * @param mixed $func function name or array of function names
118
-     */
119
-    public function disallowPhpFunction($func)
120
-    {
121
-        if (is_array($func)) {
122
-            foreach ($func as $fname) {
123
-                unset($this->allowedPhpFunctions[strtolower($fname)]);
124
-            }
125
-        } else {
126
-            unset($this->allowedPhpFunctions[strtolower($func)]);
127
-        }
128
-    }
114
+	/**
115
+	 * Removes a php function from the allowed list.
116
+	 *
117
+	 * @param mixed $func function name or array of function names
118
+	 */
119
+	public function disallowPhpFunction($func)
120
+	{
121
+		if (is_array($func)) {
122
+			foreach ($func as $fname) {
123
+				unset($this->allowedPhpFunctions[strtolower($fname)]);
124
+			}
125
+		} else {
126
+			unset($this->allowedPhpFunctions[strtolower($func)]);
127
+		}
128
+	}
129 129
 
130
-    /**
131
-     * Returns the list of php functions allowed to run, note that the function names
132
-     * are stored in the array keys and not values.
133
-     *
134
-     * @return array
135
-     */
136
-    public function getAllowedPhpFunctions()
137
-    {
138
-        return $this->allowedPhpFunctions;
139
-    }
130
+	/**
131
+	 * Returns the list of php functions allowed to run, note that the function names
132
+	 * are stored in the array keys and not values.
133
+	 *
134
+	 * @return array
135
+	 */
136
+	public function getAllowedPhpFunctions()
137
+	{
138
+		return $this->allowedPhpFunctions;
139
+	}
140 140
 
141
-    /**
142
-     * Adds a class method to the allowed list, this must be used for
143
-     * both static and non static method by providing the class name
144
-     * and method name to use.
145
-     *
146
-     * @param mixed  $class  class name or array of array('class', 'method') couples
147
-     * @param string $method method name
148
-     */
149
-    public function allowMethod($class, $method = null)
150
-    {
151
-        if (is_array($class)) {
152
-            foreach ($class as $elem) {
153
-                $this->allowedMethods[strtolower($elem[0])][strtolower($elem[1])] = true;
154
-            }
155
-        } else {
156
-            $this->allowedMethods[strtolower($class)][strtolower($method)] = true;
157
-        }
158
-    }
141
+	/**
142
+	 * Adds a class method to the allowed list, this must be used for
143
+	 * both static and non static method by providing the class name
144
+	 * and method name to use.
145
+	 *
146
+	 * @param mixed  $class  class name or array of array('class', 'method') couples
147
+	 * @param string $method method name
148
+	 */
149
+	public function allowMethod($class, $method = null)
150
+	{
151
+		if (is_array($class)) {
152
+			foreach ($class as $elem) {
153
+				$this->allowedMethods[strtolower($elem[0])][strtolower($elem[1])] = true;
154
+			}
155
+		} else {
156
+			$this->allowedMethods[strtolower($class)][strtolower($method)] = true;
157
+		}
158
+	}
159 159
 
160
-    /**
161
-     * Removes a class method from the allowed list.
162
-     *
163
-     * @param mixed  $class  class name or array of array('class', 'method') couples
164
-     * @param string $method method name
165
-     */
166
-    public function disallowMethod($class, $method = null)
167
-    {
168
-        if (is_array($class)) {
169
-            foreach ($class as $elem) {
170
-                unset($this->allowedMethods[strtolower($elem[0])][strtolower($elem[1])]);
171
-            }
172
-        } else {
173
-            unset($this->allowedMethods[strtolower($class)][strtolower($method)]);
174
-        }
175
-    }
160
+	/**
161
+	 * Removes a class method from the allowed list.
162
+	 *
163
+	 * @param mixed  $class  class name or array of array('class', 'method') couples
164
+	 * @param string $method method name
165
+	 */
166
+	public function disallowMethod($class, $method = null)
167
+	{
168
+		if (is_array($class)) {
169
+			foreach ($class as $elem) {
170
+				unset($this->allowedMethods[strtolower($elem[0])][strtolower($elem[1])]);
171
+			}
172
+		} else {
173
+			unset($this->allowedMethods[strtolower($class)][strtolower($method)]);
174
+		}
175
+	}
176 176
 
177
-    /**
178
-     * Returns the list of class methods allowed to run, note that the class names
179
-     * and method names are stored in the array keys and not values.
180
-     *
181
-     * @return array
182
-     */
183
-    public function getAllowedMethods()
184
-    {
185
-        return $this->allowedMethods;
186
-    }
177
+	/**
178
+	 * Returns the list of class methods allowed to run, note that the class names
179
+	 * and method names are stored in the array keys and not values.
180
+	 *
181
+	 * @return array
182
+	 */
183
+	public function getAllowedMethods()
184
+	{
185
+		return $this->allowedMethods;
186
+	}
187 187
 
188
-    /**
189
-     * Adds a directory to the safelist for includes and other file-access plugins.
190
-     * note that all the includePath directories you provide to the Dwoo_Template_File class
191
-     * are automatically marked as safe
192
-     *
193
-     * @param mixed $path a path name or an array of paths
194
-     */
195
-    public function allowDirectory($path)
196
-    {
197
-        if (is_array($path)) {
198
-            foreach ($path as $dir) {
199
-                $this->allowedDirectories[realpath($dir)] = true;
200
-            }
201
-        } else {
202
-            $this->allowedDirectories[realpath($path)] = true;
203
-        }
204
-    }
188
+	/**
189
+	 * Adds a directory to the safelist for includes and other file-access plugins.
190
+	 * note that all the includePath directories you provide to the Dwoo_Template_File class
191
+	 * are automatically marked as safe
192
+	 *
193
+	 * @param mixed $path a path name or an array of paths
194
+	 */
195
+	public function allowDirectory($path)
196
+	{
197
+		if (is_array($path)) {
198
+			foreach ($path as $dir) {
199
+				$this->allowedDirectories[realpath($dir)] = true;
200
+			}
201
+		} else {
202
+			$this->allowedDirectories[realpath($path)] = true;
203
+		}
204
+	}
205 205
 
206
-    /**
207
-     * Removes a directory from the safe list.
208
-     *
209
-     * @param mixed $path a path name or an array of paths
210
-     */
211
-    public function disallowDirectory($path)
212
-    {
213
-        if (is_array($path)) {
214
-            foreach ($path as $dir) {
215
-                unset($this->allowedDirectories[realpath($dir)]);
216
-            }
217
-        } else {
218
-            unset($this->allowedDirectories[realpath($path)]);
219
-        }
220
-    }
206
+	/**
207
+	 * Removes a directory from the safe list.
208
+	 *
209
+	 * @param mixed $path a path name or an array of paths
210
+	 */
211
+	public function disallowDirectory($path)
212
+	{
213
+		if (is_array($path)) {
214
+			foreach ($path as $dir) {
215
+				unset($this->allowedDirectories[realpath($dir)]);
216
+			}
217
+		} else {
218
+			unset($this->allowedDirectories[realpath($path)]);
219
+		}
220
+	}
221 221
 
222
-    /**
223
-     * Returns the list of safe paths, note that the paths are stored in the array
224
-     * keys and not values.
225
-     *
226
-     * @return array
227
-     */
228
-    public function getAllowedDirectories()
229
-    {
230
-        return $this->allowedDirectories;
231
-    }
222
+	/**
223
+	 * Returns the list of safe paths, note that the paths are stored in the array
224
+	 * keys and not values.
225
+	 *
226
+	 * @return array
227
+	 */
228
+	public function getAllowedDirectories()
229
+	{
230
+		return $this->allowedDirectories;
231
+	}
232 232
 
233
-    /**
234
-     * Sets the php handling level, defaults to REMOVE.
235
-     *
236
-     * @param int $level one of the Dwoo_Security_Policy::PHP_* constants
237
-     */
238
-    public function setPhpHandling($level = self::PHP_REMOVE)
239
-    {
240
-        $this->phpHandling = $level;
241
-    }
233
+	/**
234
+	 * Sets the php handling level, defaults to REMOVE.
235
+	 *
236
+	 * @param int $level one of the Dwoo_Security_Policy::PHP_* constants
237
+	 */
238
+	public function setPhpHandling($level = self::PHP_REMOVE)
239
+	{
240
+		$this->phpHandling = $level;
241
+	}
242 242
 
243
-    /**
244
-     * Returns the php handling level.
245
-     *
246
-     * @return int the current level, one of the Dwoo_Security_Policy::PHP_* constants
247
-     */
248
-    public function getPhpHandling()
249
-    {
250
-        return $this->phpHandling;
251
-    }
243
+	/**
244
+	 * Returns the php handling level.
245
+	 *
246
+	 * @return int the current level, one of the Dwoo_Security_Policy::PHP_* constants
247
+	 */
248
+	public function getPhpHandling()
249
+	{
250
+		return $this->phpHandling;
251
+	}
252 252
 
253
-    /**
254
-     * Sets the constant handling level, defaults to CONST_DISALLOW.
255
-     *
256
-     * @param bool $level one of the Dwoo_Security_Policy::CONST_* constants
257
-     */
258
-    public function setConstantHandling($level = self::CONST_DISALLOW)
259
-    {
260
-        $this->constHandling = $level;
261
-    }
253
+	/**
254
+	 * Sets the constant handling level, defaults to CONST_DISALLOW.
255
+	 *
256
+	 * @param bool $level one of the Dwoo_Security_Policy::CONST_* constants
257
+	 */
258
+	public function setConstantHandling($level = self::CONST_DISALLOW)
259
+	{
260
+		$this->constHandling = $level;
261
+	}
262 262
 
263
-    /**
264
-     * Returns the constant handling level.
265
-     *
266
-     * @return bool the current level, one of the Dwoo_Security_Policy::CONST_* constants
267
-     */
268
-    public function getConstantHandling()
269
-    {
270
-        return $this->constHandling;
271
-    }
263
+	/**
264
+	 * Returns the constant handling level.
265
+	 *
266
+	 * @return bool the current level, one of the Dwoo_Security_Policy::CONST_* constants
267
+	 */
268
+	public function getConstantHandling()
269
+	{
270
+		return $this->constHandling;
271
+	}
272 272
 
273
-    /**
274
-     * This is used at run time to check whether method calls are allowed or not.
275
-     *
276
-     * @param Core   $dwoo   dwoo instance that calls this
277
-     * @param object $obj    any object on which the method must be called
278
-     * @param string $method lowercased method name
279
-     * @param array  $args   arguments array
280
-     *
281
-     * @return mixed result of method call or unll + E_USER_NOTICE if not allowed
282
-     */
283
-    public function callMethod(Core $dwoo, $obj, $method, $args)
284
-    {
285
-        foreach ($this->allowedMethods as $class => $methods) {
286
-            if (!isset($methods[$method])) {
287
-                continue;
288
-            }
289
-            if ($obj instanceof $class) {
290
-                return call_user_func_array(array($obj, $method), $args);
291
-            }
292
-        }
293
-        $dwoo->triggerError('The current security policy prevents you from calling ' . get_class($obj) . '::' . $method . '()');
273
+	/**
274
+	 * This is used at run time to check whether method calls are allowed or not.
275
+	 *
276
+	 * @param Core   $dwoo   dwoo instance that calls this
277
+	 * @param object $obj    any object on which the method must be called
278
+	 * @param string $method lowercased method name
279
+	 * @param array  $args   arguments array
280
+	 *
281
+	 * @return mixed result of method call or unll + E_USER_NOTICE if not allowed
282
+	 */
283
+	public function callMethod(Core $dwoo, $obj, $method, $args)
284
+	{
285
+		foreach ($this->allowedMethods as $class => $methods) {
286
+			if (!isset($methods[$method])) {
287
+				continue;
288
+			}
289
+			if ($obj instanceof $class) {
290
+				return call_user_func_array(array($obj, $method), $args);
291
+			}
292
+		}
293
+		$dwoo->triggerError('The current security policy prevents you from calling ' . get_class($obj) . '::' . $method . '()');
294 294
 
295
-        return null;
296
-    }
295
+		return null;
296
+	}
297 297
 
298
-    /**
299
-     * This is used at compile time to check whether static method calls are allowed or not.
300
-     *
301
-     * @param mixed  $class  lowercased class name or array('class', 'method') couple
302
-     * @param string $method lowercased method name
303
-     *
304
-     * @return bool
305
-     */
306
-    public function isMethodAllowed($class, $method = null)
307
-    {
308
-        if (is_array($class)) {
309
-            list($class, $method) = $class;
310
-        }
311
-        foreach ($this->allowedMethods as $allowedClass => $methods) {
312
-            if (!isset($methods[$method])) {
313
-                continue;
314
-            }
315
-            if ($class === $allowedClass || is_subclass_of($class, $allowedClass)) {
316
-                return true;
317
-            }
318
-        }
298
+	/**
299
+	 * This is used at compile time to check whether static method calls are allowed or not.
300
+	 *
301
+	 * @param mixed  $class  lowercased class name or array('class', 'method') couple
302
+	 * @param string $method lowercased method name
303
+	 *
304
+	 * @return bool
305
+	 */
306
+	public function isMethodAllowed($class, $method = null)
307
+	{
308
+		if (is_array($class)) {
309
+			list($class, $method) = $class;
310
+		}
311
+		foreach ($this->allowedMethods as $allowedClass => $methods) {
312
+			if (!isset($methods[$method])) {
313
+				continue;
314
+			}
315
+			if ($class === $allowedClass || is_subclass_of($class, $allowedClass)) {
316
+				return true;
317
+			}
318
+		}
319 319
 
320
-        return false;
321
-    }
320
+		return false;
321
+	}
322 322
 }
Please login to merge, or discard this patch.
lib/Dwoo/Smarty/Filter/Adapter.php 1 patch
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -23,23 +23,23 @@
 block discarded – undo
23 23
  */
24 24
 class Adapter extends Processor
25 25
 {
26
-    public $callback;
26
+	public $callback;
27 27
 
28
-    /**
29
-     * @param string $input
30
-     *
31
-     * @return mixed
32
-     */
33
-    public function process($input)
34
-    {
35
-        return call_user_func($this->callback, $input);
36
-    }
28
+	/**
29
+	 * @param string $input
30
+	 *
31
+	 * @return mixed
32
+	 */
33
+	public function process($input)
34
+	{
35
+		return call_user_func($this->callback, $input);
36
+	}
37 37
 
38
-    /**
39
-     * @param $callback
40
-     */
41
-    public function registerCallback($callback)
42
-    {
43
-        $this->callback = $callback;
44
-    }
38
+	/**
39
+	 * @param $callback
40
+	 */
41
+	public function registerCallback($callback)
42
+	{
43
+		$this->callback = $callback;
44
+	}
45 45
 }
46 46
\ No newline at end of file
Please login to merge, or discard this patch.