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