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
Length.php
Go to the documentation of this file.
1
<?php
2
7
class
HTMLPurifier_Length
8
{
9
13
protected
$n
;
14
18
protected
$unit
;
19
23
protected
$isValid
;
24
28
protected
static
$allowedUnits
= array(
29
'em'
=>
true
,
'ex'
=>
true
,
'px'
=>
true
,
'in'
=>
true
,
30
'cm'
=>
true
,
'mm'
=>
true
,
'pt'
=>
true
,
'pc'
=>
true
31
);
32
37
public
function
__construct
(
$n
=
'0'
, $u =
false
) {
38
$this->
n
= (string)
$n
;
39
$this->unit = $u !==
false
? (string) $u :
false
;
40
}
41
46
static
public
function
make
($s) {
47
if
($s instanceof
HTMLPurifier_Length
)
return
$s;
48
$n_length = strspn($s,
'1234567890.+-'
);
49
$n
= substr($s, 0, $n_length);
50
$unit
= substr($s, $n_length);
51
if
(
$unit
===
''
)
$unit
=
false
;
52
return
new
HTMLPurifier_Length(
$n
,
$unit
);
53
}
54
58
protected
function
validate
() {
59
// Special case:
60
if
($this->
n
===
'+0'
|| $this->
n
===
'-0'
) $this->
n
=
'0'
;
61
if
($this->
n
===
'0'
&& $this->unit ===
false
)
return
true
;
62
if
(!ctype_lower($this->unit)) $this->unit = strtolower($this->unit);
63
if
(!isset(
HTMLPurifier_Length::$allowedUnits
[$this->unit]))
return
false
;
64
// Hack:
65
$def =
new
HTMLPurifier_AttrDef_CSS_Number
();
66
$result = $def->validate($this->
n
,
false
,
false
);
67
if
($result ===
false
)
return
false
;
68
$this->
n
= $result;
69
return
true
;
70
}
71
75
public
function
toString
() {
76
if
(!$this->
isValid
())
return
false
;
77
return
$this->
n
.
$this->unit
;
78
}
79
83
public
function
getN
() {
return
$this->n
;}
84
88
public
function
getUnit
() {
return
$this->unit
;}
89
93
public
function
isValid
() {
94
if
($this->
isValid
=== null) $this->
isValid
= $this->
validate
();
95
return
$this->isValid
;
96
}
97
103
public
function
compareTo
(
$l
) {
104
if
(
$l
===
false
)
return
false
;
105
if
(
$l
->unit !== $this->unit) {
106
$converter =
new
HTMLPurifier_UnitConverter
();
107
$l
= $converter->convert(
$l
, $this->unit);
108
if
(
$l
===
false
)
return
false
;
109
}
110
return
$this->
n
-
$l
->n;
111
}
112
113
}
114
115
// vim: et sw=4 sts=4
Services
Html
HtmlPurifier
library
HTMLPurifier
Length.php
Generated on Mon Apr 25 2016 19:01:31 for ILIAS by
1.8.1.2 (using
Doxyfile
)