GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Pull Request — develop (#1814)
by
unknown
11:57
created
security/htmlpurifier/library/HTMLPurifier/HTMLModule/StyleAttribute.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -7,17 +7,17 @@
 block discarded – undo
7 7
 class HTMLPurifier_HTMLModule_StyleAttribute extends HTMLPurifier_HTMLModule
8 8
 {
9 9
 
10
-    public $name = 'StyleAttribute';
11
-    public $attr_collections = array(
12
-        // The inclusion routine differs from the Abstract Modules but
13
-        // is in line with the DTD and XML Schemas.
14
-        'Style' => array('style' => false), // see constructor
15
-        'Core' => array(0 => array('Style'))
16
-    );
10
+	public $name = 'StyleAttribute';
11
+	public $attr_collections = array(
12
+		// The inclusion routine differs from the Abstract Modules but
13
+		// is in line with the DTD and XML Schemas.
14
+		'Style' => array('style' => false), // see constructor
15
+		'Core' => array(0 => array('Style'))
16
+	);
17 17
 
18
-    public function setup($config) {
19
-        $this->attr_collections['Style']['style'] = new HTMLPurifier_AttrDef_CSS();
20
-    }
18
+	public function setup($config) {
19
+		$this->attr_collections['Style']['style'] = new HTMLPurifier_AttrDef_CSS();
20
+	}
21 21
 
22 22
 }
23 23
 
Please login to merge, or discard this patch.
classes/security/htmlpurifier/library/HTMLPurifier/HTMLModule/Tables.php 2 patches
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -6,63 +6,63 @@
 block discarded – undo
6 6
 class HTMLPurifier_HTMLModule_Tables extends HTMLPurifier_HTMLModule
7 7
 {
8 8
 
9
-    public $name = 'Tables';
9
+	public $name = 'Tables';
10 10
 
11
-    public function setup($config) {
11
+	public function setup($config) {
12 12
 
13
-        $this->addElement('caption', false, 'Inline', 'Common');
13
+		$this->addElement('caption', false, 'Inline', 'Common');
14 14
 
15
-        $this->addElement('table', 'Block',
16
-            new HTMLPurifier_ChildDef_Table(),  'Common',
17
-            array(
18
-                'border' => 'Pixels',
19
-                'cellpadding' => 'Length',
20
-                'cellspacing' => 'Length',
21
-                'frame' => 'Enum#void,above,below,hsides,lhs,rhs,vsides,box,border',
22
-                'rules' => 'Enum#none,groups,rows,cols,all',
23
-                'summary' => 'Text',
24
-                'width' => 'Length'
25
-            )
26
-        );
15
+		$this->addElement('table', 'Block',
16
+			new HTMLPurifier_ChildDef_Table(),  'Common',
17
+			array(
18
+				'border' => 'Pixels',
19
+				'cellpadding' => 'Length',
20
+				'cellspacing' => 'Length',
21
+				'frame' => 'Enum#void,above,below,hsides,lhs,rhs,vsides,box,border',
22
+				'rules' => 'Enum#none,groups,rows,cols,all',
23
+				'summary' => 'Text',
24
+				'width' => 'Length'
25
+			)
26
+		);
27 27
 
28
-        // common attributes
29
-        $cell_align = array(
30
-            'align' => 'Enum#left,center,right,justify,char',
31
-            'charoff' => 'Length',
32
-            'valign' => 'Enum#top,middle,bottom,baseline',
33
-        );
28
+		// common attributes
29
+		$cell_align = array(
30
+			'align' => 'Enum#left,center,right,justify,char',
31
+			'charoff' => 'Length',
32
+			'valign' => 'Enum#top,middle,bottom,baseline',
33
+		);
34 34
 
35
-        $cell_t = array_merge(
36
-            array(
37
-                'abbr'    => 'Text',
38
-                'colspan' => 'Number',
39
-                'rowspan' => 'Number',
40
-                // Apparently, as of HTML5 this attribute only applies
41
-                // to 'th' elements.
42
-                'scope'   => 'Enum#row,col,rowgroup,colgroup',
43
-            ),
44
-            $cell_align
45
-        );
46
-        $this->addElement('td', false, 'Flow', 'Common', $cell_t);
47
-        $this->addElement('th', false, 'Flow', 'Common', $cell_t);
35
+		$cell_t = array_merge(
36
+			array(
37
+				'abbr'    => 'Text',
38
+				'colspan' => 'Number',
39
+				'rowspan' => 'Number',
40
+				// Apparently, as of HTML5 this attribute only applies
41
+				// to 'th' elements.
42
+				'scope'   => 'Enum#row,col,rowgroup,colgroup',
43
+			),
44
+			$cell_align
45
+		);
46
+		$this->addElement('td', false, 'Flow', 'Common', $cell_t);
47
+		$this->addElement('th', false, 'Flow', 'Common', $cell_t);
48 48
 
49
-        $this->addElement('tr', false, 'Required: td | th', 'Common', $cell_align);
49
+		$this->addElement('tr', false, 'Required: td | th', 'Common', $cell_align);
50 50
 
51
-        $cell_col = array_merge(
52
-            array(
53
-                'span'  => 'Number',
54
-                'width' => 'MultiLength',
55
-            ),
56
-            $cell_align
57
-        );
58
-        $this->addElement('col',      false, 'Empty',         'Common', $cell_col);
59
-        $this->addElement('colgroup', false, 'Optional: col', 'Common', $cell_col);
51
+		$cell_col = array_merge(
52
+			array(
53
+				'span'  => 'Number',
54
+				'width' => 'MultiLength',
55
+			),
56
+			$cell_align
57
+		);
58
+		$this->addElement('col',      false, 'Empty',         'Common', $cell_col);
59
+		$this->addElement('colgroup', false, 'Optional: col', 'Common', $cell_col);
60 60
 
61
-        $this->addElement('tbody', false, 'Required: tr', 'Common', $cell_align);
62
-        $this->addElement('thead', false, 'Required: tr', 'Common', $cell_align);
63
-        $this->addElement('tfoot', false, 'Required: tr', 'Common', $cell_align);
61
+		$this->addElement('tbody', false, 'Required: tr', 'Common', $cell_align);
62
+		$this->addElement('thead', false, 'Required: tr', 'Common', $cell_align);
63
+		$this->addElement('tfoot', false, 'Required: tr', 'Common', $cell_align);
64 64
 
65
-    }
65
+	}
66 66
 
67 67
 }
68 68
 
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -13,7 +13,7 @@  discard block
 block discarded – undo
13 13
         $this->addElement('caption', false, 'Inline', 'Common');
14 14
 
15 15
         $this->addElement('table', 'Block',
16
-            new HTMLPurifier_ChildDef_Table(),  'Common',
16
+            new HTMLPurifier_ChildDef_Table(), 'Common',
17 17
             array(
18 18
                 'border' => 'Pixels',
19 19
                 'cellpadding' => 'Length',
@@ -55,7 +55,7 @@  discard block
 block discarded – undo
55 55
             ),
56 56
             $cell_align
57 57
         );
58
-        $this->addElement('col',      false, 'Empty',         'Common', $cell_col);
58
+        $this->addElement('col', false, 'Empty', 'Common', $cell_col);
59 59
         $this->addElement('colgroup', false, 'Optional: col', 'Common', $cell_col);
60 60
 
61 61
         $this->addElement('tbody', false, 'Required: tr', 'Common', $cell_align);
Please login to merge, or discard this patch.
classes/security/htmlpurifier/library/HTMLPurifier/HTMLModule/Target.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -6,17 +6,17 @@
 block discarded – undo
6 6
 class HTMLPurifier_HTMLModule_Target extends HTMLPurifier_HTMLModule
7 7
 {
8 8
 
9
-    public $name = 'Target';
9
+	public $name = 'Target';
10 10
 
11
-    public function setup($config) {
12
-        $elements = array('a');
13
-        foreach ($elements as $name) {
14
-            $e = $this->addBlankElement($name);
15
-            $e->attr = array(
16
-                'target' => new HTMLPurifier_AttrDef_HTML_FrameTarget()
17
-            );
18
-        }
19
-    }
11
+	public function setup($config) {
12
+		$elements = array('a');
13
+		foreach ($elements as $name) {
14
+			$e = $this->addBlankElement($name);
15
+			$e->attr = array(
16
+				'target' => new HTMLPurifier_AttrDef_HTML_FrameTarget()
17
+			);
18
+		}
19
+	}
20 20
 
21 21
 }
22 22
 
Please login to merge, or discard this patch.
security/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetBlank.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -7,12 +7,12 @@
 block discarded – undo
7 7
 class HTMLPurifier_HTMLModule_TargetBlank extends HTMLPurifier_HTMLModule
8 8
 {
9 9
 
10
-    public $name = 'TargetBlank';
10
+	public $name = 'TargetBlank';
11 11
 
12
-    public function setup($config) {
13
-        $a = $this->addBlankElement('a');
14
-        $a->attr_transform_post[] = new HTMLPurifier_AttrTransform_TargetBlank();
15
-    }
12
+	public function setup($config) {
13
+		$a = $this->addBlankElement('a');
14
+		$a->attr_transform_post[] = new HTMLPurifier_AttrTransform_TargetBlank();
15
+	}
16 16
 
17 17
 }
18 18
 
Please login to merge, or discard this patch.
classes/security/htmlpurifier/library/HTMLPurifier/HTMLModule/Text.php 2 patches
Indentation   +40 added lines, -40 removed lines patch added patch discarded remove patch
@@ -15,56 +15,56 @@
 block discarded – undo
15 15
 class HTMLPurifier_HTMLModule_Text extends HTMLPurifier_HTMLModule
16 16
 {
17 17
 
18
-    public $name = 'Text';
19
-    public $content_sets = array(
20
-        'Flow' => 'Heading | Block | Inline'
21
-    );
18
+	public $name = 'Text';
19
+	public $content_sets = array(
20
+		'Flow' => 'Heading | Block | Inline'
21
+	);
22 22
 
23
-    public function setup($config) {
23
+	public function setup($config) {
24 24
 
25
-        // Inline Phrasal -------------------------------------------------
26
-        $this->addElement('abbr',    'Inline', 'Inline', 'Common');
27
-        $this->addElement('acronym', 'Inline', 'Inline', 'Common');
28
-        $this->addElement('cite',    'Inline', 'Inline', 'Common');
29
-        $this->addElement('dfn',     'Inline', 'Inline', 'Common');
30
-        $this->addElement('kbd',     'Inline', 'Inline', 'Common');
31
-        $this->addElement('q',       'Inline', 'Inline', 'Common', array('cite' => 'URI'));
32
-        $this->addElement('samp',    'Inline', 'Inline', 'Common');
33
-        $this->addElement('var',     'Inline', 'Inline', 'Common');
25
+		// Inline Phrasal -------------------------------------------------
26
+		$this->addElement('abbr',    'Inline', 'Inline', 'Common');
27
+		$this->addElement('acronym', 'Inline', 'Inline', 'Common');
28
+		$this->addElement('cite',    'Inline', 'Inline', 'Common');
29
+		$this->addElement('dfn',     'Inline', 'Inline', 'Common');
30
+		$this->addElement('kbd',     'Inline', 'Inline', 'Common');
31
+		$this->addElement('q',       'Inline', 'Inline', 'Common', array('cite' => 'URI'));
32
+		$this->addElement('samp',    'Inline', 'Inline', 'Common');
33
+		$this->addElement('var',     'Inline', 'Inline', 'Common');
34 34
 
35
-        $em = $this->addElement('em',      'Inline', 'Inline', 'Common');
36
-        $em->formatting = true;
35
+		$em = $this->addElement('em',      'Inline', 'Inline', 'Common');
36
+		$em->formatting = true;
37 37
 
38
-        $strong = $this->addElement('strong',  'Inline', 'Inline', 'Common');
39
-        $strong->formatting = true;
38
+		$strong = $this->addElement('strong',  'Inline', 'Inline', 'Common');
39
+		$strong->formatting = true;
40 40
 
41
-        $code = $this->addElement('code',    'Inline', 'Inline', 'Common');
42
-        $code->formatting = true;
41
+		$code = $this->addElement('code',    'Inline', 'Inline', 'Common');
42
+		$code->formatting = true;
43 43
 
44
-        // Inline Structural ----------------------------------------------
45
-        $this->addElement('span', 'Inline', 'Inline', 'Common');
46
-        $this->addElement('br',   'Inline', 'Empty',  'Core');
44
+		// Inline Structural ----------------------------------------------
45
+		$this->addElement('span', 'Inline', 'Inline', 'Common');
46
+		$this->addElement('br',   'Inline', 'Empty',  'Core');
47 47
 
48
-        // Block Phrasal --------------------------------------------------
49
-        $this->addElement('address',     'Block', 'Inline', 'Common');
50
-        $this->addElement('blockquote',  'Block', 'Optional: Heading | Block | List', 'Common', array('cite' => 'URI') );
51
-        $pre = $this->addElement('pre', 'Block', 'Inline', 'Common');
52
-        $pre->excludes = $this->makeLookup(
53
-            'img', 'big', 'small', 'object', 'applet', 'font', 'basefont' );
54
-        $this->addElement('h1', 'Heading', 'Inline', 'Common');
55
-        $this->addElement('h2', 'Heading', 'Inline', 'Common');
56
-        $this->addElement('h3', 'Heading', 'Inline', 'Common');
57
-        $this->addElement('h4', 'Heading', 'Inline', 'Common');
58
-        $this->addElement('h5', 'Heading', 'Inline', 'Common');
59
-        $this->addElement('h6', 'Heading', 'Inline', 'Common');
48
+		// Block Phrasal --------------------------------------------------
49
+		$this->addElement('address',     'Block', 'Inline', 'Common');
50
+		$this->addElement('blockquote',  'Block', 'Optional: Heading | Block | List', 'Common', array('cite' => 'URI') );
51
+		$pre = $this->addElement('pre', 'Block', 'Inline', 'Common');
52
+		$pre->excludes = $this->makeLookup(
53
+			'img', 'big', 'small', 'object', 'applet', 'font', 'basefont' );
54
+		$this->addElement('h1', 'Heading', 'Inline', 'Common');
55
+		$this->addElement('h2', 'Heading', 'Inline', 'Common');
56
+		$this->addElement('h3', 'Heading', 'Inline', 'Common');
57
+		$this->addElement('h4', 'Heading', 'Inline', 'Common');
58
+		$this->addElement('h5', 'Heading', 'Inline', 'Common');
59
+		$this->addElement('h6', 'Heading', 'Inline', 'Common');
60 60
 
61
-        // Block Structural -----------------------------------------------
62
-        $p = $this->addElement('p', 'Block', 'Inline', 'Common');
63
-        $p->autoclose = array_flip(array("address", "blockquote", "center", "dir", "div", "dl", "fieldset", "ol", "p", "ul"));
61
+		// Block Structural -----------------------------------------------
62
+		$p = $this->addElement('p', 'Block', 'Inline', 'Common');
63
+		$p->autoclose = array_flip(array("address", "blockquote", "center", "dir", "div", "dl", "fieldset", "ol", "p", "ul"));
64 64
 
65
-        $this->addElement('div', 'Block', 'Flow', 'Common');
65
+		$this->addElement('div', 'Block', 'Flow', 'Common');
66 66
 
67
-    }
67
+	}
68 68
 
69 69
 }
70 70
 
Please login to merge, or discard this patch.
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -23,31 +23,31 @@
 block discarded – undo
23 23
     public function setup($config) {
24 24
 
25 25
         // Inline Phrasal -------------------------------------------------
26
-        $this->addElement('abbr',    'Inline', 'Inline', 'Common');
26
+        $this->addElement('abbr', 'Inline', 'Inline', 'Common');
27 27
         $this->addElement('acronym', 'Inline', 'Inline', 'Common');
28
-        $this->addElement('cite',    'Inline', 'Inline', 'Common');
29
-        $this->addElement('dfn',     'Inline', 'Inline', 'Common');
30
-        $this->addElement('kbd',     'Inline', 'Inline', 'Common');
31
-        $this->addElement('q',       'Inline', 'Inline', 'Common', array('cite' => 'URI'));
32
-        $this->addElement('samp',    'Inline', 'Inline', 'Common');
33
-        $this->addElement('var',     'Inline', 'Inline', 'Common');
28
+        $this->addElement('cite', 'Inline', 'Inline', 'Common');
29
+        $this->addElement('dfn', 'Inline', 'Inline', 'Common');
30
+        $this->addElement('kbd', 'Inline', 'Inline', 'Common');
31
+        $this->addElement('q', 'Inline', 'Inline', 'Common', array('cite' => 'URI'));
32
+        $this->addElement('samp', 'Inline', 'Inline', 'Common');
33
+        $this->addElement('var', 'Inline', 'Inline', 'Common');
34 34
 
35
-        $em = $this->addElement('em',      'Inline', 'Inline', 'Common');
35
+        $em = $this->addElement('em', 'Inline', 'Inline', 'Common');
36 36
         $em->formatting = true;
37 37
 
38
-        $strong = $this->addElement('strong',  'Inline', 'Inline', 'Common');
38
+        $strong = $this->addElement('strong', 'Inline', 'Inline', 'Common');
39 39
         $strong->formatting = true;
40 40
 
41
-        $code = $this->addElement('code',    'Inline', 'Inline', 'Common');
41
+        $code = $this->addElement('code', 'Inline', 'Inline', 'Common');
42 42
         $code->formatting = true;
43 43
 
44 44
         // Inline Structural ----------------------------------------------
45 45
         $this->addElement('span', 'Inline', 'Inline', 'Common');
46
-        $this->addElement('br',   'Inline', 'Empty',  'Core');
46
+        $this->addElement('br', 'Inline', 'Empty', 'Core');
47 47
 
48 48
         // Block Phrasal --------------------------------------------------
49
-        $this->addElement('address',     'Block', 'Inline', 'Common');
50
-        $this->addElement('blockquote',  'Block', 'Optional: Heading | Block | List', 'Common', array('cite' => 'URI') );
49
+        $this->addElement('address', 'Block', 'Inline', 'Common');
50
+        $this->addElement('blockquote', 'Block', 'Optional: Heading | Block | List', 'Common', array('cite' => 'URI'));
51 51
         $pre = $this->addElement('pre', 'Block', 'Inline', 'Common');
52 52
         $pre->excludes = $this->makeLookup(
53 53
             'img', 'big', 'small', 'object', 'applet', 'font', 'basefont' );
Please login to merge, or discard this patch.
classes/security/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php 3 patches
Indentation   +193 added lines, -193 removed lines patch added patch discarded remove patch
@@ -8,199 +8,199 @@
 block discarded – undo
8 8
 class HTMLPurifier_HTMLModule_Tidy extends HTMLPurifier_HTMLModule
9 9
 {
10 10
 
11
-    /**
12
-     * List of supported levels. Index zero is a special case "no fixes"
13
-     * level.
14
-     */
15
-    public $levels = array(0 => 'none', 'light', 'medium', 'heavy');
16
-
17
-    /**
18
-     * Default level to place all fixes in. Disabled by default
19
-     */
20
-    public $defaultLevel = null;
21
-
22
-    /**
23
-     * Lists of fixes used by getFixesForLevel(). Format is:
24
-     *      HTMLModule_Tidy->fixesForLevel[$level] = array('fix-1', 'fix-2');
25
-     */
26
-    public $fixesForLevel = array(
27
-        'light'  => array(),
28
-        'medium' => array(),
29
-        'heavy'  => array()
30
-    );
31
-
32
-    /**
33
-     * Lazy load constructs the module by determining the necessary
34
-     * fixes to create and then delegating to the populate() function.
35
-     * @todo Wildcard matching and error reporting when an added or
36
-     *       subtracted fix has no effect.
37
-     */
38
-    public function setup($config) {
39
-
40
-        // create fixes, initialize fixesForLevel
41
-        $fixes = $this->makeFixes();
42
-        $this->makeFixesForLevel($fixes);
43
-
44
-        // figure out which fixes to use
45
-        $level = $config->get('HTML.TidyLevel');
46
-        $fixes_lookup = $this->getFixesForLevel($level);
47
-
48
-        // get custom fix declarations: these need namespace processing
49
-        $add_fixes    = $config->get('HTML.TidyAdd');
50
-        $remove_fixes = $config->get('HTML.TidyRemove');
51
-
52
-        foreach ($fixes as $name => $fix) {
53
-            // needs to be refactored a little to implement globbing
54
-            if (
55
-                isset($remove_fixes[$name]) ||
56
-                (!isset($add_fixes[$name]) && !isset($fixes_lookup[$name]))
57
-            ) {
58
-                unset($fixes[$name]);
59
-            }
60
-        }
61
-
62
-        // populate this module with necessary fixes
63
-        $this->populate($fixes);
64
-
65
-    }
66
-
67
-    /**
68
-     * Retrieves all fixes per a level, returning fixes for that specific
69
-     * level as well as all levels below it.
70
-     * @param $level String level identifier, see $levels for valid values
71
-     * @return Lookup up table of fixes
72
-     */
73
-    public function getFixesForLevel($level) {
74
-        if ($level == $this->levels[0]) {
75
-            return array();
76
-        }
77
-        $activated_levels = array();
78
-        for ($i = 1, $c = count($this->levels); $i < $c; $i++) {
79
-            $activated_levels[] = $this->levels[$i];
80
-            if ($this->levels[$i] == $level) break;
81
-        }
82
-        if ($i == $c) {
83
-            trigger_error(
84
-                'Tidy level ' . htmlspecialchars($level) . ' not recognized',
85
-                E_USER_WARNING
86
-            );
87
-            return array();
88
-        }
89
-        $ret = array();
90
-        foreach ($activated_levels as $level) {
91
-            foreach ($this->fixesForLevel[$level] as $fix) {
92
-                $ret[$fix] = true;
93
-            }
94
-        }
95
-        return $ret;
96
-    }
97
-
98
-    /**
99
-     * Dynamically populates the $fixesForLevel member variable using
100
-     * the fixes array. It may be custom overloaded, used in conjunction
101
-     * with $defaultLevel, or not used at all.
102
-     */
103
-    public function makeFixesForLevel($fixes) {
104
-        if (!isset($this->defaultLevel)) return;
105
-        if (!isset($this->fixesForLevel[$this->defaultLevel])) {
106
-            trigger_error(
107
-                'Default level ' . $this->defaultLevel . ' does not exist',
108
-                E_USER_ERROR
109
-            );
110
-            return;
111
-        }
112
-        $this->fixesForLevel[$this->defaultLevel] = array_keys($fixes);
113
-    }
114
-
115
-    /**
116
-     * Populates the module with transforms and other special-case code
117
-     * based on a list of fixes passed to it
118
-     * @param $lookup Lookup table of fixes to activate
119
-     */
120
-    public function populate($fixes) {
121
-        foreach ($fixes as $name => $fix) {
122
-            // determine what the fix is for
123
-            list($type, $params) = $this->getFixType($name);
124
-            switch ($type) {
125
-                case 'attr_transform_pre':
126
-                case 'attr_transform_post':
127
-                    $attr = $params['attr'];
128
-                    if (isset($params['element'])) {
129
-                        $element = $params['element'];
130
-                        if (empty($this->info[$element])) {
131
-                            $e = $this->addBlankElement($element);
132
-                        } else {
133
-                            $e = $this->info[$element];
134
-                        }
135
-                    } else {
136
-                        $type = "info_$type";
137
-                        $e = $this;
138
-                    }
139
-                    // PHP does some weird parsing when I do
140
-                    // $e->$type[$attr], so I have to assign a ref.
141
-                    $f =& $e->$type;
142
-                    $f[$attr] = $fix;
143
-                    break;
144
-                case 'tag_transform':
145
-                    $this->info_tag_transform[$params['element']] = $fix;
146
-                    break;
147
-                case 'child':
148
-                case 'content_model_type':
149
-                    $element = $params['element'];
150
-                    if (empty($this->info[$element])) {
151
-                        $e = $this->addBlankElement($element);
152
-                    } else {
153
-                        $e = $this->info[$element];
154
-                    }
155
-                    $e->$type = $fix;
156
-                    break;
157
-                default:
158
-                    trigger_error("Fix type $type not supported", E_USER_ERROR);
159
-                    break;
160
-            }
161
-        }
162
-    }
163
-
164
-    /**
165
-     * Parses a fix name and determines what kind of fix it is, as well
166
-     * as other information defined by the fix
167
-     * @param $name String name of fix
168
-     * @return array(string $fix_type, array $fix_parameters)
169
-     * @note $fix_parameters is type dependant, see populate() for usage
170
-     *       of these parameters
171
-     */
172
-    public function getFixType($name) {
173
-        // parse it
174
-        $property = $attr = null;
175
-        if (strpos($name, '#') !== false) list($name, $property) = explode('#', $name);
176
-        if (strpos($name, '@') !== false) list($name, $attr)     = explode('@', $name);
177
-
178
-        // figure out the parameters
179
-        $params = array();
180
-        if ($name !== '')    $params['element'] = $name;
181
-        if (!is_null($attr)) $params['attr'] = $attr;
182
-
183
-        // special case: attribute transform
184
-        if (!is_null($attr)) {
185
-            if (is_null($property)) $property = 'pre';
186
-            $type = 'attr_transform_' . $property;
187
-            return array($type, $params);
188
-        }
189
-
190
-        // special case: tag transform
191
-        if (is_null($property)) {
192
-            return array('tag_transform', $params);
193
-        }
194
-
195
-        return array($property, $params);
196
-
197
-    }
198
-
199
-    /**
200
-     * Defines all fixes the module will perform in a compact
201
-     * associative array of fix name to fix implementation.
202
-     */
203
-    public function makeFixes() {}
11
+	/**
12
+	 * List of supported levels. Index zero is a special case "no fixes"
13
+	 * level.
14
+	 */
15
+	public $levels = array(0 => 'none', 'light', 'medium', 'heavy');
16
+
17
+	/**
18
+	 * Default level to place all fixes in. Disabled by default
19
+	 */
20
+	public $defaultLevel = null;
21
+
22
+	/**
23
+	 * Lists of fixes used by getFixesForLevel(). Format is:
24
+	 *      HTMLModule_Tidy->fixesForLevel[$level] = array('fix-1', 'fix-2');
25
+	 */
26
+	public $fixesForLevel = array(
27
+		'light'  => array(),
28
+		'medium' => array(),
29
+		'heavy'  => array()
30
+	);
31
+
32
+	/**
33
+	 * Lazy load constructs the module by determining the necessary
34
+	 * fixes to create and then delegating to the populate() function.
35
+	 * @todo Wildcard matching and error reporting when an added or
36
+	 *       subtracted fix has no effect.
37
+	 */
38
+	public function setup($config) {
39
+
40
+		// create fixes, initialize fixesForLevel
41
+		$fixes = $this->makeFixes();
42
+		$this->makeFixesForLevel($fixes);
43
+
44
+		// figure out which fixes to use
45
+		$level = $config->get('HTML.TidyLevel');
46
+		$fixes_lookup = $this->getFixesForLevel($level);
47
+
48
+		// get custom fix declarations: these need namespace processing
49
+		$add_fixes    = $config->get('HTML.TidyAdd');
50
+		$remove_fixes = $config->get('HTML.TidyRemove');
51
+
52
+		foreach ($fixes as $name => $fix) {
53
+			// needs to be refactored a little to implement globbing
54
+			if (
55
+				isset($remove_fixes[$name]) ||
56
+				(!isset($add_fixes[$name]) && !isset($fixes_lookup[$name]))
57
+			) {
58
+				unset($fixes[$name]);
59
+			}
60
+		}
61
+
62
+		// populate this module with necessary fixes
63
+		$this->populate($fixes);
64
+
65
+	}
66
+
67
+	/**
68
+	 * Retrieves all fixes per a level, returning fixes for that specific
69
+	 * level as well as all levels below it.
70
+	 * @param $level String level identifier, see $levels for valid values
71
+	 * @return Lookup up table of fixes
72
+	 */
73
+	public function getFixesForLevel($level) {
74
+		if ($level == $this->levels[0]) {
75
+			return array();
76
+		}
77
+		$activated_levels = array();
78
+		for ($i = 1, $c = count($this->levels); $i < $c; $i++) {
79
+			$activated_levels[] = $this->levels[$i];
80
+			if ($this->levels[$i] == $level) break;
81
+		}
82
+		if ($i == $c) {
83
+			trigger_error(
84
+				'Tidy level ' . htmlspecialchars($level) . ' not recognized',
85
+				E_USER_WARNING
86
+			);
87
+			return array();
88
+		}
89
+		$ret = array();
90
+		foreach ($activated_levels as $level) {
91
+			foreach ($this->fixesForLevel[$level] as $fix) {
92
+				$ret[$fix] = true;
93
+			}
94
+		}
95
+		return $ret;
96
+	}
97
+
98
+	/**
99
+	 * Dynamically populates the $fixesForLevel member variable using
100
+	 * the fixes array. It may be custom overloaded, used in conjunction
101
+	 * with $defaultLevel, or not used at all.
102
+	 */
103
+	public function makeFixesForLevel($fixes) {
104
+		if (!isset($this->defaultLevel)) return;
105
+		if (!isset($this->fixesForLevel[$this->defaultLevel])) {
106
+			trigger_error(
107
+				'Default level ' . $this->defaultLevel . ' does not exist',
108
+				E_USER_ERROR
109
+			);
110
+			return;
111
+		}
112
+		$this->fixesForLevel[$this->defaultLevel] = array_keys($fixes);
113
+	}
114
+
115
+	/**
116
+	 * Populates the module with transforms and other special-case code
117
+	 * based on a list of fixes passed to it
118
+	 * @param $lookup Lookup table of fixes to activate
119
+	 */
120
+	public function populate($fixes) {
121
+		foreach ($fixes as $name => $fix) {
122
+			// determine what the fix is for
123
+			list($type, $params) = $this->getFixType($name);
124
+			switch ($type) {
125
+				case 'attr_transform_pre':
126
+				case 'attr_transform_post':
127
+					$attr = $params['attr'];
128
+					if (isset($params['element'])) {
129
+						$element = $params['element'];
130
+						if (empty($this->info[$element])) {
131
+							$e = $this->addBlankElement($element);
132
+						} else {
133
+							$e = $this->info[$element];
134
+						}
135
+					} else {
136
+						$type = "info_$type";
137
+						$e = $this;
138
+					}
139
+					// PHP does some weird parsing when I do
140
+					// $e->$type[$attr], so I have to assign a ref.
141
+					$f =& $e->$type;
142
+					$f[$attr] = $fix;
143
+					break;
144
+				case 'tag_transform':
145
+					$this->info_tag_transform[$params['element']] = $fix;
146
+					break;
147
+				case 'child':
148
+				case 'content_model_type':
149
+					$element = $params['element'];
150
+					if (empty($this->info[$element])) {
151
+						$e = $this->addBlankElement($element);
152
+					} else {
153
+						$e = $this->info[$element];
154
+					}
155
+					$e->$type = $fix;
156
+					break;
157
+				default:
158
+					trigger_error("Fix type $type not supported", E_USER_ERROR);
159
+					break;
160
+			}
161
+		}
162
+	}
163
+
164
+	/**
165
+	 * Parses a fix name and determines what kind of fix it is, as well
166
+	 * as other information defined by the fix
167
+	 * @param $name String name of fix
168
+	 * @return array(string $fix_type, array $fix_parameters)
169
+	 * @note $fix_parameters is type dependant, see populate() for usage
170
+	 *       of these parameters
171
+	 */
172
+	public function getFixType($name) {
173
+		// parse it
174
+		$property = $attr = null;
175
+		if (strpos($name, '#') !== false) list($name, $property) = explode('#', $name);
176
+		if (strpos($name, '@') !== false) list($name, $attr)     = explode('@', $name);
177
+
178
+		// figure out the parameters
179
+		$params = array();
180
+		if ($name !== '')    $params['element'] = $name;
181
+		if (!is_null($attr)) $params['attr'] = $attr;
182
+
183
+		// special case: attribute transform
184
+		if (!is_null($attr)) {
185
+			if (is_null($property)) $property = 'pre';
186
+			$type = 'attr_transform_' . $property;
187
+			return array($type, $params);
188
+		}
189
+
190
+		// special case: tag transform
191
+		if (is_null($property)) {
192
+			return array('tag_transform', $params);
193
+		}
194
+
195
+		return array($property, $params);
196
+
197
+	}
198
+
199
+	/**
200
+	 * Defines all fixes the module will perform in a compact
201
+	 * associative array of fix name to fix implementation.
202
+	 */
203
+	public function makeFixes() {}
204 204
 
205 205
 }
206 206
 
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -138,7 +138,7 @@
 block discarded – undo
138 138
                     }
139 139
                     // PHP does some weird parsing when I do
140 140
                     // $e->$type[$attr], so I have to assign a ref.
141
-                    $f =& $e->$type;
141
+                    $f = & $e->$type;
142 142
                     $f[$attr] = $fix;
143 143
                     break;
144 144
                 case 'tag_transform':
Please login to merge, or discard this patch.
Braces   +21 added lines, -7 removed lines patch added patch discarded remove patch
@@ -77,7 +77,9 @@  discard block
 block discarded – undo
77 77
         $activated_levels = array();
78 78
         for ($i = 1, $c = count($this->levels); $i < $c; $i++) {
79 79
             $activated_levels[] = $this->levels[$i];
80
-            if ($this->levels[$i] == $level) break;
80
+            if ($this->levels[$i] == $level) {
81
+            	break;
82
+            }
81 83
         }
82 84
         if ($i == $c) {
83 85
             trigger_error(
@@ -101,7 +103,9 @@  discard block
 block discarded – undo
101 103
      * with $defaultLevel, or not used at all.
102 104
      */
103 105
     public function makeFixesForLevel($fixes) {
104
-        if (!isset($this->defaultLevel)) return;
106
+        if (!isset($this->defaultLevel)) {
107
+        	return;
108
+        }
105 109
         if (!isset($this->fixesForLevel[$this->defaultLevel])) {
106 110
             trigger_error(
107 111
                 'Default level ' . $this->defaultLevel . ' does not exist',
@@ -172,17 +176,27 @@  discard block
 block discarded – undo
172 176
     public function getFixType($name) {
173 177
         // parse it
174 178
         $property = $attr = null;
175
-        if (strpos($name, '#') !== false) list($name, $property) = explode('#', $name);
176
-        if (strpos($name, '@') !== false) list($name, $attr)     = explode('@', $name);
179
+        if (strpos($name, '#') !== false) {
180
+        	list($name, $property) = explode('#', $name);
181
+        }
182
+        if (strpos($name, '@') !== false) {
183
+        	list($name, $attr)     = explode('@', $name);
184
+        }
177 185
 
178 186
         // figure out the parameters
179 187
         $params = array();
180
-        if ($name !== '')    $params['element'] = $name;
181
-        if (!is_null($attr)) $params['attr'] = $attr;
188
+        if ($name !== '') {
189
+        	$params['element'] = $name;
190
+        }
191
+        if (!is_null($attr)) {
192
+        	$params['attr'] = $attr;
193
+        }
182 194
 
183 195
         // special case: attribute transform
184 196
         if (!is_null($attr)) {
185
-            if (is_null($property)) $property = 'pre';
197
+            if (is_null($property)) {
198
+            	$property = 'pre';
199
+            }
186 200
             $type = 'attr_transform_' . $property;
187 201
             return array($type, $params);
188 202
         }
Please login to merge, or discard this patch.
classes/security/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Name.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -5,20 +5,20 @@
 block discarded – undo
5 5
  */
6 6
 class HTMLPurifier_HTMLModule_Tidy_Name extends HTMLPurifier_HTMLModule_Tidy
7 7
 {
8
-    public $name = 'Tidy_Name';
9
-    public $defaultLevel = 'heavy';
10
-    public function makeFixes() {
8
+	public $name = 'Tidy_Name';
9
+	public $defaultLevel = 'heavy';
10
+	public function makeFixes() {
11 11
 
12
-        $r = array();
12
+		$r = array();
13 13
 
14
-        // @name for img, a -----------------------------------------------
15
-        // Technically, it's allowed even on strict, so we allow authors to use
16
-        // it. However, it's deprecated in future versions of XHTML.
17
-        $r['img@name'] =
18
-        $r['a@name'] = new HTMLPurifier_AttrTransform_Name();
14
+		// @name for img, a -----------------------------------------------
15
+		// Technically, it's allowed even on strict, so we allow authors to use
16
+		// it. However, it's deprecated in future versions of XHTML.
17
+		$r['img@name'] =
18
+		$r['a@name'] = new HTMLPurifier_AttrTransform_Name();
19 19
 
20
-        return $r;
21
-    }
20
+		return $r;
21
+	}
22 22
 }
23 23
 
24 24
 // vim: et sw=4 sts=4
Please login to merge, or discard this patch.
security/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Proprietary.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -3,21 +3,21 @@
 block discarded – undo
3 3
 class HTMLPurifier_HTMLModule_Tidy_Proprietary extends HTMLPurifier_HTMLModule_Tidy
4 4
 {
5 5
 
6
-    public $name = 'Tidy_Proprietary';
7
-    public $defaultLevel = 'light';
6
+	public $name = 'Tidy_Proprietary';
7
+	public $defaultLevel = 'light';
8 8
 
9
-    public function makeFixes() {
10
-        $r = array();
11
-        $r['table@background'] = new HTMLPurifier_AttrTransform_Background();
12
-        $r['td@background']    = new HTMLPurifier_AttrTransform_Background();
13
-        $r['th@background']    = new HTMLPurifier_AttrTransform_Background();
14
-        $r['tr@background']    = new HTMLPurifier_AttrTransform_Background();
15
-        $r['thead@background'] = new HTMLPurifier_AttrTransform_Background();
16
-        $r['tfoot@background'] = new HTMLPurifier_AttrTransform_Background();
17
-        $r['tbody@background'] = new HTMLPurifier_AttrTransform_Background();
18
-        $r['table@height']     = new HTMLPurifier_AttrTransform_Length('height');
19
-        return $r;
20
-    }
9
+	public function makeFixes() {
10
+		$r = array();
11
+		$r['table@background'] = new HTMLPurifier_AttrTransform_Background();
12
+		$r['td@background']    = new HTMLPurifier_AttrTransform_Background();
13
+		$r['th@background']    = new HTMLPurifier_AttrTransform_Background();
14
+		$r['tr@background']    = new HTMLPurifier_AttrTransform_Background();
15
+		$r['thead@background'] = new HTMLPurifier_AttrTransform_Background();
16
+		$r['tfoot@background'] = new HTMLPurifier_AttrTransform_Background();
17
+		$r['tbody@background'] = new HTMLPurifier_AttrTransform_Background();
18
+		$r['table@height']     = new HTMLPurifier_AttrTransform_Length('height');
19
+		return $r;
20
+	}
21 21
 
22 22
 }
23 23
 
Please login to merge, or discard this patch.
security/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy/Strict.php 2 patches
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -2,20 +2,20 @@
 block discarded – undo
2 2
 
3 3
 class HTMLPurifier_HTMLModule_Tidy_Strict extends HTMLPurifier_HTMLModule_Tidy_XHTMLAndHTML4
4 4
 {
5
-    public $name = 'Tidy_Strict';
6
-    public $defaultLevel = 'light';
5
+	public $name = 'Tidy_Strict';
6
+	public $defaultLevel = 'light';
7 7
 
8
-    public function makeFixes() {
9
-        $r = parent::makeFixes();
10
-        $r['blockquote#content_model_type'] = 'strictblockquote';
11
-        return $r;
12
-    }
8
+	public function makeFixes() {
9
+		$r = parent::makeFixes();
10
+		$r['blockquote#content_model_type'] = 'strictblockquote';
11
+		return $r;
12
+	}
13 13
 
14
-    public $defines_child_def = true;
15
-    public function getChildDef($def) {
16
-        if ($def->content_model_type != 'strictblockquote') return parent::getChildDef($def);
17
-        return new HTMLPurifier_ChildDef_StrictBlockquote($def->content_model);
18
-    }
14
+	public $defines_child_def = true;
15
+	public function getChildDef($def) {
16
+		if ($def->content_model_type != 'strictblockquote') return parent::getChildDef($def);
17
+		return new HTMLPurifier_ChildDef_StrictBlockquote($def->content_model);
18
+	}
19 19
 }
20 20
 
21 21
 // vim: et sw=4 sts=4
Please login to merge, or discard this patch.
Braces   +3 added lines, -1 removed lines patch added patch discarded remove patch
@@ -13,7 +13,9 @@
 block discarded – undo
13 13
 
14 14
     public $defines_child_def = true;
15 15
     public function getChildDef($def) {
16
-        if ($def->content_model_type != 'strictblockquote') return parent::getChildDef($def);
16
+        if ($def->content_model_type != 'strictblockquote') {
17
+        	return parent::getChildDef($def);
18
+        }
17 19
         return new HTMLPurifier_ChildDef_StrictBlockquote($def->content_model);
18 20
     }
19 21
 }
Please login to merge, or discard this patch.