Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117751601
VCard.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
3 KB
Referenced Files
None
Subscribers
None
VCard.php
View Options
<?php
namespace
Sabre\VObject\Component
;
use
Sabre\VObject
;
/**
* The VCard component
*
* This component represents the BEGIN:VCARD and END:VCARD found in every
* vcard.
*
* @copyright Copyright (C) 2007-2013 fruux GmbH (https://fruux.com/).
* @author Evert Pot (http://evertpot.com/)
* @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
*/
class
VCard
extends
VObject\Component
{
static
$defaultName
=
'VCARD'
;
/**
* VCards with version 2.1, 3.0 and 4.0 are found.
*
* If the VCARD doesn't know its version, 4.0 is assumed.
*/
const
DEFAULT_VERSION
=
'4.0'
;
/**
* Validates the node for correctness.
*
* The following options are supported:
* - Node::REPAIR - If something is broken, and automatic repair may
* be attempted.
*
* An array is returned with warnings.
*
* Every item in the array has the following properties:
* * level - (number between 1 and 3 with severity information)
* * message - (human readable message)
* * node - (reference to the offending node)
*
* @param int $options
* @return array
*/
public
function
validate
(
$options
=
0
)
{
$warnings
=
array
();
$version
=
$this
->
select
(
'VERSION'
);
if
(
count
(
$version
)!==
1
)
{
$warnings
[]
=
array
(
'level'
=>
1
,
'message'
=>
'The VERSION property must appear in the VCARD component exactly 1 time'
,
'node'
=>
$this
,
);
if
(
$options
&
self
::
REPAIR
)
{
$this
->
VERSION
=
self
::
DEFAULT_VERSION
;
}
}
else
{
$version
=
(
string
)
$this
->
VERSION
;
if
(
$version
!==
'2.1'
&&
$version
!==
'3.0'
&&
$version
!==
'4.0'
)
{
$warnings
[]
=
array
(
'level'
=>
1
,
'message'
=>
'Only vcard version 4.0 (RFC6350), version 3.0 (RFC2426) or version 2.1 (icm-vcard-2.1) are supported.'
,
'node'
=>
$this
,
);
if
(
$options
&
self
::
REPAIR
)
{
$this
->
VERSION
=
'4.0'
;
}
}
}
$fn
=
$this
->
select
(
'FN'
);
if
(
count
(
$fn
)!==
1
)
{
$warnings
[]
=
array
(
'level'
=>
1
,
'message'
=>
'The FN property must appear in the VCARD component exactly 1 time'
,
'node'
=>
$this
,
);
if
((
$options
&
self
::
REPAIR
)
&&
count
(
$fn
)
===
0
)
{
// We're going to try to see if we can use the contents of the
// N property.
if
(
isset
(
$this
->
N
))
{
$value
=
explode
(
';'
,
(
string
)
$this
->
N
);
if
(
isset
(
$value
[
1
])
&&
$value
[
1
])
{
$this
->
FN
=
$value
[
1
]
.
' '
.
$value
[
0
];
}
else
{
$this
->
FN
=
$value
[
0
];
}
// Otherwise, the ORG property may work
}
elseif
(
isset
(
$this
->
ORG
))
{
$this
->
FN
=
(
string
)
$this
->
ORG
;
}
}
}
return
array_merge
(
parent
::
validate
(
$options
),
$warnings
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, Apr 4, 3:17 AM (11 h, 41 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
9c/18/1f2cc618127283ca8d04a27c6631
Default Alt Text
VCard.php (3 KB)
Attached To
Mode
rRPK roundcubemail-plugins-kolab
Attached
Detach File
Event Timeline