示例#1
0
 public function DoPost()
 {
     /** @var \Doctrine\ORM\EntityManager $em */
     $em = CommonController::$EntityManager;
     $request = $this->request;
     $audioId = $request->getPost("audioId");
     $listeningState = $request->getPost("state");
     $userId = $this->userId;
     $audio = $em->getRepository('audio')->find($audioId);
     if ($audio !== null) {
         $user = $em->getRepository('User')->find($userId);
         if ($user !== null) {
             $listening = new \Listening();
             $listening->setDatetime(new \DateTime("now"));
             $listening->setIdAudio($audio);
             $listening->setIdUser($user);
             $listening->setState($listeningState);
             $em->persist($listening);
             $metadata = $em->getClassMetaData(get_class($listening));
             $metadata->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_NONE);
             $em->flush();
             return "true";
         }
     }
     return "false";
 }
 public function actionGetAll()
 {
     $session_id = Yii::app()->request->getPost("session_id", NULL);
     $session = Session::model()->find('session_id=:session_id', array(':session_id' => $session_id));
     $session_listenings = SessionListening::model()->findAll('session_id=:session_id', array(':session_id' => $session_id));
     $all = array();
     $all["session_id"] = $session->session_id;
     $all["session_name"] = $session->session_name;
     $all["session_order"] = $session->session_order;
     $all["mod_id"] = $session->mod_id;
     $all["listenings"] = array();
     foreach ($session_listenings as $key => $session_listening) {
         $temp_listening_id = $session_listening->listening_id;
         $listening = Listening::model()->find('listening_id=:listening_id', array(':listening_id' => $temp_listening_id));
         $all["listenings"][$key] = array('listening_id' => $listening->listening_id, 'listening_name' => $listening->listening_name, 'listening_repeat_number' => $listening->listening_repeat_number, 'listening_learning_guide_availability' => $listening->listening_learning_guide_availability);
         $criteria = new CDbCriteria();
         $criteria->addCondition("listening_id=:listening_id");
         $criteria->order = 'RAND()';
         $criteria->params = array(':listening_id' => $listening->listening_id);
         $questions = Question::model()->findAll($criteria);
         //$questions=Question::model()->findAll('listening_id=:listening_id',array('listening_id'=>$listening->listening_id));
         foreach ($questions as $key2 => $question) {
             $all["listenings"][$key]['questions'][$key2] = array('question_id' => $question->question_id, 'question_body' => $question->question_body, 'question_correct_answer_id' => $question->question_correct_answer_id);
             $criteria = new CDbCriteria();
             $criteria->addCondition("question_id=:question_id");
             $criteria->order = 'RAND()';
             $criteria->params = array(':question_id' => $question->question_id);
             $answers = Answer::model()->findAll($criteria);
             //$answers=Answer::model()->findAll('question_id=:question_id',array(':question_id'=>$question->question_id));
             foreach ($answers as $key3 => $answer) {
                 $all["listenings"][$key]['questions'][$key2]['answers'][$key3] = array('answer_id' => $answer->answer_id, 'answer_body' => $answer->answer_body);
             }
         }
     }
     $this->renderJSON($all);
 }
示例#3
0
 public function DoPost()
 {
     $uri = CommonController::GetCurrentUri();
     $explUri = explode("/", $uri);
     $id = $explUri[count($explUri) - 2];
     $repo = CommonController::$EntityManager->getRepository('audio');
     $audio = $repo->find($id);
     if ($audio !== null) {
         $UserRepo = CommonController::$EntityManager->getRepository('User');
         $user = $UserRepo->find('00000000001');
         if ($user !== null) {
             $Listening = new \Listening();
             $Listening->setDatetime(new \DateTime("now"));
             $Listening->setIdAudio($audio);
             $Listening->setIdUser($user);
             $Listening->setState($explUri[count($explUri) - 1]);
             CommonController::$EntityManager->persist($Listening);
             CommonController::$EntityManager->flush();
             return true;
         }
     }
     return false;
 }