Example #1
0
 public static function setActive()
 {
     if (!\Audit::instance()->isbot()) {
         if (class_exists('\\Activity\\Models\\Actors')) {
             $actor = \Activity\Models\Actors::fetch();
             if ($actor->isExcluded()) {
                 return;
             }
         }
         if (\Dsc\System::instance()->get('input')->get('ping', null, 'int') != 1) {
             $fw = \Base::instance();
             $path = $fw->hive()['PATH'];
             switch ($path) {
                 // ignore certain paths, even if they aren't specifically pings
                 case strpos($path, '/minify/') === 0 ? true : false:
                 case "/minify/css":
                 case "/minify/js":
                     break;
                 default:
                     (new \Dsc\Mongo\Collections\Sessions())->store();
                     break;
             }
         }
     }
     \Dsc\Mongo\Collections\Sessions::throttledCleanup();
 }
Example #2
0
 /**
  * Determines whether or not this condition passes
  *
  * @param string $route
  * @param unknown $options
  */
 public function passes(\Modules\Models\Modules $module, $route = null, $options = array())
 {
     // if this ruleset is ignored, return null
     if (!in_array($module->{'assignment.activity-visits.method'}, array('include'))) {
         return null;
     }
     $actor = \Activity\Models\Actors::fetch();
     if (empty($actor->id)) {
         return null;
     }
     $visits = \Activity\Models\Actions::collection()->count(array('actor_id' => $actor->id, 'action' => 'Visited Site'));
     $return = null;
     switch ($module->{'assignment.activity-visits.has_visited'}) {
         case "1":
             if ($visits > 1) {
                 $return = true;
             } else {
                 $return = false;
             }
             break;
         case "0":
             if ($visits > 1) {
                 $return = false;
             } else {
                 $return = true;
             }
             break;
     }
     return $return;
 }
Example #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));
         }
     }
 }
Example #4
0
 public function createRequest()
 {
     // TODO If the user already has a chat session open, use that one
     $model = (new \Support\Models\ChatSessions())->set('status', 'open-request')->set('session_id_user', $this->session->id());
     if ($this->getIdentity()->id) {
         $model->set('user_id', $this->getIdentity()->id);
     }
     $actor = \Activity\Models\Actors::fetch();
     $model->set('user_actor_id', $actor->id);
     $model->set('user_email', $this->input->get('email', null, 'string'));
     $model->set('user_name', $this->input->get('name', null, 'string'));
     try {
         $chat_session = $model->save();
         $this->session->set('support_session_id', (string) $chat_session->id);
         $this->app->set('chat_session', $chat_session);
         $this->app->set('messages', $chat_session->messages);
         return $this->outputJson($this->getJsonResponse(array('result' => $this->theme->renderView('Support/Site/Views::livechatajax/chat_session.php'))));
     } catch (\Exception $e) {
         // TODO Handle this
     }
 }
Example #5
0
 public function index()
 {
     $fingerprint = $this->inputfilter->clean($this->app->get('PARAMS.id'), 'alnum');
     \Dsc\System::instance()->get('session')->set('activity.fingerprint', $fingerprint);
     $identity = $this->getIdentity();
     if (!empty($identity->id)) {
         $identity = $identity->reload();
         $fingerprints = (array) $identity->{'activities.fingerprints'};
         // is this a new fingerprint?
         if (!in_array($fingerprint, $fingerprints)) {
             $fingerprints[] = $fingerprint;
             $identity->{'activities.fingerprints'} = $fingerprints;
             $identity->save();
             // ensure that the fingerprint is added to the actor, which is
             // something that is handled by fetch()
             $actor = \Activity\Models\Actors::fetch();
         }
     } else {
         $actor = \Activity\Models\Actors::fetch();
         $actor->fingerprints = array_unique(array_merge($actor->fingerprints, array($fingerprint)));
         $actor->save();
     }
 }
Example #6
0
 public static function fetchActor($email = null)
 {
     return \Activity\Models\Actors::fetch($email);
 }