예제 #1
0
 public static function track($action, $properties = array())
 {
     if (class_exists('\\Activity\\Models\\Actions')) {
         \Activity\Models\Actions::track($action, $properties);
     }
     if (class_exists('\\Admin\\Models\\Settings') && class_exists('\\KM')) {
         $settings = \Admin\Models\Settings::fetch();
         if ($settings->enabledIntegration('kissmetrics') && $settings->{'integration.kissmetrics.key'}) {
             \KM::init($settings->{'integration.kissmetrics.key'});
             $identity = \Dsc\System::instance()->get('auth')->getIdentity();
             if ($identity->email) {
                 \KM::identify($identity->email);
             } elseif (isset($_COOKIE['km_ni'])) {
                 \KM::identify($_COOKIE['km_ni']);
             } elseif (isset($_COOKIE['km_ai'])) {
                 \KM::identify($_COOKIE['km_ai']);
             } else {
                 $mongo_id = new \MongoId();
                 \KM::identify((string) $mongo_id);
             }
             \KM::record($action, $properties);
         }
     }
     return null;
 }
예제 #2
0
 public function track()
 {
     $action = $this->input->get('action', null, 'string');
     $properties = $this->input->get('properties', null, 'string');
     if (!empty($properties) && is_string($properties)) {
         $properties = json_decode($properties);
     }
     if (!empty($action)) {
         \Activity\Models\Actions::track($action, $properties);
     }
 }
예제 #3
0
 protected function postSite()
 {
     parent::postSite();
     if (!\Audit::instance()->isbot()) {
         $actor = \Activity\Models\Actors::fetch();
         $app = \Base::instance();
         // Track the site visit if it hasn't been done today for this actor
         if (empty($actor->last_visit) || $actor->last_visit < date('Y-m-d', strtotime('today'))) {
             \Activity\Models\Actions::track('Visited Site');
             $actor->set('last_visit', date('Y-m-d', strtotime('today')))->set('visited', time())->save();
         }
         if ($this->input->get('ping', null, 'int') != 1) {
             $actor->markActive(!empty($this->auth->getIdentity()->id));
         }
     }
 }