private function mapearVoto(Voto $voto, array $props) { if (array_key_exists('idVoto', $props)) { $voto->setIdVoto($props['idVoto']); } if (array_key_exists('candidato', $props)) { $voto->setPrimerP($props['candidato']); } }
/** * Displays a particular model. * @param integer $id the ID of the model to be displayed */ public function actionView($id) { /* @var $professor Professor */ $professor = Professor::model()->findByPk($id); // Gerando lista de depoimentos $c = new CDbCriteria(); $c->compare('aprovado', 1); $c->compare('id_professor', $professor->id_professor); $c->order = "up DESC, down ASC, id_depoimento DESC"; $depoimentos = Depoimento::model()->findAll($c); // Buscando nota do professor $mediaVotos = floor(Voto::model()->model()->findBySql("SELECT AVG(voto) as voto FROM voto WHERE id_professor = '{$professor->id_professor}'")->attributes['voto'] * 100) / 100; $qtdVotos = Voto::model()->countByAttributes(array('id_professor' => $professor->id_professor)); // Buscando as disciplinas $ensina = ProfessorDisciplina::model()->findAllByAttributes(array('id_professor' => $professor->id_professor)); $this->render('view', array('professor' => $professor, 'depoimentos' => $depoimentos, 'ensina' => $ensina, 'media' => $mediaVotos, 'qtdVotos' => $qtdVotos)); }
<?php $i = 0; if (count($professores) == 0) { echo "<div class='alert'><b><h4>Nenhum professor encontrado.</h4></b></div>"; } foreach ($professores as $key => $professor) { ?> <?php if ($i == 0) { ?> <div class="span12"> <?php } ?> <?php $depoimentosMaisRelevante = Depoimento::model()->findByAttributes(array('id_professor' => $professor->id_professor), array('order' => 'up DESC')); $mediaVotos = floor(Voto::model()->model()->findBySql("SELECT AVG(voto) as voto FROM voto WHERE id_professor = '{$professor->id_professor}'")->attributes['voto'] * 100) / 100; $this->renderPartial('pesquisa_view', array('professor' => $professor, 'depoimento' => $depoimentosMaisRelevante, 'media' => $mediaVotos)); ?> <?php if ($i == 1) { $i = -1; ?> </div> <?php } ?> <?php $i++; }
public function votar() { $currentuser = $_SESSION["currentuser"]; $errors = array(); $votoPincho1 = new Voto(); $votoPincho2 = new Voto(); $votoPincho3 = new Voto(); if (isset($_POST["codigoP1"])) { /*Guarda los datos introducidos en el formulario en el objeto, más el email del usuario actual que es el que realiza la votacion*/ $votoPincho1->setUsuarioEmailU($currentuser->getEmailU()); $votoPincho1->setCodigoPinchoV($_POST["codigoP1"]); $votoPincho1->setValoracionV('1'); $votoPincho2->setUsuarioEmailU($currentuser->getEmailU()); $votoPincho2->setCodigoPinchoV($_POST["codigoP2"]); $votoPincho2->setValoracionV('0'); $votoPincho3->setUsuarioEmailU($currentuser->getEmailU()); $votoPincho3->setCodigoPinchoV($_POST["codigoP3"]); $votoPincho3->setValoracionV('0'); /*Comprueba si los codigos introducidos son correctos y los introduce en el objeto*/ if (!$votoPincho1->isCorrectCode()) { $errors["codigoP1"] = "El código introducido no pertenece a ningun pincho"; } if (!$votoPincho2->isCorrectCode()) { $errors["codigoP2"] = "El código introducido no pertenece a ningun pincho"; } if (!$votoPincho3->isCorrectCode()) { $errors["codigoP3"] = "El código introducido no pertenece a ningun pincho"; } /*Comprueba si los codigos introducidos corresponden a pinchos diferentes*/ if ($votoPincho1->isPinchoEquals($votoPincho2)) { $errors["codigoP2"] = "Los codigos 1 y 2 no pueden ser sobre el mismo pincho"; } if ($votoPincho2->isPinchoEquals($votoPincho3)) { $errors["codigoP3"] = "Los codigos 3 y 2 no pueden ser sobre el mismo pincho"; } if ($votoPincho3->isPinchoEquals($votoPincho1)) { $errors["codigoP3"] = "Los codigos 1 y 3 no pueden ser sobre el mismo pincho"; } /*Comprueba si los codigos introducidos corresponden a pinchos diferentes*/ if ($votoPincho1->isPinchoVotado($currentuser->getEmailU())) { $errors["codigoP1"] = "Este codigo pertenece a un pincho que ya has votado"; } if ($votoPincho2->isPinchoVotado($currentuser->getEmailU())) { $errors["codigoP2"] = "Este codigo pertenece a un pincho que ya has votado"; } if ($votoPincho3->isPinchoVotado($currentuser->getEmailU())) { $errors["codigoP3"] = "Este codigo pertenece a un pincho que ya has votado"; } try { // comprueba si el código del pincho introducido ya forma parte de un voto anterior if (!$votoPincho1->votoExist() and !$votoPincho2->votoExist() and !$votoPincho3->votoExist()) { //continua solo si no se ha producido ningun error if (!sizeof($errors) > 0) { /*Si no es asi, guarda las votaciones en la base de datos*/ $votoPincho1->save(); $votoPincho2->save(); $votoPincho3->save(); $votoPincho1->updateNumVotos(); //mensaje de confirmación y redirige al metodo verPerfil del controlador popularCotroller echo "<script> alert('Voto registrado correctamente'); </script>"; echo "<script>window.location.replace('index.php?controller=popular&action=verPerfil');</script>"; } else { $this->view->setVariable("errors", $errors); } /*Si ya existe en la base de datos muestra un mensaje de error*/ } else { if ($votoPincho1->votoExist()) { $errors["codigoP1"] = "Este código no es válido"; } if ($votoPincho2->votoExist()) { $errors["codigoP2"] = "Este código no es válido"; } if ($votoPincho3->votoExist()) { $errors["codigoP3"] = "Este código no es válido"; } $this->view->setVariable("errors", $errors); } } catch (ValidationException $ex) { $errors = $ex->getErrors(); } } /*Permite visualizar: view/vistas/votarJPopu.php */ $this->view->render("vistas", "votarJPopu"); }
public function votar() { $currentuser = $_SESSION["currentuser"]; $errors = array(); $votoPincho = new Voto(); if (isset($_POST["codigoP"])) { //Comprueba que la valoración introducida es correcta $votoPincho->checkIsValidForVoto(); /*Guarda los datos introducidos en el formulario en el objeto, más el email del usuario actual que es el que realiza la votacion*/ $votoPincho->setUsuarioEmailU($currentuser->getEmailU()); $votoPincho->setCodigoPinchoV($_POST["codigoP"]); $votoPincho->setValoracionV($_POST["valoracionP"]); /*Comprueba si el codigo introducido es correcto y lo introduce en el objeto*/ if (!$votoPincho->isCorrectCode()) { $errors["codigoP"] = "El código introducido no pertenece a ningun pincho"; } if ($votoPincho->isPinchoVotado($currentuser->getEmailU())) { $errors["codigoP"] = "Este codigo pertenece a un pincho que ya has votado"; } try { // comprueba si el código del pincho introducido ya forma parte de un voto anterior if (!$votoPincho->votoExist()) { //continua solo si no se ha producido ningun error $concu = $this->concurso->ver_datos(); /*En el caso de que ya sea la fecha en la que ya se deben saber los finalistas, apartir de ese momento el jurado profesional solamenre podra votar a los pinchos que sean finalistas (los que esten en la tabla premiados con el valor del atributo "ronda=1")*/ if ($concu->getFechaFinalistasC() <= date("Y-m-d")) { if (!$votoPincho->esPinchoFinalista()) { $errors["codigoP"] = "Este pincho no pertenece a la lista de finalistas"; } } if (!sizeof($errors) > 0) { $votoPincho->updateNumVotosProf(); /*Si no es asi, guarda las votaciones en la base de datos*/ $votoPincho->save(); //mensaje de confirmación y redirige al metodo verPerfil del controlador profesionalCotroller echo "<script> alert('Voto registrado correctamente'); </script>"; echo "<script>window.location.replace('index.php?controller=profesional&action=verPerfil');</script>"; } else { $this->view->setVariable("errors", $errors); } /*Si ya existe en la base de datos muestra un mensaje de error*/ } else { $errors["codigoP"] = "Este código ya esta registrado"; $this->view->setVariable("errors", $errors); } } catch (ValidationException $ex) { $errors = $ex->getErrors(); } } /*Permite visualizar: view/vistas/votarJPopu.php */ $this->view->render("vistas", "votarJProf"); }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return Voto the loaded model * @throws CHttpException */ public function loadModel($id) { $model = Voto::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
public function guardarVoto() { try { $candidato = isset($_POST['candidato']) ? $_POST['candidato'] : NULL; $voto = new Voto(); $voto->creaVoto($candidato); echo json_encode(1); } catch (Exception $exc) { echo $exc->getTraceAsString(); } }