2011-08-06 22:32:06 +02:00
< ? php
/**
* ownCloud - Addressbook
*
* @ author Jakob Sack
* @ copyright 2011 Jakob Sack mail @ jakobsack . de
*
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation ; either
* version 3 of the License , or any later version .
*
* This library is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details .
*
* You should have received a copy of the GNU Affero General Public
* License along with this library . If not , see < http :// www . gnu . org / licenses />.
*
*/
// Init owncloud
2011-08-09 13:53:58 +02:00
require_once ( '../../../lib/base.php' );
2011-08-06 22:32:06 +02:00
2011-08-09 13:53:58 +02:00
$aid = $_POST [ 'id' ];
2011-08-06 22:32:06 +02:00
$l10n = new OC_L10N ( 'contacts' );
// Check if we are a user
2011-09-23 22:22:59 +02:00
OC_JSON :: checkLoggedIn ();
2011-09-30 23:05:10 +02:00
OC_JSON :: checkAppEnabled ( 'contacts' );
2011-08-06 22:32:06 +02:00
2011-09-17 00:26:57 +02:00
$addressbook = OC_Contacts_Addressbook :: find ( $aid );
2011-08-06 22:32:06 +02:00
if ( $addressbook === false || $addressbook [ 'userid' ] != OC_USER :: getUser ()){
2011-09-23 22:22:59 +02:00
OC_JSON :: error ( array ( 'data' => array ( 'message' => $l10n -> t ( 'This is not your addressbook.' )))); // Same here (as with the contact error). Could this error be improved?
2011-08-06 22:32:06 +02:00
exit ();
}
2011-08-09 13:53:58 +02:00
$fn = $_POST [ 'fn' ];
2011-10-07 22:25:26 +02:00
$values = $_POST [ 'value' ];
$parameters = $_POST [ 'parameters' ];
2011-08-06 22:32:06 +02:00
2011-08-09 13:53:58 +02:00
$vcard = new Sabre_VObject_Component ( 'VCARD' );
$vcard -> add ( new Sabre_VObject_Property ( 'FN' , $fn ));
2011-09-17 00:26:57 +02:00
$vcard -> add ( new Sabre_VObject_Property ( 'UID' , OC_Contacts_VCard :: createUID ()));
2011-10-22 19:22:01 +02:00
// Data to add ...
$add = array ( 'TEL' , 'EMAIL' , 'ORG' );
$address = false ;
for ( $i = 0 ; $i < 7 ; $i ++ ){
if ( isset ( $values [ 'ADR' ][ $i ] ) && $values [ 'ADR' ][ $i ]) $address = true ;
}
if ( $address ) $add [] = 'ADR' ;
// Add data
foreach ( $add as $propname ){
2011-10-21 20:41:48 +02:00
if ( ! ( isset ( $values [ $propname ] ) && $values [ $propname ] )){
continue ;
}
2011-10-07 22:25:26 +02:00
$value = $values [ $propname ];
2011-10-22 19:22:01 +02:00
if ( isset ( $parameters [ $propname ] ) && count ( $parameters [ $propname ] )){
2011-10-07 22:25:26 +02:00
$prop_parameters = $parameters [ $propname ];
2011-10-21 20:41:48 +02:00
}
else {
2011-10-07 22:25:26 +02:00
$prop_parameters = array ();
}
OC_Contacts_VCard :: addVCardProperty ( $vcard , $propname , $value , $prop_parameters );
}
2011-09-17 00:26:57 +02:00
$id = OC_Contacts_VCard :: add ( $aid , $vcard -> serialize ());
2011-08-09 13:53:58 +02:00
2011-09-17 00:26:57 +02:00
$details = OC_Contacts_VCard :: structureContact ( $vcard );
2011-10-07 21:59:18 +02:00
$name = $details [ 'FN' ][ 0 ][ 'value' ];
2011-08-09 13:53:58 +02:00
$tmpl = new OC_Template ( 'contacts' , 'part.details' );
2011-08-06 22:32:06 +02:00
$tmpl -> assign ( 'details' , $details );
$tmpl -> assign ( 'id' , $id );
$page = $tmpl -> fetchPage ();
2011-10-07 21:59:18 +02:00
OC_JSON :: success ( array ( 'data' => array ( 'id' => $id , 'name' => $name , 'page' => $page )));