XOOPS 2.5.6
Final
Main Page
Related Pages
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Pages
XHTMLAndHTML4.php
Go to the documentation of this file.
1
<?php
2
3
class
HTMLPurifier_HTMLModule_Tidy_XHTMLAndHTML4
extends
HTMLPurifier_HTMLModule_Tidy
4
{
5
6
public
function
makeFixes
() {
7
8
$r = array();
9
10
// == deprecated tag transforms ===================================
11
12
$r[
'font'
] =
new
HTMLPurifier_TagTransform_Font
();
13
$r[
'menu'
] =
new
HTMLPurifier_TagTransform_Simple
(
'ul'
);
14
$r[
'dir'
] =
new
HTMLPurifier_TagTransform_Simple
(
'ul'
);
15
$r[
'center'
] =
new
HTMLPurifier_TagTransform_Simple
(
'div'
,
'text-align:center;'
);
16
$r[
'u'
] =
new
HTMLPurifier_TagTransform_Simple
(
'span'
,
'text-decoration:underline;'
);
17
$r[
's'
] =
new
HTMLPurifier_TagTransform_Simple
(
'span'
,
'text-decoration:line-through;'
);
18
$r[
'strike'
] =
new
HTMLPurifier_TagTransform_Simple
(
'span'
,
'text-decoration:line-through;'
);
19
20
// == deprecated attribute transforms =============================
21
22
$r[
'caption@align'
] =
23
new
HTMLPurifier_AttrTransform_EnumToCSS
(
'align'
, array(
24
// we're following IE's behavior, not Firefox's, due
25
// to the fact that no one supports caption-side:right,
26
// W3C included (with CSS 2.1). This is a slightly
27
// unreasonable attribute!
28
'left'
=>
'text-align:left;'
,
29
'right'
=>
'text-align:right;'
,
30
'top'
=>
'caption-side:top;'
,
31
'bottom'
=>
'caption-side:bottom;'
// not supported by IE
32
));
33
34
// @align for img -------------------------------------------------
35
$r[
'img@align'
] =
36
new
HTMLPurifier_AttrTransform_EnumToCSS
(
'align'
, array(
37
'left'
=>
'float:left;'
,
38
'right'
=>
'float:right;'
,
39
'top'
=>
'vertical-align:top;'
,
40
'middle'
=>
'vertical-align:middle;'
,
41
'bottom'
=>
'vertical-align:baseline;'
,
42
));
43
44
// @align for table -----------------------------------------------
45
$r[
'table@align'
] =
46
new
HTMLPurifier_AttrTransform_EnumToCSS
(
'align'
, array(
47
'left'
=>
'float:left;'
,
48
'center'
=>
'margin-left:auto;margin-right:auto;'
,
49
'right'
=>
'float:right;'
50
));
51
52
// @align for hr -----------------------------------------------
53
$r[
'hr@align'
] =
54
new
HTMLPurifier_AttrTransform_EnumToCSS
(
'align'
, array(
55
// we use both text-align and margin because these work
56
// for different browsers (IE and Firefox, respectively)
57
// and the melange makes for a pretty cross-compatible
58
// solution
59
'left'
=>
'margin-left:0;margin-right:auto;text-align:left;'
,
60
'center'
=>
'margin-left:auto;margin-right:auto;text-align:center;'
,
61
'right'
=>
'margin-left:auto;margin-right:0;text-align:right;'
62
));
63
64
// @align for h1, h2, h3, h4, h5, h6, p, div ----------------------
65
// {{{
66
$align_lookup = array();
67
$align_values = array(
'left'
,
'right'
,
'center'
,
'justify'
);
68
foreach
($align_values as $v) $align_lookup[$v] =
"text-align:$v;"
;
69
// }}}
70
$r[
'h1@align'
] =
71
$r[
'h2@align'
] =
72
$r[
'h3@align'
] =
73
$r[
'h4@align'
] =
74
$r[
'h5@align'
] =
75
$r[
'h6@align'
] =
76
$r[
'p@align'
] =
77
$r[
'div@align'
] =
78
new
HTMLPurifier_AttrTransform_EnumToCSS
(
'align'
, $align_lookup);
79
80
// @bgcolor for table, tr, td, th ---------------------------------
81
$r[
'table@bgcolor'
] =
82
$r[
'td@bgcolor'
] =
83
$r[
'th@bgcolor'
] =
84
new
HTMLPurifier_AttrTransform_BgColor
();
85
86
// @border for img ------------------------------------------------
87
$r[
'img@border'
] =
new
HTMLPurifier_AttrTransform_Border
();
88
89
// @clear for br --------------------------------------------------
90
$r[
'br@clear'
] =
91
new
HTMLPurifier_AttrTransform_EnumToCSS
(
'clear'
, array(
92
'left'
=>
'clear:left;'
,
93
'right'
=>
'clear:right;'
,
94
'all'
=>
'clear:both;'
,
95
'none'
=>
'clear:none;'
,
96
));
97
98
// @height for td, th ---------------------------------------------
99
$r[
'td@height'
] =
100
$r[
'th@height'
] =
101
new
HTMLPurifier_AttrTransform_Length
(
'height'
);
102
103
// @hspace for img ------------------------------------------------
104
$r[
'img@hspace'
] =
new
HTMLPurifier_AttrTransform_ImgSpace
(
'hspace'
);
105
106
// @noshade for hr ------------------------------------------------
107
// this transformation is not precise but often good enough.
108
// different browsers use different styles to designate noshade
109
$r[
'hr@noshade'
] =
110
new
HTMLPurifier_AttrTransform_BoolToCSS
(
111
'noshade'
,
112
'color:#808080;background-color:#808080;border:0;'
113
);
114
115
// @nowrap for td, th ---------------------------------------------
116
$r[
'td@nowrap'
] =
117
$r[
'th@nowrap'
] =
118
new
HTMLPurifier_AttrTransform_BoolToCSS
(
119
'nowrap'
,
120
'white-space:nowrap;'
121
);
122
123
// @size for hr --------------------------------------------------
124
$r[
'hr@size'
] =
new
HTMLPurifier_AttrTransform_Length
(
'size'
,
'height'
);
125
126
// @type for li, ol, ul -------------------------------------------
127
// {{{
128
$ul_types = array(
129
'disc'
=>
'list-style-type:disc;'
,
130
'square'
=>
'list-style-type:square;'
,
131
'circle'
=>
'list-style-type:circle;'
132
);
133
$ol_types = array(
134
'1'
=>
'list-style-type:decimal;'
,
135
'i'
=>
'list-style-type:lower-roman;'
,
136
'I'
=>
'list-style-type:upper-roman;'
,
137
'a'
=>
'list-style-type:lower-alpha;'
,
138
'A'
=>
'list-style-type:upper-alpha;'
139
);
140
$li_types = $ul_types + $ol_types;
141
// }}}
142
143
$r[
'ul@type'
] =
new
HTMLPurifier_AttrTransform_EnumToCSS
(
'type'
, $ul_types);
144
$r[
'ol@type'
] =
new
HTMLPurifier_AttrTransform_EnumToCSS
(
'type'
, $ol_types,
true
);
145
$r[
'li@type'
] =
new
HTMLPurifier_AttrTransform_EnumToCSS
(
'type'
, $li_types,
true
);
146
147
// @vspace for img ------------------------------------------------
148
$r[
'img@vspace'
] =
new
HTMLPurifier_AttrTransform_ImgSpace
(
'vspace'
);
149
150
// @width for hr, td, th ------------------------------------------
151
$r[
'td@width'
] =
152
$r[
'th@width'
] =
153
$r[
'hr@width'
] =
new
HTMLPurifier_AttrTransform_Length
(
'width'
);
154
155
return
$r;
156
157
}
158
159
}
160
161
// vim: et sw=4 sts=4
L:
0xoops
xoops-2.5.6
htdocs
xoops_lib
modules
protector
library
HTMLPurifier
HTMLModule
Tidy
XHTMLAndHTML4.php
Generated on Fri May 10 2013 01:04:30 for XOOPS 2.5.6 by
1.8.3.1