/**
  * Handle Question Specific Filters
  */
 protected function setupFilterSQL()
 {
     if (in_array('polls_notAnswered', $this->filters) || in_array('polls_mine', $this->filters)) {
         $this->sqlJoin .= " LEFT JOIN poll ON content.object_id=poll.id AND content.object_model = 'Poll'";
         if (in_array('polls_notAnswered', $this->filters)) {
             $this->sqlJoin .= " LEFT JOIN poll_answer_user ON poll.id=poll_answer_user.poll_id AND poll_answer_user.created_by = '" . Yii::app()->user->id . "'";
             $this->sqlWhere .= " AND poll_answer_user.id is null";
         }
         #if (in_array('questions_mine', $this->filters)) {
         #	$this->sqlWhere .= " AND question.created_by = '".Yii::app()->user->id."'";
         #}
     }
     parent::setupFilterSQL();
 }
Example #2
0
 /**
  * Return activity content by given user.
  *
  * This output is generated by current mode.
  *
  * @param type $user
  * @return string
  */
 private function getActivityContent($user)
 {
     $receive_email_activities = $user->getSetting("receive_email_activities", 'core', HSetting::Get('receive_email_activities', 'mailing'));
     // User never wants activity content
     if ($receive_email_activities == User::RECEIVE_EMAIL_NEVER) {
         return "";
     }
     // We are in hourly mode and user wants receive a daily summary
     if ($this->mode == 'hourly' && $receive_email_activities == User::RECEIVE_EMAIL_DAILY_SUMMARY) {
         return "";
     }
     // We are in daily mode and user wants receive not daily
     if ($this->mode == 'daily' && $receive_email_activities != User::RECEIVE_EMAIL_DAILY_SUMMARY) {
         return "";
     }
     // User is online and want only receive when offline
     if ($this->mode == 'hourly') {
         $isOnline = count($user->httpSessions) > 0;
         if ($receive_email_activities == User::RECEIVE_EMAIL_WHEN_OFFLINE && $isOnline) {
             return "";
         }
     }
     $lastMailDate = $user->last_activity_email;
     if ($lastMailDate == "" || $lastMailDate == "0000-00-00 00:00:00") {
         $lastMailDate = new CDbExpression('NOW() - INTERVAL 24 HOUR');
     }
     // Get Stream contents
     $action = new StreamAction(null, 'console');
     $action->mode = StreamAction::MODE_ACTIVITY;
     $action->type = Wall::TYPE_DASHBOARD;
     $action->userId = $user->id;
     $action->userWallId = $user->wall_id;
     $action->wallEntryLimit = 50;
     $action->wallEntryDateTo = $lastMailDate;
     $activities = $action->runConsole();
     # Save last run
     $user->last_activity_email = new CDbExpression('NOW()');
     $user->save();
     // Nothin new
     if ($activities['counter'] == 0) {
         return "";
     }
     // Return Output
     return $activities['output'];
 }