getObject( Array('skip_autoload'=>true) ); $object->SetDBField('VisitDate_date', time() ); $object->SetDBField('VisitDate_time', time() ); $object->SetDBField('Referer', getArrayValue($_SERVER, 'HTTP_REFERER') ); $object->SetDBField('IPAddress', $_SERVER['REMOTE_ADDR'] ); if( $object->Create() ) { $this->Application->StoreVar('visit_id', $object->GetID() ); $this->Application->SetVar('visits_id', $object->GetID() ); } } /** * Search * * @param kEvent $event */ function OnSearch(&$event){ parent::OnSearch($event); } /** * Apply any custom changes to list's sql query * * @param kEvent $event * @access protected * @see OnListBuild */ function SetCustomQuery(&$event) { $object =& $event->getObject(); $types = $event->getEventParam('types'); if ($types=='myvisitors'){ $user_id = $this->Application->GetVar('u_id'); $object->addFilter('myitems_user1','au.PortalUserId = '.$user_id); $object->addFilter('myitems_user2','au.PortalUserId >0'); //$object->AddGroupByField('VisitDate'); $object->AddGroupByField('%1$s.VisitId'); } if ($types=='myvisitororders'){ $user_id = $this->Application->GetVar('u_id'); $object->addFilter('myitems_orders','ord.OrderId IS NOT NULL'); $object->addFilter('myitems_user1','au.PortalUserId = '.$user_id); $object->addFilter('myitems_user2','au.PortalUserId >0'); } } /** * Apply some special processing to * object beeing recalled before using * it in other events that call prepareObject * * @param kBase $object * @param kEvent $event * @access protected */ function prepareObject(&$object, &$event) { $types = $event->getEventParam('types'); if(method_exists($object, 'AddGroupByField')){ if ($types=='myvisitors' || !$types){ $object->addCalculatedField('OrderTotalAmountSum', 'SUM(ord.SubTotal+ord.ShippingCost+ord.VAT-ord.CouponDiscount)'); $object->addCalculatedField('OrderAffiliateCommissionSum', 'SUM(ord.AffiliateCommission)'); $object->addCalculatedField('OrderCountByVisit', 'COUNT(OrderId)'); } if (!$types){ $object->AddGroupByField('%1$s.VisitId'); } } } } ?>