Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Sat, Jun 21, 4:53 PM

in-portal

Index: branches/unlabeled/unlabeled-1.17.2/kernel/units/visits/visits_event_handler.php
===================================================================
--- branches/unlabeled/unlabeled-1.17.2/kernel/units/visits/visits_event_handler.php (nonexistent)
+++ branches/unlabeled/unlabeled-1.17.2/kernel/units/visits/visits_event_handler.php (revision 6630)
@@ -0,0 +1,93 @@
+<?php
+
+ class VisitsEventHandler extends kDBEventHandler {
+
+ /**
+ * Registers user visit to site
+ *
+ * @param kEvent $event
+ */
+ function OnRegisterVisit(&$event)
+ {
+ if ($this->Application->IsAdmin()) {
+ // admin logins are not registred in visits list
+ return true;
+ }
+ if ($this->Application->RecallVar('visit_id')) {
+ return true;
+ }
+ $object =& $event->getObject( Array('skip_autoload'=>true) );
+ $object->SetDBField('VisitDate_date', adodb_mktime() );
+ $object->SetDBField('VisitDate_time', adodb_mktime() );
+ $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() );
+ }
+ }
+
+ /**
+ * 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' && $event->Special == 'incommerce')
+ {
+ $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');
+ $object->addFilter('myitems_orders_processed','ord.Status = 4');
+ }
+ }
+
+ /**
+ * 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->Special == 'incommerce')
+ {
+ $object->addCalculatedField('OrderTotalAmountSum', 'SUM(IF(ord.Status = 4, ord.SubTotal+ord.ShippingCost+ord.VAT, 0))');
+ $object->addCalculatedField('OrderAffiliateCommissionSum', 'SUM( IF(ord.Status = 4,ord.AffiliateCommission,0))');
+ $object->addCalculatedField('OrderCountByVisit', 'SUM( IF(ord.Status = 4, 1, 0) )');
+ }
+
+ if (!$types){
+ $object->AddGroupByField('%1$s.VisitId');
+ }
+ }
+ }
+
+ }
+
+?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.17.2/kernel/units/visits/visits_event_handler.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.17
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.17.2/core/units/visits/visits_event_handler.php
===================================================================
--- branches/unlabeled/unlabeled-1.17.2/core/units/visits/visits_event_handler.php (nonexistent)
+++ branches/unlabeled/unlabeled-1.17.2/core/units/visits/visits_event_handler.php (revision 6630)
@@ -0,0 +1,93 @@
+<?php
+
+ class VisitsEventHandler extends kDBEventHandler {
+
+ /**
+ * Registers user visit to site
+ *
+ * @param kEvent $event
+ */
+ function OnRegisterVisit(&$event)
+ {
+ if ($this->Application->IsAdmin()) {
+ // admin logins are not registred in visits list
+ return true;
+ }
+ if ($this->Application->RecallVar('visit_id')) {
+ return true;
+ }
+ $object =& $event->getObject( Array('skip_autoload'=>true) );
+ $object->SetDBField('VisitDate_date', adodb_mktime() );
+ $object->SetDBField('VisitDate_time', adodb_mktime() );
+ $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() );
+ }
+ }
+
+ /**
+ * 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' && $event->Special == 'incommerce')
+ {
+ $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');
+ $object->addFilter('myitems_orders_processed','ord.Status = 4');
+ }
+ }
+
+ /**
+ * 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->Special == 'incommerce')
+ {
+ $object->addCalculatedField('OrderTotalAmountSum', 'SUM(IF(ord.Status = 4, ord.SubTotal+ord.ShippingCost+ord.VAT, 0))');
+ $object->addCalculatedField('OrderAffiliateCommissionSum', 'SUM( IF(ord.Status = 4,ord.AffiliateCommission,0))');
+ $object->addCalculatedField('OrderCountByVisit', 'SUM( IF(ord.Status = 4, 1, 0) )');
+ }
+
+ if (!$types){
+ $object->AddGroupByField('%1$s.VisitId');
+ }
+ }
+ }
+
+ }
+
+?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.17.2/core/units/visits/visits_event_handler.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.17
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property

Event Timeline