Esempio n. 1
0
				$perg = $sessionFacade->recuperarProvaPergunta($prova_pergunta); 
				if ( is_object($perg)){
					$perg->setPeso($peso);
					$prov->addPergunta($perg);
					$qtde_pergunta_prova++;
				}
			}elseif (strlen($pergunta)>0){
				$perg = NULL;
				$perg = $sessionFacade->recuperarPergunta($pergunta); 
				if ( is_object($perg)){
					$perg_aux = new ProvaPergunta(); 
					$perg_aux->setTopico($perg->getTopico());
					$perg_aux->setTipoPergunta($perg->getTipoPergunta());
					$perg_aux->setTitulo($perg->getTitulo());
					$perg_aux->setDificuldade($perg->getDificuldade());
					$perg_aux->setFonte($perg->getFonte());
					$perg_aux->setPeso($peso);
					$perg_aux->setPerguntaOrigem($perg->getId());
					for ($j=0;$j<$perg->getQtdeResposta();$j++){
						$perg->getResposta($j)->setId(NULL);
						if (is_object($perg->getResposta($j)->getRespostaFilho())) {
							$perg->getResposta($j)->getRespostaFilho()->setId(NULL);
						}
						$perg_aux->addResposta($perg->getResposta($j));

						/*

											$resposta_filho = new Resposta();
											$resposta_filho->setId($resposta);
											#$resposta_filho->setPergunta($perg);
											$resposta_filho->setRespostaTexto($resposta_texto_filho);
Esempio n. 2
0
	public function selecionaPerguntas(Prova $prova){

		$banco			= $this->getBancoDados(); 
		$sessionFacade	= new SessionFacade($banco); 

/*		$ppt = $prova->getNumeroPerguntas() / $prova->getQtdeTopico();
		$ppt = number_format($ppt,0);
		if  ($ppt < 1 ){
			$ppt = 1;
		}
		$topicos = array();
		$lista_topicos = array();
		for ($i=0; $i<$prova->getQtdeTopico();$i++){
			array_push($lista_topicos,$prova->getTopico($i)->getId());
		}
		$topicos = $sessionFacade->recuperarPerguntaTopicoOrdenadoDAO($lista_topicos);

		for ($i=0; $i<count($topicos);$i++){
			echo "<br>Tópico: ".$topicos[$i][0]->getDescricao()." / Qtde Perguntas: ".$topicos[$i][1];
			$perguntas = $sessionFacade->recuperarPerguntaTopicoDAO($prova->getTopico($i), $prova->getDificuldade());
			for ($j=0; $j<count($perguntas);$j++){
				$prova->addPergunta($perguntas[$j]);
				echo "<br>Pergunta: ".$perguntas[$j]->getTitulo();
			}
		}
*/

		$qtde_por_vez			= 1;
		$sem_pergunta			= 1;
		$perguntas_inseridas	= array();
		$x_qtde_perguntas		= $prova->getNumeroPerguntas();
		$qtde_perguntas			= $prova->getNumeroPerguntas();

		while ($qtde_perguntas > 0 AND $sem_pergunta > 0){
			$sem_pergunta = 0;
			for ($i=0; $i<$prova->getQtdeTopico();$i++){
				#echo "<br>Tópico: ".$prova->getTopico($i)->getDescricao();
				$perguntas = $sessionFacade->recuperarPerguntaTopicoDAO($prova->getTopico($i), $prova->getDificuldade(), $qtde_por_vez, $perguntas_inseridas);

				for ($j=0; $j<count($perguntas); $j++ ) {
					$perg = $perguntas[$j];

					if ($qtde_perguntas>0){
						$perg_aux = new ProvaPergunta(); 
						$perg_aux->setTopico($perg->getTopico());
						$perg_aux->setTipoPergunta($perg->getTipoPergunta());
						$perg_aux->setTitulo($perg->getTitulo());
						$perg_aux->setDificuldade($perg->getDificuldade());
						$perg_aux->setFonte($perg->getFonte());
						$perg_aux->setPeso( round(10 / $x_qtde_perguntas, 2));
						$perg_aux->setPerguntaOrigem($perg->getId());

	#echo "Qtde: ".$perg->getQtdeResposta();
						for ($w=0;$w<$perg->getQtdeResposta();$w++){
							$perg->getResposta($w)->setId(NULL);
							if (is_object($perg->getResposta($w)->getRespostaFilho())) {
								$perg->getResposta($w)->getRespostaFilho()->setId(NULL);
							}
							$perg_aux->addResposta($perg->getResposta($w));
						}

						$prova->addPergunta($perg_aux);
						array_push($perguntas_inseridas,$perguntas[$j]->getId());
						$qtde_perguntas--;
						$sem_pergunta++;
					}
					#echo "<br>Pergunta: ".$perguntas[0]->getTitulo();
					#echo "<hr>";
				}
			}
		}
	}
	public function recuperarProvaPerguntaRespondida(Prova $prova, Aluno $aluno){

		$query ="SELECT tbl_prova_pergunta.prova_pergunta     AS prova_pergunta,
						tbl_prova_pergunta.topico             AS topico,
						tbl_prova_pergunta.tipo_pergunta      AS tipo_pergunta,
						tbl_prova_pergunta.titulo             AS titulo,
						tbl_prova_pergunta.dificuldade        AS dificuldade,
						tbl_prova_pergunta.fonte              AS fonte,
						tbl_prova_pergunta.peso               AS peso,
						tbl_prova_pergunta.pergunta_origem    AS pergunta_origem
				FROM tbl_prova_pergunta
				WHERE tbl_prova_pergunta.prova_pergunta = $id_pergunta ";

		$banco = $this->getBancoDados(); 
		$pergunta = NULL; 
		$retorno = $banco->executaSQL($query); 
		if($retorno != NULL) {

			if ($banco->numRows($retorno) == 0){
				throw new Exception("Nenhuma pergunta encontrado.",0);
			}

			while($linha = $banco->fetchArray($retorno)) {

				$sessionFacade		= new SessionFacade($banco); 
				$obj_topico			= $sessionFacade->recuperarTopico($linha["topico"]);
				$obj_tipo_pergunta	= $sessionFacade->recuperarTipoPergunta($linha["tipo_pergunta"]);

				$pergunta = new ProvaPergunta(); 
				$pergunta->setId($linha['prova_pergunta']);
				$pergunta->setTopico($obj_topico);
				$pergunta->setTipoPergunta($obj_tipo_pergunta);
				$pergunta->setTitulo($linha["titulo"]);
				$pergunta->setDificuldade($linha["dificuldade"]);
				$pergunta->setFonte($linha["fonte"]);
				$pergunta->setPeso($linha["peso"]);
				$pergunta->setPerguntaOrigem($linha["pergunta_origem"]);

				$query ="SELECT tbl_prova_resposta.prova_resposta      AS prova_resposta,
								tbl_prova_resposta.prova_pergunta      AS prova_pergunta,
								tbl_prova_resposta.resposta_texto      AS resposta_texto,
								tbl_prova_resposta.resposta_correta    AS resposta_correta,
								tbl_prova_resposta.resposta_filho      AS resposta_filho
						FROM tbl_prova_resposta
						JOIN tbl_prova_pergunta      USING(prova_pergunta)
						WHERE tbl_prova_pergunta.prova_pergunta = $id_pergunta";

				if ($obj_tipo_pergunta->getId()=="4" OR $obj_tipo_pergunta->getId()=="5"){
					$query .= " AND tbl_resposta.resposta_filho IS NOT NULL ";
				}

				$resposta_item = NULL; 

				$retorno_item = $banco->executaSQL($query); 
				if($retorno_item != NULL) {
					while($linha_item = $banco->fetchArray($retorno_item)) { 
						$resposta_item = $sessionFacade->recuperarProvaResposta($linha_item["prova_resposta"]); 
						$pergunta->addResposta($resposta_item);
					}
				}
			}
			return $pergunta; 
		} else {
			throw new Exception("Erro ao recuperar ProvaPergunta ($query)"); 
		}
	}