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(); }
/** * 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; }
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)); } } }
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 } }
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(); } }
public static function fetchActor($email = null) { return \Activity\Models\Actors::fetch($email); }