Beispiel #1
0
 /**
  * save full feed
  *
  * @param YiidActivity $pYiidActivity
  * @param User $pUser
  * @author Matthias Pfefferle
  */
 public static function createActivitiesData($pYiidActivity)
 {
     $lCollection = self::getMongoCollection("analytics.activities");
     $lUrlParts = parse_url($pYiidActivity->getUrl());
     $lOnlineIdentities = array();
     foreach ($pYiidActivity->getOiids() as $lId) {
         $lOi = OnlineIdentityTable::getInstance()->retrieveByPk($lId);
         if ($lOi) {
             $lOnlineIdentities[] = array('name' => $lOi->getCommunity()->getCommunity(), 'cnt' => intval($lOi->getFriendCount()));
         }
     }
     // online-identities required
     if (empty($lOnlineIdentities)) {
         return false;
     }
     $pUser = $pYiidActivity->getUser();
     // basic options
     $lOptions = array('host' => $lUrlParts['host'], 'url' => $pYiidActivity->getUrl(), 'title' => $pYiidActivity->getSocialObject()->getTitle(), 'date' => new MongoDate(strtotime(date("Y-m-d", $pYiidActivity->getC()))), 'verb' => $pYiidActivity->getVerb(), 'gender' => $pUser->getGender(), 'user_id' => intval($pUser->getId()), 'ya_id' => $pYiidActivity->getId(), 'age' => intval($pUser->getAge()), 'rel' => $pUser->getRelationshipState(), 'oi' => $lOnlineIdentities);
     if ($pYiidActivity->getScore() > 0) {
         $lOptions["pos"] = true;
     } else {
         $lOptions["pos"] = false;
     }
     // add clickbacks
     if ($pYiidActivity->isClickback()) {
         $lOptions['cb'] = array('name' => $pYiidActivity->getCbService(), 'ya_id' => $pYiidActivity->getCbReferer());
     }
     // add tags
     if ($lTags = $pYiidActivity->getTags()) {
         $lOptions['tags'] = $lTags;
     }
     // add deal id
     if ($lDealId = $pYiidActivity->getDId()) {
         $lOptions['d_id'] = $lDealId;
     }
     $lCollection->insert($lOptions);
 }