/**
  * update the given online identity with latest data from facebook
  *
  * @param $pOnlineIdentity
  * @param $lToken
  * @return unknown_type
  */
 public static function updateIdentity(&$pOnlineIdentity, $lJsonUserObject)
 {
     $pOnlineIdentity->setName($lJsonUserObject->name);
     $pOnlineIdentity->setGender($lJsonUserObject->gender);
     // transform facebook format into
     $lBirthday = explode('/', $lJsonUserObject->birthday);
     if (count($lBirthday == 3 && $lBirthday[2] > 0 && $lBirthday[0] != '0000')) {
         // 3 parts and year is set
         $pOnlineIdentity->setBirthdate($lBirthday[2] . '-' . $lBirthday[0] . '-' . $lBirthday[1]);
     }
     $pOnlineIdentity->setRelationshipState(IdentityHelper::tranformRelationshipStringToClasskey($lJsonUserObject->relationship_status));
     $pOnlineIdentity->setSocialPublishingEnabled(true);
     $pOnlineIdentity->setLocationRaw($lJsonUserObject->location->name);
     $pOnlineIdentity->setProfileUri($lJsonUserObject->link);
     $pOnlineIdentity->save();
     // update user's email
     $lUser = $pOnlineIdentity->getUser();
     if ($lJsonUserObject->email) {
         $lUser->setEmail($lJsonUserObject->email);
     }
     $lUser->setRelationshipState($pOnlineIdentity->getRelationshipState());
     $lUser->setBirthdate($pOnlineIdentity->getBirthDate());
     $lUser->save();
 }
示例#2
0
 private static function fillDemographics($pYiidActivity)
 {
     $pUser = $pYiidActivity->getUser();
     if ($pUser) {
         $demografics = array();
         $demografics['rel'][IdentityHelper::toMongoKey($pUser->getRelationshipState())] = 1;
         $demografics['sex'][$pUser->getGender() == false ? 'u' : $pUser->getGender()] = 1;
         // set age
         $a = $pUser->getAge();
         if ($a < 18) {
             $demografics['age']["u_18"] = 1;
         } elseif ($a >= 18 && $a <= 24) {
             $demografics['age']["b_18_24"] = 1;
         } elseif ($a >= 25 && $a <= 34) {
             $demografics['age']["b_25_34"] = 1;
         } elseif ($a >= 35 && $a <= 54) {
             $demografics['age']["b_35_54"] = 1;
         } elseif ($a >= 55) {
             $demografics['age']["o_55"] = 1;
         } else {
             $demografics['age']["u"] = 1;
         }
     } else {
         $demografics['rel']["u"] = 1;
         $demografics['sex']["u"] = 1;
         $demografics['age']["u"] = 1;
     }
     return $demografics;
 }
示例#3
0
 /**
  * complete the online-identity with the api json
  *
  * @author Matthias Pfefferle
  * @refactored weyandch
  * @param OnlineIdentity $pOnlineIdentity
  * @param Object $pObject
  */
 public function completeOnlineIdentity(&$pOnlineIdentity, $pObject, $pUser, $pAuthIdentifier)
 {
     // delegate to ImportClient to avoid duplicate code
     /* signup,add new */
     $pOnlineIdentity->setUserId($pUser->getId());
     $pOnlineIdentity->setAuthIdentifier($pAuthIdentifier);
     $pOnlineIdentity->setName($pObject->name);
     $pOnlineIdentity->setGender($pObject->gender);
     // transform facebook format into
     $lBirthday = explode('/', $pObject->birthday);
     if (count($lBirthday == 3 && $lBirthday[2] > 0 && $lBirthday[0] != '0000')) {
         // 3 parts and year is set
         $pOnlineIdentity->setBirthdate($lBirthday[2] . '-' . $lBirthday[0] . '-' . $lBirthday[1]);
     }
     $pOnlineIdentity->setRelationshipState(IdentityHelper::tranformRelationshipStringToClasskey($pObject->relationship_status));
     $pOnlineIdentity->setSocialPublishingEnabled(true);
     $pOnlineIdentity->setLocationRaw($pObject->location->name);
     $pOnlineIdentity->setPhoto("https://graph.facebook.com/" . $pOnlineIdentity->getOriginalId() . "/picture");
     $pOnlineIdentity->setProfileUri($pObject->link);
     $pOnlineIdentity->save();
     $pUser->setRelationshipState($pOnlineIdentity->getRelationshipState());
     $pUser->setBirthdate($pOnlineIdentity->getBirthDate());
     $pUser->save();
 }