ILIAS
eassessment Revision 61809
◀ ilDoc Overview
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Groups
Pages
Background.php
Go to the documentation of this file.
1
<?php
2
7
class
HTMLPurifier_AttrDef_CSS_Background
extends
HTMLPurifier_AttrDef
8
{
9
14
protected
$info
;
15
16
public
function
__construct
(
$config
) {
17
$def =
$config
->getCSSDefinition();
18
$this->info[
'background-color'
] = $def->info[
'background-color'
];
19
$this->info[
'background-image'
] = $def->info[
'background-image'
];
20
$this->info[
'background-repeat'
] = $def->info[
'background-repeat'
];
21
$this->info[
'background-attachment'
] = $def->info[
'background-attachment'
];
22
$this->info[
'background-position'
] = $def->info[
'background-position'
];
23
}
24
25
public
function
validate
($string,
$config
, $context) {
26
27
// regular pre-processing
28
$string = $this->
parseCDATA
($string);
29
if
($string ===
''
)
return
false
;
30
31
// munge rgb() decl if necessary
32
$string = $this->
mungeRgb
($string);
33
34
// assumes URI doesn't have spaces in it
35
$bits = explode(
' '
, strtolower($string));
// bits to process
36
37
$caught = array();
38
$caught[
'color'
] =
false
;
39
$caught[
'image'
] =
false
;
40
$caught[
'repeat'
] =
false
;
41
$caught[
'attachment'
] =
false
;
42
$caught[
'position'
] =
false
;
43
44
$i = 0;
// number of catches
45
$none =
false
;
46
47
foreach
($bits as $bit) {
48
if
($bit ===
''
)
continue
;
49
foreach
($caught as $key => $status) {
50
if
($key !=
'position'
) {
51
if
($status !==
false
)
continue
;
52
$r = $this->info[
'background-'
. $key]->validate($bit,
$config
, $context);
53
}
else
{
54
$r = $bit;
55
}
56
if
($r ===
false
)
continue
;
57
if
($key ==
'position'
) {
58
if
($caught[$key] ===
false
) $caught[$key] =
''
;
59
$caught[$key] .= $r .
' '
;
60
}
else
{
61
$caught[$key] = $r;
62
}
63
$i++;
64
break
;
65
}
66
}
67
68
if
(!$i)
return
false
;
69
if
($caught[
'position'
] !==
false
) {
70
$caught[
'position'
] = $this->info[
'background-position'
]->
71
validate
($caught[
'position'
],
$config
, $context);
72
}
73
74
$ret
= array();
75
foreach
($caught as $value) {
76
if
($value ===
false
)
continue
;
77
$ret
[] = $value;
78
}
79
80
if
(empty(
$ret
))
return
false
;
81
return
implode(
' '
,
$ret
);
82
83
}
84
85
}
86
87
// vim: et sw=4 sts=4
Services
Html
HtmlPurifier
library
HTMLPurifier
AttrDef
CSS
Background.php
Generated on Mon Apr 25 2016 19:01:31 for ILIAS by
1.8.1.2 (using
Doxyfile
)