예제 #1
0
파일: converter.php 프로젝트: evanjt/core
 /**
  * @param VCard $vCard
  * @param IUser $user
  * @return bool
  */
 public function updateCard(VCard $vCard, IUser $user)
 {
     $uid = $user->getUID();
     $displayName = $user->getDisplayName();
     $displayName = empty($displayName) ? $uid : $displayName;
     $emailAddress = $user->getEMailAddress();
     $cloudId = $user->getCloudId();
     $image = $user->getAvatarImage(-1);
     $updated = false;
     if ($this->propertyNeedsUpdate($vCard, 'FN', $displayName)) {
         $vCard->FN = new Text($vCard, 'FN', $displayName);
         unset($vCard->N);
         $vCard->add(new Text($vCard, 'N', $this->splitFullName($displayName)));
         $updated = true;
     }
     if ($this->propertyNeedsUpdate($vCard, 'EMAIL', $emailAddress)) {
         $vCard->EMAIL = new Text($vCard, 'EMAIL', $emailAddress);
         $updated = true;
     }
     if ($this->propertyNeedsUpdate($vCard, 'CLOUD', $cloudId)) {
         $vCard->CLOUD = new Text($vCard, 'CLOUD', $cloudId);
         $updated = true;
     }
     if ($this->propertyNeedsUpdate($vCard, 'PHOTO', $image)) {
         $vCard->add('PHOTO', $image->data(), ['ENCODING' => 'b', 'TYPE' => $image->mimeType()]);
         $updated = true;
     }
     if (empty($emailAddress) && !is_null($vCard->EMAIL)) {
         unset($vCard->EMAIL);
         $updated = true;
     }
     if (empty($cloudId) && !is_null($vCard->CLOUD)) {
         unset($vCard->CLOUD);
         $updated = true;
     }
     if (empty($image) && !is_null($vCard->PHOTO)) {
         unset($vCard->PHOTO);
         $updated = true;
     }
     return $updated;
 }
예제 #2
0
 /**
  * @param IUser $user
  * @return null|IImage
  */
 private function getAvatarImage(IUser $user)
 {
     try {
         $image = $user->getAvatarImage(-1);
         return $image;
     } catch (\Exception $ex) {
         return null;
     }
 }