/** * 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(); }
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; }
/** * 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(); }