/** * 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; }
/** * Actually returns total visitors. * TODO Rename function * * @param string $start * @param string $end * @return multitype:number */ public function fetchTotal($start = null, $end = null) { $conditions = array('action' => 'Visited Site'); if (!empty($start)) { $conditions['created'] = array('$gte' => strtotime($start)); } if (!empty($end)) { if (empty($conditions['created'])) { $conditions['created'] = array('$lt' => strtotime($end)); } else { $conditions['created']['$lt'] = strtotime($end); } } $return = \Activity\Models\Actions::collection()->count($conditions); return $return; }
/** * */ public function actionCount() { if (empty($this->action_count) || empty($this->action_count_last_checked) || $this->action_count_last_checked < time() - 15 * 60) { $this->action_count = \Activity\Models\Actions::collection()->count(array('actor_id' => $this->id)); if (!empty($this->id)) { $this->action_count_last_checked = time(); $this->store(); } } return $this->action_count; }