/** * 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(); }
/** * 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']; }