/**
* @param Pap_Db_Visit
* @return Pap_Contexts_Click
*/
private function getContextFromParams(Pap_Db_Visit $visit) {
$context = $this->createContext($visit);
$getRequest = new Pap_Tracking_Request();
$getRequest->parseUrl($visit->getGetParams());
if($getRequest->getAffiliateId() == ''){
$context->debug('Affiliate Id or Affiliate Id Parameter is missing');
}
if ($this->isClickRequest($getRequest)) {
$context->setRequestObject($getRequest);
$context->debug('It is click request.');
return $context;
}
$anchorRequest = new Pap_Tracking_Request();
$anchor = $visit->getAnchor();
$anchorRequest->parseUrl($anchor);
if ($this->isClickRequest($anchorRequest)) {
$context->setRequestObject($anchorRequest);
$context->debug('It is anchor request, anchor: ' . $anchor);
return $context;
}
if ($anchor != '' && Gpf_Settings::get(Pap_Settings::SUPPORT_SHORT_ANCHOR_LINKING) == Gpf::YES) {
$user = $this->affiliateRecognizer->getUserById($context, $anchor);
if ($user == null) {
$context->debug('User is null, anchor was:' . $anchor);
return null;
}
$shortAnchorRequest = new Pap_Tracking_Request();
$shortAnchorRequest->parseUrl('?'.Pap_Tracking_Request::getAffiliateClickParamName().'='.$anchor);
$context->setRequestObject($shortAnchorRequest);
$context->debug('Short anchor link');
return $context;
}
$context->debug('No click was recognized (normal, anchor or short anchor) - this might be a problem...');
return null;
}