ILIAS
Release_4_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
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
Services
Html
HtmlPurifier
library
HTMLPurifier
HTMLModule
Tidy
XHTMLAndHTML4.php
Generated on Wed Apr 27 2016 19:01:42 for ILIAS by
1.8.1.2 (using
Doxyfile
)