예제 #1
0
 public function payAction()
 {
     $classroom = new Tri_Db_Table('classroom');
     $session = new Zend_Session_Namespace('data');
     $select = $classroom->select(true)->setIntegrityCheck(false)->join('course', 'course.id = classroom.course_id', 'course.name as cname')->where('classroom.id = ?', $session->classroom_id)->order('status');
     $this->view->data = $classroom->fetchRow($select);
 }
예제 #2
0
 private function _verifyTime($in)
 {
     $session = new Zend_Session_Namespace('data');
     $table = new Tri_Db_Table('restriction_time');
     $select = $table->select()->where('classroom_id = ?', $session->classroom_id)->where('content_id IN(?)', $in);
     $result = $table->fetchAll($select);
     if (count($result)) {
         foreach ($result as $rs) {
             $started = (double) preg_replace('/[^0-9]/', '', $rs->begin);
             $finished = (double) preg_replace('/[^0-9]/', '', $rs->end);
             $today = (double) date('Ymd');
             if ($started > $today) {
                 self::$restriction['has'] = true;
                 self::$restriction['content'] = "restricted content, access after";
                 self::$restriction['value'] = $rs->begin;
                 return false;
             }
             if ($finished < $today) {
                 self::$restriction['has'] = true;
                 self::$restriction['content'] = "content expired since the";
                 self::$restriction['value'] = $rs->end;
                 return false;
             }
         }
     }
 }
예제 #3
0
 public function indexAction()
 {
     $id = Zend_Filter::filterStatic($this->_getParam('id'), 'int');
     $userId = Zend_Filter::filterStatic($this->_getParam('userId'), 'int');
     $page = Zend_Filter::filterStatic($this->_getParam('page'), 'int');
     $session = new Zend_Session_Namespace('data');
     $table = new Tri_Db_Table('message');
     $form = new Chat_Form_Message();
     $classroomUser = new Tri_Db_Table('classroom_user');
     $select = $table->select(true)->setIntegrityCheck(false)->join('user', 'message.sender = user.id', array('name', 'image'))->order('id DESC');
     if (!$userId) {
         $userId = Zend_Auth::getInstance()->getIdentity()->id;
     }
     $form->populate(array('receiver' => $userId));
     $select->where('receiver = ?', $userId);
     if ($id) {
         $table = new Tri_Db_Table('message');
         $row = $table->find($id)->current();
         if ($row) {
             $form->populate($row->toArray());
         }
     }
     $tableUser = new Tri_Db_Table('user');
     $user = $tableUser->find($userId)->current();
     $selectUser = $classroomUser->select(true)->setIntegrityCheck(false)->join('user', 'classroom_user.user_id = user.id')->where('classroom_user.classroom_id = ?', $session->classroom_id)->order('name');
     $this->view->users = $classroomUser->fetchAll($selectUser);
     $paginator = new Tri_Paginator($select, $page);
     $this->view->data = $paginator->getResult();
     $this->view->form = $form;
     $this->view->userId = $userId;
     $this->view->userName = $user->name;
     $this->view->userImage = $user->image;
 }
예제 #4
0
 public function validateAction()
 {
     $uniqueId = $this->_getParam('uniqueId');
     if ($uniqueId) {
         $certificate = new Tri_Db_Table('certificate');
         $select = $certificate->select(true)->setIntegrityCheck(false)->join('classroom', 'classroom.id = certificate.classroom_id', array())->join('course', 'course.id = classroom.course_id')->join('user', 'user.id = certificate.user_id', array('user.name as uname'))->where('unique_id = ?', $uniqueId);
         $this->view->data = $certificate->fetchRow($select);
     }
 }
예제 #5
0
 public function liveAction()
 {
     $id = Zend_Filter::filterStatic($this->_getParam('id'), 'int');
     $chat = new Tri_Db_Table('chat_room');
     $table = new Tri_Db_Table('chat_room_message');
     $data = array('user_id' => Zend_Auth::getInstance()->getIdentity()->id, 'chat_room_id' => $id, 'status' => 'logged');
     $table->createRow($data)->save();
     $this->view->data = $chat->find($id)->current();
     $select = $table->select(true)->setIntegrityCheck(false)->join('user', 'user.id = user_id', array('name'))->where('chat_room_id = ?', $id)->where('chat_room_message.status = ?', 'message')->order('id');
     $this->view->stream = $table->fetchAll($select, 'id DESC');
     $select = $table->select(true)->setIntegrityCheck(false)->join('user', 'user.id = user_id', array('name', 'role'))->where('chat_room_id = ?', $id)->where('chat_room_message.status = ?', 'logged')->where('chat_room_message.created > SYSDATE() - INTERVAL 5 MINUTE')->order('name')->group('user.id');
     $this->view->users = $table->fetchAll($select);
     $this->view->id = $id;
     if ($this->_hasParam('interval')) {
         $this->view->interval = $this->_hasParam('interval');
         $this->render('stream');
     }
 }
예제 #6
0
 public function indexAction()
 {
     $id = Zend_Filter::filterStatic($this->_getParam('id'), 'int');
     $session = new Zend_Session_Namespace('data');
     $content = new Tri_Db_Table('content');
     if ($id) {
         $this->view->id = $id;
         $where = $content->select()->from('content', array('id', 'title', 'content_id'))->where('course_id = ?', $session->course_id)->where('content_id = ?', $id)->order(array('position', 'id'));
         $this->view->data = $content->fetchAll($where)->toArray();
     } else {
         $where = $content->select()->from('content', array('id', 'title', 'content_id'))->where('course_id = ?', $session->course_id)->where('content_id IS NULL')->order(array('position', 'id'));
         $this->view->data = $content->fetchAll($where)->toArray();
     }
     $this->view->save = Zend_Filter::filterStatic($this->_getParam('save'), 'int');
     if (!$this->_hasParam('layout')) {
         $this->_helper->layout->disableLayout();
     }
 }
예제 #7
0
 /**
  * Get all timeline registers by user registry classroom
  *
  * @param array $courses
  * @param int $page
  * @return Zend_Db_Rowset
  */
 public static function getByClassroom($courses, $page)
 {
     if ($courses) {
         foreach ($courses as $course) {
             $ids[] = $course['classroom_id'];
         }
     } else {
         $ids = array(0);
     }
     $table = new Tri_Db_Table('timeline');
     $select = $table->select(true)->setIntegrityCheck(false)->join('user', 'user.id = user_id', array('user.id as uid', 'user.name', 'user.image', 'user.role'))->join('classroom', 'classroom.id = classroom_id', array())->join('course', 'course.id = course_id', array('course.name as cname'))->where('classroom_id IN(?)', $ids)->order('id DESC')->limit(10, $page - 1);
     return $table->fetchAll($select);
 }
예제 #8
0
 public function indexAction()
 {
     $table = new Tri_Db_Table('content_template');
     $page = Zend_Filter::filterStatic($this->_getParam('page'), 'int');
     $query = $this->_getParam("q");
     $select = $table->select();
     if ($query) {
         $select->where('UPPER(name) LIKE UPPER(?)', "%{$query}%");
     }
     $paginator = new Tri_Paginator($select, $page);
     $this->view->data = $paginator->getResult();
     $this->view->q = $query;
 }
예제 #9
0
 public function indexAction()
 {
     $session = new Zend_Session_Namespace('data');
     $table = new Tri_Db_Table('page');
     $page = Zend_Filter::filterStatic($this->_getParam('page'), 'int');
     $select = $table->select()->order('position');
     $query = $this->_getParam("q");
     if ($query) {
         $select->where('UPPER(title) LIKE UPPER(?)', "%{$query}%");
     }
     $paginator = new Tri_Paginator($select, $page);
     $this->view->data = $paginator->getResult();
     $this->view->q = $query;
 }
예제 #10
0
 public function indexAction()
 {
     $session = new Zend_Session_Namespace('data');
     $table = new Tri_Db_Table('faq');
     $page = Zend_Filter::filterStatic($this->_getParam('page'), 'int');
     $query = Zend_Filter::filterStatic($this->_getParam("q"), 'stripTags');
     $select = $table->select();
     $select->where('classroom_id = ?', $session->classroom_id);
     if ($query) {
         $select->where('UPPER(question) LIKE UPPER(?)', "%{$query}%");
     }
     $paginator = new Tri_Paginator($select, $page);
     $this->view->data = $paginator->getResult();
     $this->view->q = $query;
 }
예제 #11
0
 public function indexAction()
 {
     $session = new Zend_Session_Namespace('data');
     $table = new Tri_Db_Table('activity');
     $page = Zend_Filter::filterStatic($this->_getParam('page'), 'int');
     $query = Zend_Filter::filterStatic($this->_getParam("q"), 'stripTags');
     $select = $table->select();
     $select->where('classroom_id = ?', $session->classroom_id)->where('status = ?', 'active')->where('begin <= ?', date('Y-m-d'))->where('end IS NULL OR end > ?', date('Y-m-d'));
     if ($query) {
         $select->where('UPPER(title) LIKE UPPER(?)', "%{$query}%");
     }
     $paginator = new Tri_Paginator($select, $page);
     $this->view->data = $paginator->getResult();
     $this->view->q = $query;
 }
예제 #12
0
 public function indexAction()
 {
     $session = new Zend_Session_Namespace('data');
     $table = new Tri_Db_Table('forum_reply');
     $forum = new Tri_Db_Table('forum');
     $page = Zend_Filter::filterStatic($this->_getParam('page', 9999), 'int');
     $id = Zend_Filter::filterStatic($this->_getParam('id'), 'int');
     $form = new Forum_Form_Reply();
     $select = $table->select(true)->setIntegrityCheck(false)->join('user', 'user.id = user_id', array('user.id as uid', 'user.name', 'user.image', 'user.role'))->where('forum_id = ?', $id)->order('id');
     $form->populate(array('forum_id' => $id));
     $paginator = new Tri_Paginator($select, $page);
     $this->view->data = $paginator->getResult();
     $this->view->parent = $forum->find($id)->current();
     $this->view->form = $form;
     $this->view->page = $page;
 }
예제 #13
0
 public function indexAction()
 {
     $classroomUser = new Tri_Db_Table('classroom_user');
     $panel = new Tri_Db_Table('panel');
     $session = new Zend_Session_Namespace('data');
     $status = $this->_getParam('status', 'registered');
     $select = $classroomUser->select(true)->setIntegrityCheck(false)->join('user', 'classroom_user.user_id = user.id', array('user.name', 'user.id', 'user.image'))->where('classroom_user.classroom_id = ?', $session->classroom_id)->where('user.role = ?', 'student')->where('classroom_user.status = ?', $status)->order('name');
     if (Zend_Auth::getInstance()->getIdentity()->role == 'student') {
         $select->where('user.id = ?', Zend_Auth::getInstance()->getIdentity()->id);
     }
     $this->view->status = $status;
     $this->view->data = $classroomUser->fetchAll($select);
     $this->view->panel = $panel->fetchAll(array('classroom_id = ?' => $session->classroom_id));
     $this->view->statusOptions = array('registered' => $this->view->translate('registered'), 'approved' => $this->view->translate('approved'), 'disapproved' => $this->view->translate('disapproved'), 'justified' => $this->view->translate('justified'), 'not-justified' => $this->view->translate('not-justified'));
     $this->view->classroomId = $session->classroom_id;
 }
예제 #14
0
 /**
  * Action index.
  *
  * @return void
  */
 public function indexAction()
 {
     $course = new Tri_Db_Table('course');
     $calendar = new Tri_Db_Table('calendar');
     $page = Zend_Filter::filterStatic($this->_getParam('page'), 'int');
     $form = new Application_Form_Login();
     $select = $course->select()->where('status = ?', 'active')->order(array('name', 'category'));
     $where = array('classroom_id IS NULL', 'end IS NULL OR end > ?' => date('Y-m-d'));
     $this->view->calendar = $calendar->fetchAll($where, 'begin', 10);
     $this->view->form = $form;
     $this->view->user = Zend_Auth::getInstance()->getIdentity();
     $paginator = new Tri_Paginator($select, $page);
     $this->view->courses = $paginator->getResult();
     $this->view->newUserToGuest = Tri_Config::get('tri_new_user_to_guest');
     $this->_helper->layout->setLayout('layout');
 }
예제 #15
0
 public function indexAction()
 {
     $session = new Zend_Session_Namespace('data');
     $table = new Tri_Db_Table('glossary');
     $page = Zend_Filter::filterStatic($this->_getParam('page'), 'int');
     $select = $table->select();
     $select->where('classroom_id = ?', $session->classroom_id);
     $query = base64_decode($this->_getParam("q"));
     if ($this->_hasParam("text")) {
         $query = $this->_getParam("text");
     }
     if ($query) {
         $where = strlen($query) == 1 ? "{$query}%" : "%{$query}%";
         $select->where('UPPER(word) LIKE UPPER(?)', $where);
     }
     $paginator = new Tri_Paginator($select, $page);
     $this->view->data = $paginator->getResult();
     $this->view->q = $query;
 }
예제 #16
0
 /**
  * Fetch all content and organize
  *
  * @param integer $disciplineId
  * @param integer $contentId
  * @param array $data
  * @param integer $level
  * @return array
  */
 public static function fetchAllOrganize($courseId, $contentId = null, $data = null, $level = 0)
 {
     $table = new Tri_Db_Table('content');
     $select = $table->select()->from('content', array("id", "title"))->where("course_id = ?", $courseId)->order(array("position", "id"));
     if ($contentId) {
         $select->where('content_id = ?', $contentId);
     } else {
         $select->where('content_id IS NULL');
     }
     $rowset = $table->fetchAll($select)->toArray();
     if (count($rowset)) {
         foreach ($rowset as $row) {
             $row['level'] = $level;
             $data[] = $row;
             $data = self::fetchAllOrganize($courseId, $row['id'], $data, $level + 1);
         }
     }
     return $data;
 }
예제 #17
0
 public function indexAction()
 {
     $id = Zend_Filter::filterStatic($this->_getParam('id'), 'int');
     $page = Zend_Filter::filterStatic($this->_getParam('page'), 'int');
     $session = new Zend_Session_Namespace('data');
     $table = new Tri_Db_Table('notepad');
     $form = new Notepad_Form_Notepad();
     $select = $table->select();
     $select->where('classroom_id = ?', $session->classroom_id);
     if ($id) {
         $table = new Tri_Db_Table('notepad');
         $row = $table->find($id)->current();
         if ($row) {
             $form->populate($row->toArray());
         }
     }
     $paginator = new Tri_Paginator($select, $page);
     $this->view->data = $paginator->getResult();
     $this->view->form = $form;
 }
예제 #18
0
 public function indexAction()
 {
     $table = new Tri_Db_Table('activity_text');
     $activity = new Tri_Db_Table('activity');
     $id = Zend_Filter::filterStatic($this->_getParam('id'), 'int');
     $textId = Zend_Filter::filterStatic($this->_getParam('textId'), 'int');
     $authId = Zend_Auth::getInstance()->getIdentity()->id;
     $userId = Zend_Filter::filterStatic($this->_getParam('userId', $authId), 'int');
     $form = new Activity_Form_Text();
     if (!$id) {
         $this->_redirect('activity');
     }
     $select = $table->select(true)->setIntegrityCheck(false)->join('user', 'user.id = sender', array('user.id as uid', 'user.name', 'user.image', 'user.role'))->where('activity_id = ?', $id)->order('id DESC')->limit(6);
     if (Zend_Auth::getInstance()->getIdentity()->role == 'student') {
         $select->where('user_id = ?', $authId);
     } else {
         $select->where('(user_id = ?', $authId)->orWhere('user_id = ?)', $userId);
     }
     $data = $table->fetchAll($select);
     $populate = array('activity_id' => $id, 'user_id' => $userId);
     $current = null;
     if (count($data) && !$textId) {
         $current = current(current($data));
         $populate['description'] = $current['description'];
     } elseif ($textId) {
         $current = $table->find($textId)->current();
         $populate['description'] = $current->description;
     }
     if (Zend_Auth::getInstance()->getIdentity()->role == 'student' && !$this->_hasParam('nav')) {
         if ($current && ($current['status'] == 'final' || $current['status'] == 'close')) {
             $this->_redirect('activity/text/view/status/' . $current['status']);
         }
     }
     $form->populate($populate);
     $this->view->data = $data;
     $this->view->parent = $activity->find($id)->current();
     $this->view->form = $form;
     $this->view->id = $id;
     $this->view->userId = $userId;
 }
예제 #19
0
 public function listUserAction()
 {
     $id = Zend_filter::filterStatic($this->_getParam('id'), 'int');
     $classroom = new Tri_Db_Table('classroom');
     $classroomUser = new Tri_Db_Table('classroom_user');
     $select = $classroomUser->select(true)->setIntegrityCheck(false)->join('user', 'classroom_user.user_id = user.id')->where('classroom_user.classroom_id = ?', $id)->order('name');
     $this->view->data = $classroomUser->fetchAll($select);
     $select = $classroom->select(true)->setIntegrityCheck(false)->join('course', 'course.id = classroom.course_id', 'course.name as cname')->where('classroom.id = ?', $id)->order('status');
     $this->view->classroom = $classroom->fetchRow($select);
     $this->view->id = $id;
 }
예제 #20
0
 /**
  * Get all class it's available
  *
  * @param int $id
  * @return object select
  */
 public static function getAvailable($id)
 {
     $classroom = new Tri_Db_Table('classroom');
     $selectionProcessClassroom = new Tri_Db_Table('selection_process_classroom');
     $selectIn = $selectionProcessClassroom->select()->setIntegrityCheck(false)->from(array('p' => 'selection_process_classroom'), array('p.classroom_id'))->where('selection_process_id = ?', $id);
     $select = $classroom->select(true)->where('status = ?', 'active')->where('id not in (?)', $selectIn);
     return $select;
 }
예제 #21
0
 /**
  * Get all available and filtered question by class
  *
  * @param integer $classroomId
  * @return Zend_Db_Table_Select
  */
 public function available($classroomId)
 {
     $table = new Tri_Db_Table('exercise_question');
     $select = $table->select(true)->setIntegrityCheck(false)->joinLeft('exercise', 'exercise.id = exercise_question.exercise_id', array('name'))->where('(exercise.id = exercise_question.exercise_id AND classroom_id = ?)
                               OR exercise_question.exercise_id IS NULL', $classroomId)->where('exercise_question.id NOT IN(SELECT DISTINCT eq.parent_id FROM exercise_question eq WHERE parent_id IS NOT NULL)')->order(array('exercise_question.status', 'exercise_question.id DESC'));
     return $select;
 }
예제 #22
0
 /**
  * Get all courses it's available to selection process
  *
  * @param int $selection_process_id
  * @return array
  */
 public static function getCourses($selection_process_id)
 {
     $selectionProcessClassroom = new Tri_Db_Table('selection_process_classroom');
     $select = $selectionProcessClassroom->select()->setIntegrityCheck(false)->from(array('p' => 'selection_process_classroom'), array())->join(array('c' => 'classroom'), "p.classroom_id = c.id", array())->join(array('co' => 'course'), 'c.course_id = co.id', array('id', 'name'))->where('p.selection_process_id = ?', $selection_process_id);
     return $selectionProcessClassroom->fetchAll($select);
 }