Example #1
0
 public function __construct($url)
 {
     $user_data = User::getUserData(['username', 'first_name', 'last_name', 'user_id', 'email', 'profile_pic'])[0];
     $this->data['title'] = 'Question - NCube School';
     $this->data['first_name'] = ucwords($user_data['first_name']);
     $this->data['last_name'] = ucwords($user_data['last_name']);
     $this->data['token'] = Token::generate();
     $this->data['username'] = $user_data['username'];
     $this->data['side_active']['questions'] = ' active';
     $this->data['profile_pic'] = User::getProfilePic($user_data['profile_pic']);
     $this->data['question'] = Question::getPublicQuestion($url[0])[0];
     $this->data['q_user'] = User::getPublicUserData($this->data['question']['user_id'])[0];
     $this->data['q_user']['profile_pic'] = User::getProfilePic($this->data['q_user']['profile_pic']);
     $this->data['question']['up_count'] = Question::getVoteUpCount($this->data['question']['q_id']);
     $this->data['question']['down_count'] = Question::getVoteDownCount($this->data['question']['q_id']);
     $this->data['question']['level'] = Question::getDifficultyLevel($this->data['question']['q_id']);
     $this->data['question']['answers_count'] = Question::getAnswersCount($this->data['question']['q_id']);
     $answers = Question::getAnswers($this->data['question']['q_id']);
     foreach ($answers as $key => $value) {
         $answers[$key]['user'] = User::getPublicUserData($value['user_id'])[0];
         $answers[$key]['user']['profile_pic'] = User::getProfilePic($answers[$key]['user']['profile_pic']);
     }
     $this->data['answers'] = $answers;
     require_once 'include/header.php';
 }
Example #2
0
 public function __construct()
 {
     $user_data = User::getUserData(['username', 'first_name', 'last_name', 'user_id', 'email', 'profile_pic'])[0];
     $this->data['title'] = 'Questions - NCube School';
     $this->data['first_name'] = ucwords($user_data['first_name']);
     $this->data['last_name'] = ucwords($user_data['last_name']);
     $this->data['token'] = Token::generate();
     $this->data['username'] = $user_data['username'];
     $this->data['side_active']['questions'] = ' active';
     $this->data['profile_pic'] = User::getProfilePic($user_data['profile_pic']);
     require_once 'include/header.php';
     $questions = Question::getPublicQuestions();
     foreach ($questions as $key => $value) {
         $questions[$key]['up_count'] = Question::getVoteUpCount($value['q_id']);
         $questions[$key]['down_count'] = Question::getVoteDownCount($value['q_id']);
         $questions[$key]['level'] = Question::getDifficultyLevel($value['q_id']);
         $questions[$key]['user_data'] = User::getPublicUserData($value['user_id'], ['profile_pic', 'first_name', 'last_name'])[0];
         $questions[$key]['answers'] = Question::getAnswersCount($value['q_id']);
         $questions[$key]['pic'] = User::getProfilePic($questions[$key]['user_data']['profile_pic']);
         $vote = Question::getVote($value['q_id']);
         if ($vote == 1) {
             $questions[$key]['my_data']['vote_up_class'] = 'vote-up-active';
         } else {
             if ($vote == 0) {
                 $questions[$key]['my_data']['vote_down_class'] = 'vote-down-active';
             }
         }
     }
     $this->data['questions'] = $questions;
 }
Example #3
0
 public final function addQuestion(Question $question, $level)
 {
     if ($level < 0 || $level >= $this->levels_count) {
         throw new Exception('Invalid level number');
     }
     if (!$this->are_multiple_questions && count($this->questions[$level]) != 0) {
         throw new Exception('There is already a question for this level.');
     }
     if ($question->getAnswersCount() != $this->answers_by_level[$level]) {
         throw new Exception('The question contains a wrong number of answers');
     }
     if (!$question->isGoodAnswerSet()) {
         throw new Exception("The question doesn't have any good answer.");
     }
     $this->questions[$level][] = $question;
 }
Example #4
0
File: data.php Project: ncube/edu
 public function _index()
 {
     new Protect();
     // Add Token Check
     $notif = Notif::getUnread();
     usort($notif, function ($b, $a) {
         return $a['time'] - $b['time'];
     });
     foreach ($notif as $key => $value) {
         $notif[$key]['profile_pic'] = User::getProfilePic($value['profile_pic']);
         $notif[$key]['time'] = date("d M h:i A", $value['time']);
         $notif[$key]['first_name'] = ucwords($value['first_name']);
         $notif[$key]['last_name'] = ucwords($value['last_name']);
         switch ($value['type']) {
             case 'F':
                 $msg = 'is following you';
                 $link = '/profile/' . $value['username'];
                 break;
             case 'RC':
                 $msg = 'wants to add you as Classmate';
                 $link = '/requests/';
                 break;
             case 'RT':
                 $msg = 'wants to add you as Teacher';
                 $link = '/requests/';
                 break;
             case 'RS':
                 $msg = 'wants to add you as Student';
                 $link = '/requests/';
                 break;
             case 'RF':
                 $msg = 'wants to add you as Friend';
                 $link = '/requests/';
                 break;
             case 'RP':
                 $msg = 'wants to add you as Parent or Guardian';
                 $link = '/requests/';
                 break;
             default:
                 $msg = '';
                 $link = '#';
                 break;
         }
         $notif[$key]['msg'] = $msg;
         $notif[$key]['link'] = $link;
     }
     $data['notif'] = $notif;
     $data['notif_count'] = Notif::getUnreadCount();
     // Messages
     $notifMsg = Notif::getUnreadMsg();
     foreach ($notifMsg as $key => $value) {
         $notifMsg[$key]['profile_pic'] = User::getProfilePic($value['profile_pic']);
         $notifMsg[$key]['first_name'] = ucwords($value['first_name']);
         $notifMsg[$key]['last_name'] = ucwords($value['last_name']);
         $notifMsg[$key]['time'] = date("d M h:i A", $value['time']);
     }
     usort($notifMsg, function ($b, $a) {
         return $a['time'] - $b['time'];
     });
     $data['notif_msg'] = $notifMsg;
     $data['notif_msg_count'] = Notif::getUnreadMsgCount();
     // User Data
     $data['user'] = User::getUserData(['first_name', 'last_name', 'profile_pic'])[0];
     $data['user']['profile_pic'] = User::getProfilePic($data['user']['profile_pic']);
     // Questions
     $questions = Question::getPublicQuestions();
     foreach ($questions as $key => $value) {
         $questions[$key]['up_count'] = Question::getVoteUpCount($value['q_id']);
         $questions[$key]['down_count'] = Question::getVoteDownCount($value['q_id']);
         $questions[$key]['level'] = Question::getDifficultyLevel($value['q_id']);
         $questions[$key]['user_data'] = User::getPublicUserData($value['user_id'], ['profile_pic', 'first_name', 'last_name'])[0];
         $questions[$key]['answers'] = Question::getAnswersCount($value['q_id']);
         $questions[$key]['pic'] = User::getProfilePic($questions[$key]['user_data']['profile_pic']);
         $vote = Question::getVote($value['q_id']);
         if ($vote == 1) {
             $questions[$key]['my_data']['vote_up_class'] = 'vote-up-active';
         } else {
             if ($vote == 0) {
                 $questions[$key]['my_data']['vote_down_class'] = 'vote-down-active';
             }
         }
     }
     $data['questions'] = $questions;
     return $data;
 }