/** * @return Pap_Db_VisitorAffiliate */ private function getLatestVisitorAffiliate(Pap_Tracking_Common_VisitorAffiliateCollection $visitorAffiliates) { if ($visitorAffiliates->getSize() == 0) { return null; } $latest = null; foreach ($visitorAffiliates as $visitorAffiliate) { if (($latest == null || $latest->getDateVisit() < $visitorAffiliate->getDateVisit()) && $visitorAffiliate->isValid()) { $latest = $visitorAffiliate; } } return $latest; }
private function setFirstAndLastClick(Pap_Common_Transaction $transaction, $contextUserId) { $firstAffiliate = $this->visitorAffiliateCollection->getValid(0); $lastAffiliate = $this->visitorAffiliateCollection->getValid($this->visitorAffiliateCollection->getValidSize()-1); try{ $visitorAffiliate = $this->visitorAffiliateCollection->getVisitorAffiliateByUserId($contextUserId); $transaction->setRefererUrl($visitorAffiliate->getReferrerUrl()); } catch(Gpf_Exception $e){ $context->debug($e->getMessage()); $transaction->setRefererUrl($this->_('Unknown')); } $this->setFirstClickData($transaction,$firstAffiliate); if ($firstAffiliate->getUserId() == $contextUserId){ $transaction->setAllowFirstClickData(Gpf::YES); } else{ $transaction->setAllowFirstClickData(Gpf::NO); } $this->setLastClickData($transaction,$lastAffiliate); if ($lastAffiliate->getUserId() == $contextUserId){ $transaction->setAllowLastClickData(Gpf::YES); } else{ $transaction->setAllowLastClickData(Gpf::NO); } }
/** * @return Pap_Tracking_Common_VisitorAffiliateCollection */ public static function sortVisitorAffiliatesByDateVisit(Pap_Tracking_Common_VisitorAffiliateCollection $visitorAffiliates) { $visitorAffiliates->sort(array("Pap_Tracking_Visit_VisitorAffiliateCache", "compareTwoVisitorAffiliateByDateVisit")); }
private function checkActualSelected(Pap_Tracking_Common_VisitorAffiliateCollection $rows) { $actual = false; foreach ($rows as $row) { $actual = $actual || $row->isActual(); } if (!$actual) { $rows->get($rows->getSize()-1)->setActual(); } }
protected function setFirstAndLastClick(Pap_Common_Transaction $transaction, Pap_Tracking_Common_VisitorAffiliateCollection $collection) { if ($collection->getSize() == 0) { throw new Gpf_Exception('VisitorAffiliates for this visitor are empty'); } $firstVisitorAffiliate = $collection->get(0); $transaction->setFirstClickTime($firstVisitorAffiliate->getDateVisit()); $transaction->setFirstClickReferer($firstVisitorAffiliate->getReferrerUrl()); $transaction->setFirstClickIp($firstVisitorAffiliate->getIp()); $transaction->setFirstClickData1($firstVisitorAffiliate->getData1()); $transaction->setFirstClickData2($firstVisitorAffiliate->getData2()); $lastVisitorAffiliate = $collection->get($collection->getSize()-1); $transaction->setLastClickTime($lastVisitorAffiliate->getDateVisit()); $transaction->setLastClickReferer($lastVisitorAffiliate->getReferrerUrl()); $transaction->setLastClickIp($lastVisitorAffiliate->getIp()); $transaction->setLastClickData1($lastVisitorAffiliate->getData1()); $transaction->setLastClickData2($lastVisitorAffiliate->getData2()); }
private function isVisitorAffiliatesCollectionValid(Pap_Tracking_Common_VisitorAffiliateCollection $rows) { if ($rows->getSize() == 0) { return true; } if ($rows->getSize() > 3) { return false; } foreach ($rows as $row) { if ($row->isActual()) { return true; } } return false; }
private function cloneVisitorAffiliate(Pap_Db_VisitorAffiliate $visitorAffiliate, Pap_Tracking_Common_VisitorAffiliateCollection $rows) { $newVisitorAffiliate = clone $visitorAffiliate; $newVisitorAffiliate->setId(''); $newVisitorAffiliate->setPersistent(false); $rows->add($newVisitorAffiliate); }