예제 #1
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;
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
 /**
  * 
  */
 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;
 }