Files
simulador-mob-out-ari-poli/simuladormobout.php

741 lines
26 KiB
PHP

<?php
/*
Plugin Name: Simulador Mob-Out ARI-POLI
Plugin URI: https://code.beco.cc/beco/simulador-mob-out-ari-poli
Description: Calculadora de pré-seleção para mobilidade OUT da ARI/POLI-UPE, exibida via shortcode [simulador_mob].
Version: 1.3.20260629
Author: Ruben Carlo Benante
Author URI: https://beco.cc
License: GPLv3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Text Domain: simulador-mob-out-ari-poli
*/
/* ------------------------------------------------------------------------ */
// Simulador Mob Out - Copyright (C) 2022-2024 - Versão 1.0.20220701
// Autores:
// * Prof. Dr. Ruben Carlo Benante <rcb@beco.cc>
// * Pedro Henrique Azevedo Vanderlei de Mendonça <phavm@poli.br>
// Data: 2022-07-01
/* ------------------------------------------------------------------------ */
namespace Beco\SimuladorMobOut;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/* ------------------------------------------------------------------------ */
//Função max = 10
function maximo_dez($nota){
if ($nota > 10) {
$nota = 10;
return $nota;
} else {
return $nota;
}
}
/* ------------------------------------------------------------------------ */
//Função nota de reprovações
function nota_reprovacoes($nrec, $nnrec){
$ro = (40-(2*$nnrec)-$nrec)/4;
if ($ro < 0){
$ro = 0;
return $ro;
}
return $ro;
}
/* ------------------------------------------------------------------------ */
//Função nota do histórico
function nota_historico($po, $ro, $mo){
if ($mo == 0){
$o = 0;
return $o;
} else{
$o = (($po*10)*1+$ro*3+$mo*5)/(1+3+5);
return $o;
}
}
/* ------------------------------------------------------------------------ */
//Função nota de atividades desenvolvidas
function nota_atividades($ps, $es, $ms){
$s = ($ps+$es+$ms)*2;
$s = maximo_dez($s);
return $s;
}
/* ------------------------------------------------------------------------ */
//Função nota publicações
function nota_lattes($apy, $acy, $cy, $ly, $ry){
$y = ($apy*2*2 + $acy*2*1 + $cy*2*2 + $ly*2*3 + $ry*2*1)/(2+1+2+3+1);
$y = maximo_dez($y);
return $y;
}
/* ------------------------------------------------------------------------ */
//Função nota dos eventos
function nota_eventos($ea, $pa, $ca){
$a = ($ea+$pa+$ca)*2;
$a = maximo_dez($a);
return $a;
}
/* ------------------------------------------------------------------------ */
//Função nota geral
function nota_geral($o, $s, $y, $a){
global $entradas;
global $h;
if ($entradas['programa'] == 1) {
if ($entradas['mobilidade'] == 1) {
if ($entradas['lingua'] <= 3 && $entradas['lingua2'] <= 2) {
$h = "Declassificado por não possuir proficiência superior a A2 em italiano ou B1 em inglês.";
return $h;
} else {
$h = ($o*5 + $s*2 + $y*3 + $a*2)/ (5+2+3+2);
$h = number_format($h, 2);
return "Sua nota é: $h";
}
} elseif ($entradas['mobilidade'] == 2) {
if ($entradas['lingua'] <= 3) {
$h = "Desclassificado por não possuir proficiência superior a B1 em inglês.";
return $h;
} else {
$h = ($o*5 + $s*2 + $y*3 + $a*2)/ (5+2+3+2);
$h = number_format($h, 2);
return "Sua nota é: $h";
}
}
} else {
$h = ($o*5 + $s*2 + $y*3 + $a*2)/ (5+2+3+2);
$h = number_format($h, 2);
return "Sua nota é: $h";
}
}
/* ------------------------------------------------------------------------ */
//Função tratamento de entrada
function limpaPost($valor){
$valor = trim($valor);
$valor = stripslashes($valor);
$valor = htmlspecialchars($valor);
return $valor;
}
/* ------------------------------------------------------------------------ */
//Função para pegar a entrada
function validar_entrada(){
global $entradas;
// Lista completa dos campos numericos esperados. Inicializar todos em 0
// evita avisos de "Undefined array key" no PHP 8 quando o formulario chega
// incompleto, e o cast para float garante valores numericos (sem avisos de
// "non-numeric value") mesmo diante de um POST adulterado.
$campos = array(
'programa', 'mobilidade', 'lingua', 'lingua2', 'porcentagem',
'repro_rec', 'repro_nrec', 'media', 'ic', 'extensao', 'monitoria',
'art_periodicos', 'art_congresso', 'cap_livros', 'livros', 'resumos',
'evento_extensao', 'evento_pesquisa', 'congresso',
'estagio', 'estagio_exterior',
);
$entradas = array();
foreach ($campos as $campo) {
if (isset($_POST[$campo]) && $_POST[$campo] !== '') {
// Clampa negativos em 0: nenhum campo legitimo (notas, contagens,
// selecoes) e negativo; isto neutraliza POST adulterado, ja que o
// min="0" do HTML so vale no navegador.
$entradas[$campo] = max(0, (float) limpaPost($_POST[$campo]));
} else {
$entradas[$campo] = 0;
}
}
}
/* ------------------------------------------------------------------------ */
//Função para mudar a tela dependendo do programa de mobilidade escolhido pelo estudante
function imprime($string1, $brafitec='', $polito='') {
$fgeral = array(1, 2, 3);
if (!isset($_POST['programa']) || in_array($_POST['programa'], $fgeral)){
echo $string1;
if (!isset($_POST['programa']) || $_POST['programa'] == 1){
echo $polito;
}
}
elseif (isset($_POST['programa']) && $_POST['programa'] == 4) {
echo $brafitec;
}
}
/* ------------------------------------------------------------------------ */
//Função para calcular a nota do BRAFITEC
function nota_brafitec($mo, $est_ext, $ps, $outros){
global $entradas;
if (isset($entradas['lingua']) && $entradas['lingua'] <= 2){
$h_brafitec = "Declassificado por não possuir proficiência em francês maior ou igual a B1.";
return $h_brafitec;
}
if (isset($entradas['porcentagem']) && $entradas["porcentagem"] == 0) {
$h_brafitec = "Desclassificado por não estar entre 40% e 80% do seu curso.";
return $h_brafitec;
} elseif (isset($entradas['repro_nrec']) && $entradas["repro_nrec"] > 0) {
if ($entradas['repro_nrec'] == 1) {
$h_brafitec = "Desclassificado por ter reprovação não recuperada";
return $h_brafitec;
} else {
$h_brafitec = "Desclassificado por ter reprovações não recuperadas";
return $h_brafitec;
}
} elseif (isset($entradas['repro_rec']) && $entradas["repro_rec"] > 2) {
$h_brafitec = "Desclassificado por ter mais de 2 reprovações recuperadas";
return $h_brafitec;
} else {
$est_ext = maximo_dez($est_ext);
$ps = maximo_dez($ps);
$h_brafitec = (($mo*7) + ($est_ext*0.5) + ($ps*1.5) + ($outros*1))/10;
$h_brafitec = number_format($h_brafitec, 2);
return "Sua nota é: $h_brafitec";
}
}
/* ------------------------------------------------------------------------ */
//Função para calcular outras atividades do BRAFITEC
function outras_brafitec($es, $ms, $est, $apy, $acy, $cy, $ly, $ry, $ea, $pa, $ca){
$outros = $es + $ms + $est + $apy + $acy + $cy + $ly + $ry + $ea + $pa +$ca;
$outros = maximo_dez($outros);
return $outros;
}
function simulador_mob_shortcode() {
\wp_enqueue_script( 'mathjax' );
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
//var_dump($_POST);
if (isset($_POST["calcular"])) {
validar_entrada();
global $entradas;
if ($entradas["media"] <= 0){
// Media curricular e a base da nota (peso 5 no Padrao V2, peso 7 no
// BRAFITEC). Sem ela, evita exibir uma nota baixa enganosa.
global $h, $h_brafitec;
$h = $h_brafitec = "Preencha a média curricular para calcular a nota.";
} elseif ($entradas["programa"] != 4){
global $o, $ro, $s, $y, $a, $h, $entradas;
$ro = nota_reprovacoes($entradas["repro_rec"], $entradas["repro_nrec"]);
$o = nota_historico($entradas["porcentagem"], $ro, $entradas["media"]);
$s = nota_atividades($entradas ["ic"], $entradas["extensao"], $entradas["monitoria"]);
$y = nota_lattes($entradas["art_periodicos"], $entradas["art_congresso"], $entradas["cap_livros"], $entradas["livros"], $entradas["resumos"]);
$a = nota_eventos($entradas["evento_extensao"], $entradas["evento_pesquisa"], $entradas["congresso"]);
$h = nota_geral($o, $s, $y, $a);
$o = number_format($o, 2);
$s = number_format($s, 2);
$y = number_format($y, 2);
$a = number_format($a, 2);
} elseif ($entradas["programa"] == 4) {
global $entradas, $h_brafitec, $outros;
$outros = outras_brafitec($entradas["extensao"], $entradas["monitoria"], $entradas["estagio"], $entradas["art_periodicos"], $entradas["art_congresso"], $entradas["cap_livros"], $entradas["livros"], $entradas["resumos"], $entradas["evento_extensao"], $entradas["evento_pesquisa"], $entradas["congresso"]);
$h_brafitec = nota_brafitec($entradas["media"], $entradas["estagio_exterior"], $entradas["ic"], $outros);
}
}
}
ob_start();
?>
<div class="simulador-mob-out">
<style>
.simulador-mob-out td { padding: 5px; }
.simulador-mob-out td.labels { width: 220px; }
</style>
<div style="overflow-x: auto;">
<div style="display: flex;">
<div style="flex: 80%;">
<p>Esta página segue os pesos e critérios da pré-seleção para mobilidade OUT da ARI/POLI encontradas no Formulário de Mobilidade OUT, disponível no link <a href="https://ari.poli.br/document/form-mob-out/">https://ari.poli.br/document/form-mob-out/</a>.</p>
<p id="linkdemo"></p>
<form method="post">
<label for="programa">Escolha o programa/universidade que você deseja fazer mobilidade:</label>
<select name="programa" id="programa" onchange="this.form.submit()">
<option value="1" <?php if (isset($_POST['programa']) && $_POST['programa'] == 1){echo "selected";} ?>>POLITO</option>
<option value="2" <?php if (isset($_POST['programa']) && $_POST['programa'] == 2){echo "selected";} ?>>FEUP</option>
<option value="3" <?php if (isset($_POST['programa']) && $_POST['programa'] == 3){echo "selected";} ?>>UCoimbra</option>
<option value="4" <?php if (isset($_POST['programa']) && $_POST['programa'] == 4){echo "selected";} ?>>BRAFITEC</option>
</select>
<?php if (isset($_POST['programa']) == FALSE){echo "(Fórmula Padrão-V2 ARI/POLI)";} ?>
<?php if (isset($_POST['programa']) && $_POST['programa'] == 1){echo "(Fórmula Padrão-V2 ARI/POLI)";} ?>
<?php if (isset($_POST['programa']) && $_POST['programa'] == 2){echo "(Fórmula Padrão-V2 ARI/POLI)";} ?>
<?php if (isset($_POST['programa']) && $_POST['programa'] == 3){echo "(Fórmula Padrão-V2 ARI/POLI)";} ?>
<?php if (isset($_POST['programa']) && $_POST['programa'] == 4){echo "(Fórmula do BRAFITEC/CAPES):";} ?>
<!-- TIPO DE MOBILIDADE -->
<?php imprime('','',"<br><br>"); ?>
<?php imprime('','',"<label>Tipo de mobilidade:</label>&nbsp;"); ?>
<?php imprime('','',"<input type='radio' name='mobilidade' id='simples' value='1' required />&nbsp;"); ?>
<?php imprime('','',"<label for='simples'>Mobilidade Simples</label>&nbsp;&nbsp;"); ?>
<?php imprime('','',"<input type='radio' name='mobilidade' id='dupla' value='2' />&nbsp;"); ?>
<?php imprime('','',"<label for='dupla'>Dupla Diplomação</label><br>"); ?>
<?php imprime('','',"<em>Mobilidade dupla disponível apenas na seleção de primeiro semestre para início das atividades acadêmicas na Itália em Setembro.</em><br>"); ?>
<br><br>
<div id="div_lingua">
<span id="spanlink"></span>
</div>
</div>
<div style="flex: 20%;">
<img src="https://ari.poli.br/wp-content/uploads/2022/08/20220823-ilustracao-simulador.png" width="200px" style="float:right">
</div>
</div>
<!-- NOTA GERAL -->
<h3><b><?php global $h, $h_brafitec; imprime($h, $h_brafitec); ?></b></h3>
<table style="width:100%">
<tr>
<td colspan="3"><br><hr></td>
</tr>
<th colspan="3">
<h3>Histórico Escolar <?php imprime("(Peso 5)",'(Peso 7)'); ?> </h3>
</th>
<tr>
<td><br></td>
</tr>
<!-- MÉDIA CURRICULAR -->
<tr>
<td class="labels"><label for="media">Média curricular:</label></td>
<td><input name="media" type="number" step="0.01" min="0" id="media" /></td>
<td><?php imprime("(Peso 5)", "(Peso 7)"); ?> </td>
</tr>
<!-- REPROVAÇÕES RECUPERADAS -->
<tr>
<td><label for="repro_rec">Número de reprovações recuperadas:</label></td>
<td><input name="repro_rec" type="number" min="0" id="repro_rec" /></td>
<td><?php imprime("(Peso 3)", "(Classificatório)"); ?> </td>
</tr>
<!-- REPROVAÇÕES NÃO RECUPERADAs -->
<tr>
<td><label for="repro_nrec">Número de reprovações não recuperadas:</label></td>
<td><input name="repro_nrec" type="number" min="0" id="repro_nrec" /></td>
<td><?php imprime("(Peso 3)", "(Classificatório)"); ?> </td>
</tr>
<!-- TOTAL DE REPROVAÇÕES -->
<tr>
<td><label for="repro_total">Total de reprovações:</label></td>
<td><span id="repro_total"> </span></td>
</tr>
<!-- PORCENTAGEM DO CURSO-->
<tr>
<td><label> <?php imprime("Está entre 50% e 80% do curso?", "Está entre 40% e 80% do curso?"); ?></label></td>
<td><input type="radio" name="porcentagem" id="porcentagem1" value="1" />
<label for="porcentagem1">Sim</label>
<input type="radio" name="porcentagem" id="porcentagem2" value="0" />
<label for="porcentagem2">Não</label><br>
</td>
<td><?php imprime("", "(Classificatório)"); ?> </td>
</tr>
<tr>
<?php imprime("<td><br></td>") ?>
</tr>
<!-- FÓRMULAS DE NOTA DO HISTÓRICO -->
<tr>
<td colspan="2"><b><?php imprime("Nota do histórico O = [0,10]. Fórmula: $$\ O = &#92frac{(Po*10*1+Ro*3+Mo*5)}{(1+3+5)}$$"); ?></b></td>
<td colspan="2"><b><?php imprime("Fórmula da nota de reprovações Ro = [0,10]. Fórmula: $$\ Ro = &#92frac{40-2*N_n-N_r}{4}$$"); ?></b></td>
</tr>
<tr>
<td colspan="2">
<?php imprime("Po = Adicional de porcentagem (1 se entre 50% e 80%, 0 se não. Peso 1)<br>"); ?>
<?php imprime("Ro = Nota de reprovações (Peso 3)<br>"); ?>
<?php imprime("Mo = Média curricular (Peso 5)<br> "); ?>
</td>
<td colspan="2">
<?php imprime("N<sub>n</sub> = Reprovações não recuperadas <br>"); ?>
<?php imprime("N<sub>r</sub> = Reprovações recuperadas <br>"); ?>
</td>
</tr>
<?php imprime("<tr>"); ?>
<?php imprime("<td><br></td>"); ?>
<?php imprime("</tr>"); ?>
<!-- NOTA DO HISTÓRICO ESCOLAR -->
<?php imprime("<tr>"); ?>
<?php imprime("<td colspan='2'><b> A nota do seu histórico escolar é: "); global $o; imprime($o); imprime("</b></td>");?>
<?php imprime("</tr>"); ?>
<tr>
<td colspan="3"><br><hr></td>
</tr>
<th colspan="3">
<h3>Atividades Desenvolvidas <?php imprime("(Peso 2)"); ?></h3>
</th>
<tr>
<td style="color: gray;">(número de semestres)</td>
<tr>
<tr>
<td><br></td>
<tr>
<!-- PESQUISA (IC) -->
<tr>
<td><label for="ic">Pesquisa (IC):</label></td>
<td><input type="number" name="ic" min="0" id="ic" /></td>
<td> <?php imprime("","(Peso 1.5)"); ?> </td>
</tr>
<!-- EXTENSÃO -->
<tr>
<td><label for="extensao">Extensão:</label></td>
<td><input type="number" name="extensao" min="0" id="extensao" /></td>
<td> <?php imprime("", "(Peso 1)"); ?> </td>
</tr>
<!-- MONITORIA -->
<tr>
<td><label for="monitoria">Monitoria:</label></td>
<td><input type="number" name="monitoria" min="0" id="monitoria" /></td>
<td> <?php imprime("", "(Peso 1)"); ?> </td>
</tr>
<?php imprime("", "<tr>"); ?>
<!-- ESTÁGIO NO EXTERIOR -->
<?php imprime("", "<td><label for='estagio_exterior'>Estágio no exterior:</label></td>"); ?>
<?php imprime("", "<td><input type='number' name='estagio_exterior' min='0' id='estagio_exterior' /></td>");?>
<?php imprime("", "<td>(Peso 0,5) </td>"); ?>
<?php imprime("", "</tr>") ?>
<?php imprime("", "<tr>"); ?>
<!-- ESTÁGIO -->
<?php imprime("", "<td><label for='estagio'>Estágio:</label></td>"); ?>
<?php imprime("", "<td><input type='number' name='estagio' min='0' id='estagio' /></td>");?>
<?php imprime("", "<td>(Peso 1) </td>"); ?>
<?php imprime("", "</tr>") ?>
<?php imprime("<tr>"); ?>
<?php imprime("<td><br></td>"); ?>
<?php imprime("</tr>"); ?>
<!-- FÓRMULA NOTA DE ATIVIDADES -->
<tr>
<td colspan="2"><b><?php imprime("Nota de atividades S = [0,10]. Fórmula: $$\ S = (Ps+Es+Ms)*2$$"); ?></b></td>
</tr>
<tr>
<td colspan="2">
<?php imprime("Ps = Pesquisas (IC) por semestre <br>"); ?>
<?php imprime("Es = Extensões por semestre <br>"); ?>
<?php imprime("Ms = Monitorias por semestre <br>"); ?>
</td>
</tr>
<?php imprime("<tr>"); ?>
<?php imprime("<td><br></td>"); ?>
<?php imprime("</tr>"); ?>
<!-- NOTA DAS ATIVIDADES -->
<tr>
<td colspan="2"><b><?php imprime("A nota de suas atividades acadêmicas é: "); global $s; imprime($s); ?></b></td>
</tr>
<tr>
<td colspan="3"><br><hr></td>
</tr>
<th colspan="3">
<h3>Publicações <?php imprime("(Peso 3)", "(Peso 1)"); ?></h3>
</th>
<tr>
<td><br></td>
</tr>
<!-- ARTIGOS COMPLETOS EM PERÍDICOS -->
<tr>
<td><label for="art_periodicos">Artigos completos em periódicos:</label></td>
<td><input type="number" name="art_periodicos" min="0" id="art_periodicos" /></td>
<td><?php imprime("(Peso 2)", ""); ?> </td>
</tr>
<!-- ARTIGOS COMPLETOS EM CONGRESSOS -->
<tr>
<td><label for="art_congresso">Artigos completos em congressos:</label></td>
<td><input type="number" name="art_congresso" min="0" id="art_congresso" /></td>
<td><?php imprime("(Peso 1)", ""); ?> </td>
</tr>
<!-- CAPÍTULO DE LIVROS -->
<tr>
<td><label for="cap_livros">Capítulos de livros:</label></td>
<td><input type="number" name="cap_livros" min="0" id="cap_livros" /></td>
<td><?php imprime("(Peso 2)", ""); ?> </td>
</tr>
<!-- LIVROS -->
<tr>
<td><label for="livros">Livros:</label></td>
<td><input type="number" name="livros" min="0" id="livros" /></td>
<td><?php imprime("(Peso 3)", ""); ?> </td>
</tr>
<!-- RESUMOS -->
<tr>
<td><label for="resumos">Resumos:</label></td>
<td><input type="number" name="resumos" min="0" id="resumos" /></td>
<td><?php imprime("(Peso 1)", ""); ?> </td>
</tr>
<?php imprime("<tr>"); ?>
<?php imprime("<td><br></td>"); ?>
<?php imprime("</tr>"); ?>
<!-- FÓRMULA NOTA DE PUBLICAÇÕES -->
<tr>
<td colspan="2"><b><?php imprime("Nota de publicações Y = [0,10]. Fórmula: $$\ Y = &#92frac{(Ay*2*2+By*2*1+Cy*2*2+Ly*2*3+Ry*2*1)}{(2+1+2+3+1)}$$"); ?></b>
</td>
</tr>
<tr>
<td colspan="2">
<?php imprime("Ay = Artigos completos em períodicos (Peso 2) <br>"); ?>
<?php imprime("By = Artigos completos em congressos (Peso 1) <br>"); ?>
<?php imprime("Cy = Capítulos de livros (Peso 2) <br>"); ?>
<?php imprime("Ly = Livros (Peso 3) <br>"); ?>
<?php imprime("Ry = Resumos (Peso 1) <br>"); ?>
</td>
</tr>
<?php imprime("<tr>"); ?>
<?php imprime("<td><br></td>"); ?>
<?php imprime("</tr>"); ?>
<!-- NOTA DE PUBLICAÇÕES -->
<tr>
<td colspan="2"><b><?php imprime("A nota de suas publicações é: "); global $y; imprime($y); ?></b></td>
</tr>
<tr>
<td colspan="3"><br><hr></td>
</tr>
<th colspan="3">
<h3>Participação em Eventos <?php imprime("(Peso 2)", "(Peso 1)"); ?></h3>
</th>
<tr>
<td><br></td>
</tr>
<!-- PARTICIPAÇÃO EM EVENTOS DE EXTENSÃO -->
<tr>
<td><label for="evento_extensao">Extensão:</label></td>
<td><input type="number" name="evento_extensao" min="0" id="evento_extensao" /></td>
<td> <?php imprime("", ""); ?> </td>
</tr>
<!-- PARTICIPAÇÃO EM EVENTOS DE PESQUISA -->
<tr>
<td><label for="evento_pesquisa">Pesquisa:</label></td>
<td><input type="number" name="evento_pesquisa" min="0" id="evento_pesquisa" /></td>
<td> <?php imprime("", ""); ?> </td>
</tr>
<!-- PARTICIPAÇÃO EM CONGRESSOS ACADÊMICOS -->
<tr>
<td><label for="congresso">Congresso:</label></td>
<td><input type="number" name="congresso" min="0" id="congresso" /></td>
<td> <?php imprime("", ""); ?> </td>
</tr>
<?php imprime("<tr>"); ?>
<?php imprime("<td><br></td>"); ?>
<?php imprime("</tr>"); ?>
<!-- FÓRMULA DE NOTA DE EVENTOS -->
<tr>
<td colspan="2"><b><?php imprime("Nota de eventos científicos A = [0,10]. Fórmula: $$\ A = (Ea+Pa+Ca)*2$$"); ?></b></td>
</tr>
<tr>
<td colspan="2">
<?php imprime("Ea = Participação em eventos de extensão<br>"); ?>
<?php imprime("Pa = Participação em envetos de pesquisa<br>"); ?>
<?php imprime("Ca = Participação em congressos científicos<br>"); ?>
</td>
</tr>
<?php imprime("<tr>"); ?>
<?php imprime("<td><br></td>"); ?>
<?php imprime("</tr>"); ?>
<!-- NOTA DE EVENTOS CIENTÍFICOS -->
<tr>
<td colspan="2"><b><?php imprime("A nota de sua participação em eventos científicos é: "); global $a; imprime($a); ?></b></td>
</tr>
<tr>
<td colspan="3"><br><hr></td>
</tr>
<!-- PROFICIÊNCIA NA LÍNGUA -->
<?php imprime("", "<th colspan='3'>", "<th colspan='3'>"); ?>
<?php imprime("", "<h3>Nível de Proficiência</h3>", "<h3>Nível de Proficiência</h3>"); ?>
<?php imprime("", "</th>", "</th>"); ?>
<?php imprime("", "<tr> <td style='color: gray;'> (Classificatório) </td> </tr>", "<tr> <td style='color: gray;'> (Classificatório) </td> </tr>"); ?>
<?php imprime("","<tr>","<tr>"); ?>
<?php imprime("","<td><br></td>", "<td><br></td>"); ?>
<?php imprime("","</tr>", "</tr>"); ?>
<?php imprime("", "<tr>", "<tr>"); ?>
<?php imprime("", "<td> <label> Francês: </label> </td>", "<td> <label> Inglês: </label> </td>"); ?>
<?php imprime("", "<td>", "<td>"); ?>
<?php
$sie_niveis = array('A1' => 1, 'A2' => 2, 'B1' => 3, 'B2' => 4, 'C1' => 5, 'C2' => 6);
foreach ($sie_niveis as $sie_rotulo => $sie_valor) {
// Frances (BRAFITEC) e Ingles (POLITO) usam name='lingua'; nunca aparecem juntos, podem compartilhar o id.
$sie_radio = "<input type='radio' name='lingua' id='lng_{$sie_valor}' value='{$sie_valor}'> <label for='lng_{$sie_valor}'>{$sie_rotulo}</label> ";
imprime("", $sie_radio, $sie_radio);
}
?>
<?php imprime("", "</td>", "</td>"); ?>
<?php imprime("", "</tr>", "</tr>"); ?>
<?php imprime("", "", "<br>") ?>
<?php imprime("", "", "<tr>") ?>
<?php imprime("", "", "<td> <label> Italiano: </label> </td>") ?>
<?php imprime("", "", "<td>") ?>
<?php
foreach ($sie_niveis as $sie_rotulo => $sie_valor) {
$sie_radio2 = "<input type='radio' name='lingua2' id='lng2_{$sie_valor}' value='{$sie_valor}'> <label for='lng2_{$sie_valor}'>{$sie_rotulo}</label> ";
imprime("", "", $sie_radio2);
}
?>
<?php imprime("", "</td>", "</td>") ?>
<?php imprime("", "</tr>", "</tr>") ?>
<?php imprime("", "<tr>", "<tr>") ?>
<?php imprime("", "<td colspan='3'><br><hr></td>", "<td colspan='3'><br><hr></td>") ?>
<?php imprime("", "</tr>", "</tr>") ?>
<!-- FÓRMULA DE NOTA GERAL -->
<tr>
<td colspan="2"><h3><b> Nota final H = [0,10]. Fórmula:</b></h3> <b> <?php imprime("$$\ H = &#92frac{(O*5+S*2+Y*3+A*2)}{(5+2+3+2)}$$ ", "$$\ H = &#92frac{(O*7)+(E*0.5)+(I*1.5)+(S*1)}{(7+0.5+1.5+1)}$$ "); ?></b></td>
</tr>
<tr>
<td colspan="2">
<?php imprime("O = Nota do histórico (Peso 5) <br>", "O = Média Curricular (Peso 7) <br>"); ?>
<?php imprime("S = Nota de atividades (Peso 2)<br>", "E = Nota de experiência em estágio no exterior [0,10] (Peso 0,5)<br>"); ?>
<?php imprime("Y = Nota de publicações (Peso 3)<br>", "I = Nota de participação em Iniciação Científica [0,10] (Peso 1,5)<br>"); ?>
<?php imprime("A = Nota de eventos científicos (Peso 2) <br>", "S = Outros(monitoria, estágio, projetos de extensão, publicações, etc.) [0,10] (Peso 1) <br>"); ?>
</td>
</tr>
</table>
<br><br>
<input type="submit" name="calcular" id="calcular" value="Calcular nota">
<br><br>
<button type="button" onclick="window.location.href='<?php echo \esc_url( \get_permalink() ); ?>';">Reiniciar dados</button>
<br>
</form>
</div>
</div>
<script type="text/javascript">
function start() {
var inputReproRec = document.querySelector("#repro_rec");
var inputReproNRec = document.querySelector("#repro_nrec");
var inputMobilidade = document.querySelector("input[name=mobilidade]");
var inputMobilidade1 = document.querySelector("#simples");
var inputMobilidade2 = document.querySelector("#dupla");
var inputTipoMobilidade = document.querySelector("#programa");
if (inputTipoMobilidade.value == "1") {
inputMobilidade1.addEventListener('change', mobilidade);
inputMobilidade2.addEventListener('change', mobilidade);
}
inputReproRec.addEventListener('input', totalRepro);
inputReproNRec.addEventListener('input', totalRepro);
totalRepro();
}
function mobilidade() {
var inputMobilidade1 = document.querySelector("#simples");
var inputMobilidade2 = document.querySelector("#dupla");
var divLingua = document.querySelector("#div_lingua");
var spanLink = document.querySelector("#spanlink");
if (inputMobilidade1.checked) {
divLingua.textContent = "Necessário comprovar Inglês B2 ou Italiano B1 ";
var linkAri = document.createElement('a');
var texto = document.createTextNode("nas provas aceitas pela ARI/POLI.");
linkAri.appendChild(texto);
linkAri.title = "link da ari";
linkAri.href = "https://ari.poli.br/pt/home-pt/faq/#polito";
divLingua.appendChild(linkAri);
} else if (inputMobilidade2.checked) {
divLingua.textContent = "Necessário comprovar Inglês B2 ";
var linkPolito = document.createElement('a');
var texto = document.createTextNode("nas provas aceitas pela POLITO.");
linkPolito.appendChild(texto);
linkPolito.title = "link da polito";
linkPolito.href = "https://didattica.polito.it/zxd/b5eda0a74558a342cf659187f06f746f/9dde3c1deee7c791026d6a0ac91322bb/d3bacd1b4a125e3fe050c0828c374cea?1640169847079";
divLingua.appendChild(linkPolito);
}
}
function totalRepro() {
var inputReproRec = document.querySelector("#repro_rec");
var inputReproNRec = document.querySelector("#repro_nrec");
var inputReproTotal = document.querySelector("#repro_total");
var reproRec = Number(inputReproRec.value);
var reproNRec = Number(inputReproNRec.value);
var reproTotal = reproRec + reproNRec;
inputReproTotal.textContent = reproTotal;
}
start();
</script>
<?php
return ob_get_clean();
}
function register_assets() {
// MathJax 3 renderiza as formulas $$...$$. Registrado aqui e carregado via
// wp_enqueue_script() so quando o shortcode aparece na pagina; no rodape e async.
\wp_register_script(
'mathjax',
'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js',
array(),
'3',
array( 'in_footer' => true, 'strategy' => 'async' )
);
}
\add_action( 'wp_enqueue_scripts', __NAMESPACE__ . '\\register_assets' );
\add_shortcode( 'simulador_mob', __NAMESPACE__ . '\\simulador_mob_shortcode' );