Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
O
our_own_cloud_project
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
die_coolen_jungs
our_own_cloud_project
Commits
fba8c776
Commit
fba8c776
authored
12 years ago
by
Thomas Müller
Browse files
Options
Downloads
Patches
Plain Diff
plugin mechanism implemented
parent
9717cdb4
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
lib/public/contacts.php
+158
-63
158 additions, 63 deletions
lib/public/contacts.php
with
158 additions
and
63 deletions
lib/public/contacts.php
+
158
−
63
View file @
fba8c776
...
...
@@ -26,9 +26,60 @@
*
*/
namespace
OC
{
interface
AddressBook
{
/**
* @return string defining the technical unique key
*/
public
function
getKey
();
/**
* In comparison to getKey() this function returns a human readable (maybe translated) name
* @return mixed
*/
public
function
getDisplayName
();
/**
* @param $pattern
* @param $searchProperties
* @param $options
* @return mixed
*/
public
function
search
(
$pattern
,
$searchProperties
,
$options
);
// // dummy results
// return array(
// array('id' => 0, 'FN' => 'Thomas Müller', 'EMAIL' => 'a@b.c', 'GEO' => '37.386013;-122.082932'),
// array('id' => 5, 'FN' => 'Thomas Tanghus', 'EMAIL' => array('d@e.f', 'g@h.i')),
// );
/**
* @param $properties
* @return mixed
*/
public
function
createOrUpdate
(
$properties
);
// // dummy
// return array('id' => 0, 'FN' => 'Thomas Müller', 'EMAIL' => 'a@b.c',
// 'PHOTO' => 'VALUE=uri:http://www.abc.com/pub/photos/jqpublic.gif',
// 'ADR' => ';;123 Main Street;Any Town;CA;91921-1234'
// );
/**
* @return mixed
*/
public
function
isReadOnly
();
/**
* @param $id
* @return mixed
*/
public
function
delete
(
$id
);
}
}
// use OCP namespace for all classes that are considered public.
// This means that they should be used by apps instead of the internal ownCloud classes
namespace
OCP
;
namespace
OCP
{
/**
* This class provides access to the contacts app. Use this class exclusively if you want to access contacts.
...
...
@@ -45,8 +96,8 @@ namespace OCP;
* Without an id a new contact will be created.
*
*/
class
Contacts
{
class
Contacts
{
/**
* This function is used to search and find contacts within the users address books.
* In case $pattern is empty all contacts will be returned.
...
...
@@ -58,21 +109,30 @@ class Contacts
*/
public
static
function
search
(
$pattern
,
$searchProperties
=
array
(),
$options
=
array
())
{
// dummy results
return
array
(
array
(
'id'
=>
0
,
'FN'
=>
'Thomas Müller'
,
'EMAIL'
=>
'a@b.c'
,
'GEO'
=>
'37.386013;-122.082932'
),
array
(
'id'
=>
5
,
'FN'
=>
'Thomas Tanghus'
,
'EMAIL'
=>
array
(
'd@e.f'
,
'g@h.i'
)),
);
$result
=
array
();
foreach
(
self
::
$address_books
as
$address_book
)
{
$result
=
$result
+
$address_book
->
search
(
$pattern
,
$searchProperties
,
$options
);
}
return
$result
;
}
/**
* This function can be used to delete the contact identified by the given id
*
* @param object $id the unique identifier to a contact
* @param $address_book_key
* @return bool successful or not
*/
public
static
function
delete
(
$id
)
{
return
false
;
public
static
function
delete
(
$id
,
$address_book_key
)
{
if
(
!
array_key_exists
(
$address_book_key
,
self
::
$address_books
))
return
null
;
$address_book
=
self
::
$address_books
[
$address_book_key
];
if
(
$address_book
->
isReadOnly
())
return
null
;
return
$address_book
->
delete
(
$id
);
}
/**
...
...
@@ -80,15 +140,19 @@ class Contacts
* Otherwise the contact will be updated by replacing the entire data set.
*
* @param array $properties this array if key-value-pairs defines a contact
* @param $address_book_key string to identify the address book in which the contact shall be created or updated
* @return array representing the contact just created or updated
*/
public
static
function
createOrUpdate
(
$properties
)
{
public
static
function
createOrUpdate
(
$properties
,
$address_book_key
)
{
// dummy
return
array
(
'id'
=>
0
,
'FN'
=>
'Thomas Müller'
,
'EMAIL'
=>
'a@b.c'
,
'PHOTO'
=>
'VALUE=uri:http://www.abc.com/pub/photos/jqpublic.gif'
,
'ADR'
=>
';;123 Main Street;Any Town;CA;91921-1234'
);
if
(
!
array_key_exists
(
$address_book_key
,
self
::
$address_books
))
return
null
;
$address_book
=
self
::
$address_books
[
$address_book_key
];
if
(
$address_book
->
isReadOnly
())
return
null
;
return
$address_book
->
createOrUpdate
(
$properties
);
}
/**
...
...
@@ -97,7 +161,38 @@ class Contacts
* @return bool true if enabled, false if not
*/
public
static
function
isEnabled
()
{
return
false
;
return
!
empty
(
self
::
$address_books
);
}
/**
* @param \OC\AddressBook $address_book
*/
public
static
function
registerAddressBook
(
\OC\AddressBook
$address_book
)
{
self
::
$address_books
[
$address_book
->
getKey
()]
=
$address_book
;
}
/**
* @param \OC\AddressBook $address_book
*/
public
static
function
unregisterAddressBook
(
\OC\AddressBook
$address_book
)
{
unset
(
self
::
$address_books
[
$address_book
->
getKey
()]);
}
/**
* @return array
*/
public
static
function
getAddressBooks
()
{
$result
=
array
();
foreach
(
self
::
$address_books
as
$address_book
)
{
$result
[
$address_book
->
getKey
()]
=
$address_book
->
getDisplayName
();
}
return
$result
;
}
/**
* @var \OC\AddressBook[] which holds all registered address books
*/
private
static
$address_books
=
array
();
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment